ML(2)——感知器

  感知器(PLA——Perceptron Learning Algorithm),也叫感知机,处理的是机器学习中的分类问题,通过学习得到感知器模型来对新实例进行预测,因此属于判别模型。感知器于1957年提出,是神经网络的基础。

感知器模型

  以最简单的二分类为例,假设医院需要根据肿瘤患者的病患特x1肿瘤大小,x2肿瘤颜色,判断肿瘤是良性(+1)还是恶性(-1),那么所有数据集都可以在一个二维空间表示;如果能找到一条直线将所有1和-1分开,这个数据集就是线性可分的,否则就是线性不可分。将两个特征向量分别用x1, x2表示,分隔直线的函数是:

  这里x1和x2都是变量。也许写成初中的直线方程更容易让人理解:

  平面中每个点都由x,y两个坐标确定,所以也可以将y也看成自变量,用x1表示x,x2表示y:

  感知器的模型函数:

  w和b称为感知器的模型参数。需要注意的是,上图中左右两侧的w1x1 + w2x2 + b不是直线,它们的x1和x2都是具体的特征值,是一个具体的实数数值;直线是f(x) = w1x1 + w2x2 + b = 0,它的x1和x2才是变量。

  感知器需要做的就是根据训练集中的样本数据计算出恰当的w和b,以使得直线f(x)  最终能够正确地分开数据集中的所有1和-1(对于线性不可分问题是找到最好的直线以划分尽可能多的1和-1)。

  感知器也可以扩展到多维数据,比如判断肿瘤时除了大小和颜色外还有发病时间、以前是否有过类似肿瘤等。对于三维空间,最终将找到一个平面;对于更多维的空间,最终将找到一个超平面。超平面是一个概念,可以将多维数据的正负例一分为二,但很难在平面媒体中呈现。

  现在,对于n维空间的一个样本,xn表示一个样本中的第n个特征向量,wn表示xn对应的权重:

  现在变成了w和x的点乘,可以看作多维空间的线性函数。

感知器的学习策略

  为了计算最佳的w和b,需要制定一个学习策略,即定义一个用来计算误分类的损失函数,使损失函数极小化,从而通过优化的手段求解w。

  现在设L(w,b)是损失函数,第一感觉很自然会将误分类数量作为损失函数:

  上式表示在样本集中对于特定的感知器参数,共有k个样本被分错,x(i)表示误分类集中的第i个样本。然而这样做存在问题,该函数的结果可能是0,1,2,3……,是离散而非连续数据;因为L(w,b)不是连续的,不连续的函数必定不可导,不可导的函数也不易优化,所以没有办法根据这样的L(w,b)制定算法。(关于导数和利用导数求极值的问题,可参考《单变量微积分》系列中的相关章节)。

  下面的图片由其他网友提供,忘记了来源,它很形象地说明了连续和可导的关系:

  现在需要将L(w,b)变成连续函数,以分类点到直线超平面的总距离作为损失函数,每个误分类点到超平面的距离是:

  关于点到平面的距离可参考《线性代数笔记5——平面方程与矩阵》。

  由于是误分类,所有正确结果是1的被判定为-1,-1的被判定为1,所以可以用下面的方法将绝对值符号去掉:

  损失函数也就是所有误分类点的总距离:

  感知器是处理二分类的工作,它最终不关心超平面距离点的距离是多少,只关心结果是否正确,也就是说下面两条直线多于感知器来说是一样的:

  由此可以去掉二阶范数:

  损失函数是非负的,如果没有误分类点,损失函数为0,误分类点越少,误分类点离超平面越近,损失函数越小,L(w,b)是w,b的连续可导函数。

感知器的学习算法

  现在感知器学习问题转换为求解损失函数的最优化问题,也就是通过优化算法使得对于全体训练样本来说L(w,b)最小。具体来说,使用梯度下降法求解模型参数。关于梯度下降,可参考《ML(附录1)——梯度下降》

  闹心事太多,先到这里,待续。。。。

  参考《统计学习方法》李航



  作者:我是8位的

  出处:http://www.cnblogs.com/bigmonkey

  本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!

  扫描二维码关注公众号“我是8位的”

