最近在复习机器学习的基础,学习下《统计学习方法》感知机这章,主要针对书上难以理解的部分做一些学习笔记,方便自己后期复习。
感知机是 二分类 的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为二类的分离超平面。感知机旨在求出该超平面,为求得超平面引入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化。
感知机1957年被提出,它是 神经网络模型 与 支持向量机(SVM) 的基础。
感知机模型定义
对于 $x \in R^n$ ,输出 $\{+1, -1\}$ ,表达形式为: $f(x) = sign(w \cdot x + b)$ ,即该式称为感知机。
其中,$sign(x) = \left\{\begin{matrix}
+1, & x \geqslant 0 & \\
-1, & x < 0 &
\end{matrix}\right.$
$sign$ 通常称之为激活函数,激活函数同时也是构成神经网络模型的基本单元,不过在神经网络模型中通常用 $sigmoid$ 函数。
几何含义即对应书上的超平面,如下图。
其实我们就是在学习参数 $w$ 和 $b$ ,确定了 $w$ 和 $b$ ,图上的直线(高维高间下为超平面)也就确定了,那么以后来一个数据点,就可以用训练好的模型进行预测,如果大于等于0就分到 +1,小于0就分到 -1。
这里有个小知识点(大概是高中的几何数据)证明下,证明如下。
证明: $\overrightarrow{w}$ 是直线 $\overrightarrow{w} \cdot \overrightarrow{x} + b = 0$(高维空间下为超平面)的法向量。
任找平面 $\overrightarrow{w} \cdot \overrightarrow{x} + b = 0$ 上两点 $x_1, x_2$ ,如上图。
则 $\left\{\begin{matrix}
\overrightarrow{w} \cdot \overrightarrow{x_1} + b =0 & 式1 & \\
\overrightarrow{w} \cdot \overrightarrow{x_2} + b =0 & 式2 &
\end{matrix}\right.$
式1 减 式2 得: $\overrightarrow{w} \cdot (\overrightarrow{x_1} - \overrightarrow{x_2}) = 0$ ,即 $\overrightarrow{w} \cdot \overrightarrow{x_2 x_1} = 0$ ,
则 $\overrightarrow{w}$ 与 $\overrightarrow{x_2 x_1}$ 垂直,平面内其它向量也是如此。
即证 $\overrightarrow{w}$ 是直线 $\overrightarrow{w} \cdot \overrightarrow{x} + b = 0$ (高维空间下为超平面)的法向量
$\overrightarrow{w}$ 为平面 $\overrightarrow{w} \cdot \overrightarrow{x} + b = 0$ 的法向量,可以通过举一些例子也可以方便理解此结论。
超平面距原点的距离为 $\frac{b}{||w||}$ ,这个结论也可以通过例子来理解。
感知机学习策略
上面我们已经知道感知机模型了,我们也知道他的任务是解决二分类问题,也知道了超平面的形式,那么下面关键是如何学习出超平面的参数 $w$ 和 $b$ ,这就需要用到我们的学习策略。
我们知道机器学习模型,需要首先找到损失函数,然后转化为最优化问题,用梯度下降等方法进行更新,最终学习到我们模型的参数 $w$ 和 $b$ 。那么,我们开始找感知机的损失函数。
我们很自然地会想到用误分类点的数目来作为损失函数,是的误分类点个数越来越少,感知机本来也是做这种事的,只需要全部分对就好。但这样的损失函数并不是 $w$ 和 $b$ 连续可导(无法用函数形式来表达出误分类的人数),无法进行优化。
于是转为另一种选择,误分类点到超平面的总距离(直观来看,总距离越小越好),则距离公式为 $\frac{1}{||w||} |w \cdot x_0 + b|$ ,
考虑到类别,因为是二分类问题,所以可以进一步化简得:$- \frac{1}{||w||} y_i (w \cdot x_0 + b)$
那么所有误分类点的集合为 $M$ ,则总距离为 $- \frac{1}{||w||} \underset{x_i \in M}{\sum} y_i (w \cdot x_i + b)$
因为 $\frac{1}{||w||}$ 是常数,可以不考虑,所以最终得到损失函数为:$L(w,b) = - \underset{x_i \in M}{\sum} y_i (w \cdot x_i + b)$
感知机学习问题转化为求解损失函数的最优化问题,最优化的方法就是套路的方法,即 随机梯度下降法 。
总结
感知机的模型是 $f(x) = sign(w*x + b)$ ,它的任务是解决二分类问题,要得到感知机模型我们就需要学习参数 $w$ 和 $b$ 。则需要一个学习策略,不断的迭代更新 $w$ 和 $b$ ,所以我们就需要一个损失函数,最终选择误分类点到超平面的距离来表示来得到最终的损失函数。
参考文献
浅析感知机-模型与学习策略 ,知乎
《统计学习方法》,李航