感知机--模型与策略

看到模型和策略,应该很快联想到了李航的《统计学习方法》,统计学习方法的三要素定义为:模型、策略、算法。

感知机

感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。

感知机模型

假设输入空间(特征向量)是x属于n维空间,输出空间为Y属于{-1,+1},输入X表示实例的特征向量,对应于输入空间的点,输出Y表示实例的类别,则由输入空间到输出空间的表达形式为:

f(x)=sign(w*x+b)

上面该函数称为感知机,其中w,b称为模型的参数,w称为权值,b称为偏置,w*x表示为w,x的内积

这里

如果我们将sign称之为激活函数的话,感知机与logistic regression的差别就是感知机激活函数是sign,logistic regression的激活函数是sigmoid。

sign(x)将大于0的分为1,小于0的分为-1;sigmoid将大于0.5的分为1,小于0.5的分为0。因此sign又被称为单位阶跃函数,logistic regression也被看作是一种概率估计。

该感知机线性方程表示为:w*x+b=0,它的几何意义如下图所示:

我们其实就是在学习参数w与b,确定了w与b,图上的直线(高维空间下为超平面)也就确定了,那么以后来一个数据点,我用训练好的模型进行预测判断,如果大于0就分类到+1,如果小于0就分类到-1。

由于自己在这里碰到了问题,稍微证明一下为什么w是直线(高维空间下为超平面)的法向量?

上面说到我用训练好的模型进行预测判断,如果大于0就分类到+1,如果小于0就分类到-1。用到了超平面分离定理:超平面分离定理是应用凸集到最优化理论中的重要结果,这个结果在最优化理论中有重要的位置。所谓两个凸集分离,直观地看是指两个凸集合没有交叉和重合的部分,因此可以用一张超平面将两者隔在两边。如下图所示,在大于0的时候,我将数据点分类成了D类,在小于0的时候,我将数据点分类成了C类

感知机学习策略

好了,上面我们已经知道感知机模型了,我们也知道他的任务是解决二分类问题,也知道了超平面的形式,那么下面关键是如何学习出超平面的参数w,b,这就需要用到我们的学习策略。

我们知道机器学习模型,需要首先找到损失函数,然后转化为最优化问题,用梯度下降等方法进行更新,最终学习到我们模型的参数w,b。ok,那好,我们开始来找感知机的损失函数:

我们很自然的会想到用误分类点的数目来作为损失函数,是的误分类点个数越来越少嘛,感知机本来也是做这种事的,只需要全部分对就好。但是不幸的是,这样的损失函数并不是w,b连续可导(你根本就无法用函数形式来表达出误分类点的个数),无法进行优化。

于是我们想转为另一种选择,误分类点到超平面的总距离(直观来看,总距离越小越好):

距离公式如下:

而我们知道每一个误分类点都满足-yi(w*x+b)>0

因为当我们数据点正确值为+1的时候,你误分类了,那么你判断为-1,则算出来(w*x0+b)<0,所以满足-yi(w*x+b)>0

当数据点是正确值为-1的时候,你误分类了,那么你判断为+1,则算出来(w*x0+b>0),所以满足-yi(w*x+b)>0

则我们可以将绝对值符号去掉,得到误分类点的距离为:

因为你知道,所以可以直接将绝对值去掉。那么可以得到总距离为:

不考虑w范数分之一,我们可以得到损失函数为:

其中M为误分类点的数目。

恩,好了,其实到这里为止,已经完成了标题所要表达的任务了,感知机的模型与学习策略!总结一下!

感知机的模型是f(x)=sign(w*x+b),它的任务是解决二分类问题,要得到感知机模型我们就需要学习到参数w,b。

则这个时候我们需要一个学习策略,不断的迭代更新w,b,所以我们需要找到一个损失函数。很自然的我们想到用误分类点的数目来表示损失函数,但是由于不可导,无法进行更新,改为误分类点到超平面的距离来表示,然后不考虑w的范式分之一,得到我们最终的损失函数!

