本文最后更新于:2023年4月13日 下午
1 简介
感知机是一种简单的,用于二分类的模型。它的构建思想,就是使用一个超平面将数据分为正负两类,输出+1或者−1。感知机可以使用梯度下降的方法进行最优化,但是其优化算法只在数据线性可分的时候收敛。感知机是Rosenblatt在1957年提出的。
2 模型的构建
由上述构建思想可知,感知机要将一个特征空间为X⊆Rn的数据映射到输出空间Y={+1,−1}。使用x∈X表示训练数据的特征向量,y∈Y表示输出的值。之前提到过,感知机使用超平面来区分正类和负类,那么就可以先把超平面的方程写出来。
w⋅x+b=0
其中w称为权重向量。因为w和x点乘,实际上是和输入数据的特征进行加权求和。然后,我们需要把超平面计算的结果映射到0和1,感知机选择的是sgn函数。所以,感知机模型的数学表达式为
f(x)=sgn(w⋅x+b)
它的参数是权重向量w和常量b。对应到超平面上,w就是超平面的法向量,b是超平面的截距。
3 感知机的学习策略
为了对感知机进行参数最优化,我们需要找到它的损失函数。很容易想到损失函数可以用分类错误的点数来衡量,但是错误的个数是离散的,这个函数不可微分,所以用不了梯度下降。所以考虑错误分类点到超平面S的总距离,一个点到超平面的计算方法是
∣∣w∣∣1∣w⋅x0+b∣
其中∣∣w∣∣ 是w的L2范数。
如果分析感知机错误分类的时候的两种情况,也就是正样本负判,负样本正判。对于第一种,w⋅xi+b>0的时候,感知机本应该输出1,但错误分类时输出-1,所以−(w⋅xi+b)yi>0,对于第二种,w⋅xi+b<0的时候,感知机本应该输出-1,但错误分类时输出1,所以−(w⋅xi+b)yi>0,所以,如果感知机错误分类一个数据,总有
−yi(w⋅xi+b)>0
因此,拿掉距离计算公式里面的绝对值,可以得到新的距离计算公式
−∣∣w∣∣1yi(w⋅xi+b)
于是,我们对所有点到超平面的距离求和,得到总距离的计算公式
−∣∣w∣∣1xi∈M∑yi(w⋅xi+b)
现在不考虑权重的L2范数,那么感知机的损失函数就是
L(w,b)=−xi∈M∑yi(w⋅xi+b)
这个函数意味着,如果错误分类的越少,错误分类的点离超平面越近,那么损失函数就越小。
4 最优化
感知机的最优化问题就是求解损失函数最小时的参数w和b。
w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
那么,采用随机梯度下降法进行优化。首先随机一个w0和b0,接下来求梯度。
对于法向量w。
∇wL(w,b)=−xi∈M∑yixi
对于截距b
∇bL(w,b)=−xi∈M∑yi
于是,如果随机选取一个错误分类的数据,更新的方法就是
{w∗=w−(−ηyixi)=w+ηyixib∗=b−(−ηyi)=b+ηyi
其中η就是学习率。
所以,适用于编程实现的算法应该是
- 随机一个w0, b0
- 在训练集中选取一个数据(xi,yi)
- 如果yi(w⋅xi+b)≤0
- 使用更新方法更新参数
- 循环到第二部,直到感知机不会产生错误分类的数据。
至此,感知机的构建,学习策略和最优化算法阐述完毕。