旨在求出线性可分数据的分离超平面,使用基于误差(误分类)的损失函数,使用随机梯度下降优化模型。为了使计算更具有一般性以及简化计算量常用对偶形式优化。感知机是神经网络(多层感知机)与支持向量机(相同的模型,不同的策略和算法)的基础。
模型功能:二类分类线性分类模型
模型类别:判别模型
输入数据:线性可分
假设输入空间(特征空间)为 X ⊆ R n X \subseteq R^n X⊆Rn,输出空间 Y ⊆ { − 1 , + 1 } Y \subseteq \lbrace -1,+1 \rbrace Y⊆{−1,+1}。输入 x ∈ X x \in X x∈X是实例的特征向量,对应输入空间(特征空间)的点;输出 y ∈ Y y \in Y y∈Y表示实例的类别。由输入空间到输出空间有如下关系: f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+b) f(x)=sign(w⋅x+b)
上式称为感知机模型,其中 w w w和 b b b为模型参数, w ∈ R w \in R w∈R为权重向量, b ∈ R b \in R b∈R为偏置, w ⋅ x w·x w⋅x表示向量 w w w与 x x x的内积, s i g n sign sign为符号函数,即
s i g n ( x ) = { + 1 , x ⩾ 0 − 1 , x < 0 sign(x) = \begin{cases} +1, & \text{$x \geqslant 0$} \\ -1, & \text{$x<0$} \end{cases} sign(x)={+1,−1,x⩾0x<0
要满足第1条的要求最直接的损失函数就是误分类的点数,但是误分类点数对参数 w w w与 b b b是不可微的,因此采用误分类的点到超平面的距离作为损失函数,如下: L ( w , b ) = − ∑ x i ∈ M y i ( w x i + b ) L(w,b)=-\sum_{x_i \in M} y_i(wx_i+b) L(w,b)=−xi∈M∑yi(wxi+b)其中 M M M为误分类实例的集合。 y i ( w x i + b ) > 0 y_i(wx_i+b)>0 yi(wxi+b)>0的实例就是误分类的实例,最小化以上损失函数使集合 M M M的规模不断变小即误分类的实例不断变小最后损失函数 L ( w , b ) = 0 L(w,b)=0 L(w,b)=0时 M M M变为空集,因此这个损失函数同时满足条件1和2。
min w , b L ( w , b ) = − ∑ x i ∈ M y i ( w x i + b ) \min_{w,b} L(w,b)=-\sum_{x_i \in M} y_i(wx_i+b) w,bminL(w,b)=−xi∈M∑yi(wxi+b)使用随机梯度下降法优化以上函数: Δ w L ( w , b ) = − ∑ x i ∈ M y i x i \Delta_wL(w,b)=-\sum_{x_i \in M} y_ix_i ΔwL(w,b)=−xi∈M∑yixi Δ b L ( w , b ) = − ∑ x i ∈ M y i \Delta_bL(w,b)=-\sum_{x_i \in M} y_i ΔbL(w,b)=−xi∈M∑yi从集合 M M M中随机取出一个实例点 ( x i , y i ) (x_i,y_i) (xi,yi)更新 w w w和 b b b w ← w + η y i x i w\leftarrow w+\eta y_ix_i w←w+ηyixi b ← b + η y i b \leftarrow b+\eta y_i b←b+ηyi其中 η ( 0 < η ⩽ 1 ) \eta (0<\eta \leqslant 1) η(0<η⩽1)为更新步长即学习率通过以上方法不断最小化 L ( w , b ) L(w,b) L(w,b)直至 L ( w , b ) = 0 L(w,b)=0 L(w,b)=0得到超平面 w x + b = 0 wx+b=0 wx+b=0。
这种学习算法直观上有如下解释:当一个实例点被误分类,即位于分离超平面的错误一 侧时,则调整w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面 间的距离,直至超平面越过该误分类点使其被正确分类。