这里在学习的过程中,我有一个问题就是为什么可以不考虑w的范式分之一(因为微信无法打出那个公式,所以这样描述,望谅解!),不用总距离表达式作为损失函数呢?

通过和师兄同学们的讨论,以及查阅资料,这里给出自己的理解(欢迎大家交流指错!)

感知机的任务是进行二分类工作,它最终并不关心得到的超平面离各点的距离有多少(所以我们最后才可以不考虑w的范式),只是关心我最后是否已经正确分类正确(也就是考虑误分类点的个数),比如说下面红色与绿线,对于感知机来说,效果任务是一样好的。

但是在SVM的评价标准中(绿线是要比红线好的,这个后面在讨论)

所以我们可以不考虑w的范式,直接去掉它,因为这个时候我们只考虑误分类点,当一个误分类点出现的时候,我们进行梯度下降,对w,b进行改变即可!跟距离没有什么关系了,因为w的范式始终是大于0,对于我们判断是否为误分类点(我们是通过是否-yi(w*x0+b)>0来判断是佛为误分类点)没有影响!这也回到了我们最初始想要作为损失函数的误分类点的个数,引入距离,只是将它推导出一个可导的形式!(最后说一句,我个人认为不去掉w的范式,也是一样可以得到最后的正确分类超平面,就是直接用距离来当做损失函数也是可以的,可能是求梯度比较复杂,或者是感知机本身就是用误分类点来区分,就没用zh这个损失函数了)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨熹的专栏

用 Doc2Vec 得到文档/段落/句子的向量表达

本文结构: Doc2Vec 有什么用 两种实现方法 用 Gensim 训练 Doc2Vec ---- Doc2Vec 或者叫做 paragraph2vec, s...

2K100
来自专栏闪电gogogo的专栏

《统计学习方法》笔记二 感知机

感知机(perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取±1。感知机对应与输入空间中将实例划分为正负两类的分离超平面,属...

8420
来自专栏AI研习社

一文详解 Word2vec 之 Skip-Gram 模型(结构篇)

这次的分享主要是对Word2Vec模型的两篇英文文档的翻译、理解和整合,这两篇英文文档都是介绍Word2Vec中的Skip-Gram模型。下一篇专栏文章将会用T...

66340
来自专栏磐创AI技术团队的专栏

TensorFlow系列专题(七):一文综述RNN循环神经网络

前馈神经网络不考虑数据之间的关联性,网络的输出只和当前时刻网络的输入相关。然而在解决很多实际问题的时候我们发现,现实问题中存在着很多序列型的数据,例如文本、语音...

10930
来自专栏AI研习社

感知机(Perceptron)是怎么实现“知错能改”的?

感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间中将实例划分为正负两类的...

39680
来自专栏小鹏的专栏

为什么很多做人脸的Paper会最后加入一个Local Connected Conv?

Deep face:论文。 a. 人脸检测,使用6个基点 b. 二维剪切,将人脸部分裁剪出来 c. 67个基点,然后Delaunay三角化,在轮廓处添加三角形来...

35850
来自专栏张俊红

Sklearn参数详解—GBDT

这篇介绍Boosting的第二个模型GBDT,GBDT和Adaboost都是Boosting模型的一种,但是略有不同,主要有以下两点不同:

20540
来自专栏LhWorld哥陪你聊算法

【深度学习篇】--神经网络中解决梯度弥散问题

在梯度下降中,随着算法反向反馈到前面几层,梯度会越来越小,最终,没有变化,这时或许还没有收敛到比较好的解,这就是梯度消失问题,深度学习遭受不稳定的梯度,不同层学...

47640
来自专栏Python爬虫实战

感知机初探

感知机模型的假设空间:定义在特征空间中的所有线性分类模型(linear classification model)或线性分类器(linear classifie...

9310
来自专栏机器之心

教程 | 基础入门:深度学习矩阵运算的概念和代码实现

选自Medium 机器之心编译 参与:蒋思源 本文从向量的概念与运算扩展到矩阵运算的概念与代码实现,对机器学习或者是深度学习的入门者提供最基础,也是最实用的教...

454130

扫码关注云+社区

领取腾讯云代金券