定义:输入为x∈Rnx\in R^nx∈Rn,输出为y∈{−1,1}y \in \{-1,1\}y∈{−1,1},xxx为空间的特征向量,对应于输入空间(特征空间)的点,输出的y表示实例的类别函数f(x)=sign(w∗x+b)f(x)=sign(w*x+b)f(x)=sign(w∗x+b)称为感知机
w∈Rnw\in R^nw∈Rn称为权值向量(weight vector),b称为偏置(bias),
sign(x)={1x>=0−1x<0sign(x)=
\begin{cases}
1& \text {x>=0} \\
-1& \text {x<0}
\end{cases}
sign(x)={1−1x>=0x<0
数据集T={(x1,y1),(x2,y2)...(xn,yn)}T=\{(x_1,y_1),(x_2,y_2)...(x_n,y_n)\}T={(x1,y1),(x2,y2)...(xn,yn)}
对所有的yi=1y_i=1yi=1都有w∗xi+b>0w*x_i+b>0w∗xi+b>0,
对所有的yi=−1y_i=-1yi=−1都有w∗xi+b<0w*x_i+b<0w∗xi+b<0
则称数据集TTT可分
超平面
线性方程w∗xi+b=0w*x_i+b=0w∗xi+b=0形成一个超平面,bbb称为超平面的截距,w为超平面的法向量
损失函数
点x0x_0x0到超平面的距离为1∣∣w∣∣∣w∗x0+b∣\frac{1}{||w||}|w*x_0+b|∣∣w∣∣1∣w∗x0+b∣
∣∣w∣∣||w||∣∣w∣∣为www的L2L_2L2范数
1∣∣w∣∣∣w∗xi+b∣>0\dfrac{1}{||w||}|w*x_i+b|>0∣∣w∣∣1∣w∗xi+b∣>0时, 误分类数据yi=−1y_i=-1yi=−1
1∣∣w∣∣∣w∗xi+b∣<0\dfrac{1}{||w||}|w*x_i+b|<0∣∣w∣∣1∣w∗xi+b∣<0时, 误分类数据yi=+1y_i=+1yi=+1
所以误分类数据(xi,yi)(x_i,y_i)(xi,yi)到超平面的距离为
−yi∣∣w∣∣(w∗xi+b)-\dfrac{y_i}{||w||}(w*x_i+b)−∣∣w∣∣yi(w∗xi+b)
取损失函数L(w,b)=−∑xi∈Myi(w∗xi+b)L(w,b)=-\sum_{x_i \in M} y_i(w*x_i+b)L(w,b)=−∑xi∈Myi(w∗xi+b),其中MMM为误分类点的集合
L(w,b)L(w,b)L(w,b)的两个偏导
∂L∂w=−∑xi∈Myi∗xi\frac{\partial L}{\partial w}=-\sum_{x_i \in M} y_i*x_i∂w∂L=−∑xi∈Myi∗xi
∂L∂b=−∑xi∈Myi\frac{\partial L}{\partial b}=-\sum_{x_i \in M} y_i∂b∂L=−∑xi∈Myi
更新w和b
随机选取一个误分类点(xi,yi)(x_i,y_i)(xi,yi)
η\etaη为学习率(步长)
0<η≤10<\eta \le 10<η≤1
{w=w+ηyi∗xib=b+ηyi\begin{cases}
&w=w+\eta y_i*x_i \\
&b=b+\eta y_i
\end{cases}{w=w+ηyi∗xib=b+ηyi
可减小损失函数
原始算法
1.选初值w0,b0w_0,b_0w0,b0
2.选中数据(xI,yi)(x_I,y_i)(xI,yi),
如果yi(w∗xi+b)≤0y_i(w*x_i+b)\le 0yi(w∗xi+b)≤0
则
{w=w+ηyi∗xib=b+ηyi\begin{cases}
&w=w+\eta y_i*x_i \\
&b=b+\eta y_i
\end{cases}{w=w+ηyi∗xib=b+ηyi
3.循环至没有误分类点
内容来源:统计学习方法,李航,