原文地址:https://www.cnblogs.com/bigmonkey/p/8711484.html

时间: 2024-11-03 02:21:13

ML(2)——感知器的相关文章

python机器学习——感知器

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

多层感知器学习

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

机器学习 —— 基础整理(六):线性判别函数——感知器、松弛算法、Ho-Kashyap算法

本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 (一)线性判别函数与广义线性判别函数 一.线性判别函数 这篇总结继续关注分类问题.假设判别函数(Discriminant function)的参数形式已知,用训练的方法直接根据样本估计判别函数的参数.线性判别函数的形式为: $$g(\textbf x)=\textbf w^{\top}\textbf x+w_0$$ $\textbf x\in \mathbb R^d$ 是

Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法

(一)局部加权回归 通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting).如下图的左图.而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为它导致数据的 过拟合(overfitting),不符合数据真实的模型.如下图的右图. 下面来讲一种非参数学习方法——局部加权回归(LWR).为什么局部加权回归叫做非参数学习方法呢?首先,参数学习方法是这样一种方法:在训练完成所有数据后得到一系列训练参数,然后根据训练参数来预测新样本的值,这时不再依赖

Rosenblatt感知器详解

在学习了机器学习十大算法之后,我决定将目光投向神经网络,从而攀登深度学习的高峰.这条险路的第一个拦路虎就是Rosenblatt感知器.为什么这么说呢?不仅是因为它开拓性的贡献——感知器是第一个从算法上完整描述的神经网络,而Rosenblatt感知器是感知器作为监督学习的第一个模型.还因为学习Rosenblatt感知器能够帮助了解神经元的结构.信息流的传递以及知识的学习和存储,从而打开看待问题的全新视角——模拟人脑解决问题.当然,仅仅如此的话,它只能说是可口的羔羊,谈不上拦路的猛虎.自然是在理解这

神经网络与人工智能No1-Rosenblatt感知器

     直入正题,首先要确定的是Rosenblatt感知器的应用范围是线性可分模型(通俗的讲就是在N维空间中存在一个超平面可以将整个模型一分为二)其作用就是分类,由一个具有可调突触权值和偏置的神经元组成. 模式:事务的标准样式. 感知器:感知器模型(神经元)+感知器算法(收敛). 建立在一个神经元上的感知器只能完成两类的模式分类,扩展多个神经元可完成多类的模式分类.

感知器与梯度下降

声明:本文由Ronny发表在http://www.cnblogs.com/ronny/p/ann_01.html ,如需转载请注明出处 一.前言 1,什么是神经网络? 人工神经网络(ANN)又称神经网络(NN),它是一种受生物学启发而产生的一种模拟人脑的学习系统.它通过相互连结的结点构成一个复杂的网络结构,每一个结点都具有多个输入和一个输出,并且该结点与其他结点以一个权重因子相连在一起.通俗来说,神经网络是一种学习器,给它一组输入,它会得到一组输出,神经网络里的结点相互连结决定了输入的数据在里面

人工神经网络之感知器算法

感知器作为人工神经网络中最基本的单元,有多个输入和一个输出组成.虽然我们的目的是学习很多神经单元互连的网络,但是我们还是需要先对单个的神经单元进行研究. 感知器算法的主要流程: 首先得到n个输入,再将每个输入值加权,然后判断感知器输入的加权和最否达到某一阀值v,若达到,则通过sign函数输出1,否则输出-1. 为了统一表达式,我们将上面的阀值v设为-w0,新增变量x0=1,这样就可以使用w0x0+w1x1+w2x2+…+wnxn>0来代替上面的w1x1+w2x2+…+wnxn>v.于是有: 从

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

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