文章原创,最近更新:2018-06-21
1.感知机模型
2.学习策略
参考链接:
1、 机器学习十七:感知机
前言:通过网上找的文章,通过归纳总结具体如下:
1.感知机模型
感知机的思想很简单,比如我们在一个平台上有很多的男孩女孩,感知机的模型就是尝试找到一条直线,能够把所有的男孩和女孩隔离开。下面这张动图或许能够带来一些直观感受:
放到三维空间或者更高维的空间,感知机的模型就是尝试找到一个超平面,能够把所有的二元类别隔离开。
当然你会问,如果我们找不到这么一条直线的话怎么办?找不到的话那就意味着类别线性不可分,也就意味着感知机模型不适合你的数据的分类。
使用感知机一个最大的前提,就是数据是线性可分的。这严重限制了感知机的使用场景。它的分类竞争对手在面对不可分的情况时,比如支持向量机可以通过核技巧来让数据在高维可分,神经网络可以通过激活函数和增加隐藏层来让数据可分。
用数学的语言来说,如果我们有m个样本,每个样本对应于n维特征和一个二元类别输出,如下:
我们的目标是找到这样一个超平面,即:
让其中一种类别的样本都满足
让另一种类别的样本都满足
从而得到线性可分。如果数据线性可分,这样的超平面一般都不是唯一的,也就是说感知机模型可以有多个解。
为了简化这个超平面的写法,我们增加一个特征x0=1 ,这样超平面为
进一步用向量来表示为:
其中θ为(n+1)x1的向量,x为(n+1)x1的向量, 后面我们都用向量来表示超平面。
但除了 θ 称为权值,还有 b 称为偏置,故超平面的完整表达为:θ*x+b=0,而感知机的模型可以定义为y=sign(θ∙x+b) 其中:
如果我们将sign称之为激活函数的话,感知机与logistic regression的差别就是感知机激活函数是sign,logistic regression的激活函数是sigmoid。
sign(x)将大于0的分为1,小于0的分为-1;sigmoid将大于0.5的分为1,小于0.5的分为0。因此sign又被称为单位阶跃函数,logistic regression也被看作是一种概率估计。
2.学习策略
2.1数据集的线性可分性
首先感知机要求数据集是线性可分的,所谓线性可分就是存在这么一个超平面可以把数据完全正确的划分到两边。说明如下图
对于给定的数据集T={(x1,y1),(x2,y2),···,(xn,yn)},如果存在超平面S,能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有yi=+1的实例,都有w·xi+b>0,对于所有的yi=-1的实例,都有w·xi+b<0,则称数据集T为线性可分数据集,否则T为线性不可分数据集。
2.2感知学习策略
假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。它选择的损失函数是误分类点到超平面S的总距离。
输入空间中任一点x0到超平面S的距离是:(这里,||w||是w的L2范数。)
拓展知识:
点到平面的距离公式:
对于误分类数据(xi,yi)来说,总有:-yi(w*xi+ b) > 0
因此,误分类点xi到超平面S的距离是:
那么所有误分类点到超平面S的总距离是:
不考虑1/||w||,就得到感知机学习的损失函数,感知机损失函数具体如下:
其中M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。
一个特定样本点的损失函数:在误分类时是参数w,b的线性函数,在正确分类时是0.因袭,对给定的数据集,损失函数L(w,b)是w,b的连续可导函数。