先来讲讲我和感知机的一段故事吧。我最开始了解机器学习这个方向的时候是在我本科的时候学过的一门课《智能控制》,老师在上课的时候给我们介绍了Alpha GO,从此我对这个方向就埋下了理想。以至于在保研夏令营的时候面试老师问我哪门课学得最好的时候,我回答的就是只能控制,然而我会的只是感知机而已。现在我要把自己不会的都弥补上。
首先,来讲一下感知机的定义。
1. 感知机定义 假设输入空间是,输出空间是 Y、 = {+1,-1}。输入x
X表示实例的特征空间,对应于输入空间的点;输出y
Y 表示实例的类别。由输入空间到输出空间的如下函数: f(x) = sign(w·x+b)
2. 数据集的线性可分性 给定一个数据集 T = {(x1,y1),(x2,y2),····,(xn,yn)}, 如果存在某个超平面 w·x+b=0能够完美划分说明数据集线性可分
3. 感知机学习策略 在选择损失函数的时候,因为如果选择误分类点的个数作为损失函数的话就不hi是w和b的连续可导函数了。因此,感知机选择的损失函数是误分类点到朝平面的总距离。
算法1 随机梯度下降法
输入: 训练数据集 T = {(x1,y1),(x2,y2),····,(xn,yn)},其中xi属于Rn,y属于{-1,+1}, i=1,2····,n;学习率为η(0<η<1)
输出:w,b;感知机模型f(x)=sign(w·x+b)
(1) 选取初值w0,b0;
(2) 在训练集中选取数据(xi,yi);
(3) 如果yi(w·xi+b)=<0,
w <- w+ηyixi
b <- b + ηyi (此处学习率后乘的为损失函数分别用w,b求导得到的式子。记忆中支持向量机采用的优化方法也是改进的不过有个拉格朗日乘子式,后期看到了会在博客中提到)
(4)跳转至(2)直至没有误分类点为止
验证算法的收敛性(Novikoff)
为了便于叙述和推导,将偏执b并入权重向量w,,同时需要讲输入向量扩充,加进常数1, 记作
,这样
=>
这里我手写一下推到公式,简书写公式太累了。