机器学习学习记录——《统计学习方法》笔记——第二章 感知机(Perceptron)
第二章 感知机(Perceptron)
1. 感知机:二元分类 线性分类模型 判别模型
f ( x ) = s i g n ( w ∗ x + b ) f(x) = sign(w * x +b) f(x)=sign(w∗x+b)
w x 均为n维向量
y取+1 -1
目的是为了找到一个超平面将正负完全分开
损失函数模型:
对损失函数的一些说明:
- 损失函数原定义为错误分类的点到超平面的距离
||w|| L2范数
- 分类错误下,对于错误分类的点 ( x 0 y 0 ) (x_0\ y_0) (x0 y0),伪代码形式如下:
if ( w ∗ x 0 + b ) < 0 (w*x_0+b)<0 (w∗x0+b)<0
then y 0 = 1 y_0 = 1 y0=1
if ( w ∗ x 0 + b ) > 0 (w*x_0+b)>0 (w∗x0+b)>0
then y 0 = − 1 y_0 = -1 y0=−1
in all − y 0 ( w ∗ x 0 + b ) > 0 -y_0(w * x_0 + b)>0 −y0(w∗x0+b)>0
原loss函数形式化为
损失函数固定非负
2. 感知机的学习算法–>损失函数的最优化问题
梯度下降法BGD
针对的是整个数据集,通过对所有的样本的计算来求解梯度的方向。(注意公式中的求和函数)
优点:全局最优解;易于并行实现;
缺点:当样本数据很多时,计算量开销大,计算速度慢
随机梯度下降法SGD
每个数据都计算算一下损失函数,然后求梯度更新参数。
优点:计算速度快
缺点:
- 准确度下降,可能收敛到局部最佳点,因为单个样本不能代表整体样本的趋势
- 即使在目标函数为强凸函数的情况下,SGD仍然无法达到线性收敛
- 不利于并行实现
证明:随机梯度下降法的收敛性
小批量梯度下降法MBGD
把数据分为若干个批,按批来更新参数,这样,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性
优点:加快了收敛速度,减少了计算的开销量,降低了随机性,提高了并行性
缺点:batch的选择不当可能带来问题
感知机学习算法的原始形式
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)为任意一给误分类点,所有误分类点的集合为
M
M
M
对于上述误差函数求极值,关于w,b 分别求偏导
对于感知机算法 如果初值不同或者随机梯度下降法选点的顺序不同 结果可能不同
代码实现(未完待续)
感知机学习算法的对偶形式
Gram矩阵
实例点更新次数越多,意味着它距离分离超平面越近 ,也就越难正确分类。