机器学习算法一:感知器学习

问题描述:

  给定线性可分数据集:T={(x1,y1),(x2,y2),...,(xN,yN)},存在超平面S:$w\cdot x+b=0$

$ \left\{\begin{matrix} w\cdot x+b>0,y=+1\\  w\cdot x+b<0,y=-1 \end{matrix}\right. $

学习策略:

  定义点x0到超平面S的距离为:

  $\frac{1}{\left \| w \right \|}\left | w \cdot x +b \right |$

  对于误分类的数据$(x_{i},y_{i})$来说,$-y_{i}(w \cdot x_{i}+b)>0$

  因此误分类点x_{i}到超平面S的距离时:$-\frac{1}{\left \| w \right \|} y_{i}(w \cdot x_{i}+b)$

  假设超平面S的误分类点集合为M,那么所有误分类点到超平面S的总距离为:

$- \frac{1}{\left \| w \right \|}\sum_{x_{i}\in M}y_{i}(w \cdot x_{i}+b)$

  不考虑$\frac{1}{\left \| w \right \|}$ ,就得到感知机学习的损失函数。

  定义损失函数为: $L(w,b)=-\sum_{x_{i} \in M}y_{i}(w \cdot x_{i}+b)$,其中M为误分类点的集合。

  最小化损失函数:$\min_{w,b}L(w,b\displaystyle )=L(w,b)=-\sum_{x_{i} \in M}y_{i}(w \cdot x_{i}+b)$

  使用梯度下降法求解:梯度分别为

  $\bigtriangledown _wL(w,b)=-\sum_{x{i} \in M}y_{i}x_{i}$

  $\bigtriangledown _bL(w,b)=-\sum_{x_{i} \in M}y_{i}$

  随机选取一个误分类点$(x_{i},y_{i})$,对w,b进行更新:

  $w\leftarrow w+\eta y_{i}x_{i}$
  $b \leftarrow b+ \eta y_{i}$

  其中$\eta$成为步长,即学习率(learning rate)

  

原文地址:https://www.cnblogs.com/hypnus-ly/p/8392980.html

时间: 2024-11-07 09:24:46

机器学习算法一:感知器学习的相关文章

从最简单的感知器学习到的一些有趣的现象

看了一些深度学习神经网络的视频,最近有了一点新的体会,在google的一个小工具上,地址:http://playground.tensorflow.org 一个神经网络训练的模拟器,发现了一些有意思的事情,有了些新的体会 这里分享给大家. 1 权值,刚开始都是设置的随机初始值,但是随着训练的深入,你会发现权值变化的一些规律,这里一二分类为列,某些对最终分类帮助性大的因素即输入的权值会越来越大,而那些对分类作用小的因素,甚至对分类起反作用的因素的权值会逐渐变得很小,或者为负值,有些同学会问权值之和

多层感知器学习

1.多层感知器简介 多层感知器(MLP)可以看做一个逻辑回归,不过它的输入要先进行一个非线性变换,这样数据就被映射到线性可分的空间了,这个空间我们称为隐藏层.通常单层隐藏层就可以作为一个感知器了,其结构如下图所示: 这里输入层首先通过权重矩阵和偏置得到总输出值并且通过tanh函数作一个非线性变换就可以得到hidden layer,然后从hidden layer到output layer可以使用之前的逻辑回归进行操作. 这里我们同样使用SGD算法来对参数进行更新,参数共有四个,分别是input-h

神经网络与机器学习笔记——Rosenblatt感知器

Rosenblatt感知器 感知器是用于线性可分模式(模式分别位于超平面两边)分类的最简单的神经网络模型,基本上由一个具有可调突触权值和偏置的神经元组成. Rosenblatt证明了当用来训练感知器的模式(向量)取自两个线性可分的类时,感知器算法是收敛的,并且决策面是位于两类之间的超平面.算法的收敛性称为感知器收敛定理.

机器学习算法一:K-近邻算法

最近在<机器学习实战>里学习了一些基本的算法,对于一个纯新手我也在网上找了写资料,下面就我在书上所看的加上在其他博客上的内容做一个总结,博客请参照http://www.cnblogs.com/BaiYiShaoNian/p/4567446.html K-近邻算法 K-近邻算法就是采用测量不同特征值之间的距离方法来进行分类. 优点:精度高,对异常值不敏感,无数据输入假定. 缺点:计算复杂度高,空间复杂度高. 适用范围:数值型和标称型. 工作原理: 存在一个样本数据集合,也称作训练样本集,并且样本

机器学习推导笔记1--机器学习的任务、步骤、线性回归、误差、梯度下降

前段时间放假在家的时候,总算是看完了斯坦福的机器学习公开课(Andrew NG)的监督学习,这项计划持续了将近一个学期.无监督学习和强化学习部分暂时还不太想看,目前来说监督学习与我现在的情况更契合一些.看完监督学习部分,对机器学习的了解又深了一些,加上之前帮师兄做实验,从工程角度和理论角度共同推进,感觉还是挺好的. 为了巩固学习成果,在刷题之余,准备写一系列笔记,自己推导一遍机器学习里比较重要的几个算法,并附上自己的理解.我一直认为能讲出来的东西,才是自己的.写笔记有助于我自己理清思路,当然也希

Python_sklearn机器学习库学习笔记(七)the perceptron(感知器)

一.感知器 感知器是Frank Rosenblatt在1957年就职于Cornell航空实验室时发明的,其灵感来自于对人脑的仿真,大脑是处理信息的神经元(neurons)细胞和链接神经元细胞进行信息传递的突触(synapses)构成. 一个神经元可以看做将一个或者多个输入处理成一个输出的计算单元.一个感知器函数类似于一个神经元:它接受一个或多个输入,处理 他们然后返回一个输出.神经元可以实时,错误驱动的学习,神经元可以通过一个训练样本不断的更新参数,而非一次使用整套的数据.实时学习可能有效的处理

Coursera机器学习基石 第2讲:感知器

第一讲中我们学习了一个机器学习系统的完整框架,包含以下3部分:训练集.假设集.学习算法 一个机器学习系统的工作原理是:学习算法根据训练集,从假设集合H中选择一个最好的假设g,使得g与目标函数f尽可能低接近.H称为假设空间,是由一个学习模型的参数决定的假设构成的一个空间.而我们这周就要学习一个特定的H——感知器模型. 感知器模型在神经网络发展历史中占有特殊地位,并且是第一个具有完整算法描述的神经网络学习算法(称为感知器学习算法:PLA).这个算法是由一位心理学家Rosenblatt在1958年提出

python机器学习——感知器

最近在看机器学习相关的书籍,顺便把每天阅读的部分写出来和大家分享,共同学习探讨一起进步!作为机器学习的第一篇博客,我准备从感知器开始,之后会慢慢更新其他内容. 在实现感知器算法前,我们需要先了解一下神经元(neuron)的工作原理,神经元有很多树突和一个轴突,树突(Dendrites)可以从其他神经元接收信息并将其带到细胞体(Cell nucleus),轴突(Axon)可以从细胞体发送信息到其他神经元.树突传递过来的信息在细胞体中进行计算处理后,如果结果超过某个阈值,轴突会传递信号到其他的神经元

机器学习之感知器算法原理和Python实现

(1)感知器模型 感知器模型包含多个输入节点:X0-Xn,权重矩阵W0-Wn(其中X0和W0代表的偏置因子,一般X0=1,图中X0处应该是Xn)一个输出节点O,激活函数是sign函数. (2)感知器学习规则 输入训练样本X和初始权重向量W,将其进行向量的点乘,然后将点乘求和的结果作用于激活函数sign(),得到预测输出O,根据预测输出值和目标值之间的差距error,来调整初始化权重向量W.如此反复,直到W调整到合适的结果为止. (3)算法的原始形式 (4)Python代码实现 1 import