感知机¶
概述¶
感知机(Perceptron)是二类分类的线性分类模型,是神经网络与支持向量机的基础。
感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。
感知机预测是用学习得到的感知机模型对新的输入实例进行分类。其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。
学习策略¶
感知机假设训练数据集是线性可分的。
(注意,线性可分的定义就是存在超平面可以划分数据集)
其模型对应一个在输入空间(特征空间)中将实例划分为正负两类的分离超平面。
为了求出该分离超平面,需要引入基于误分类的损失函数,并利用梯度下降法对损失函数进行极小化,求得感知机模型。
损失函数¶
我们定义损失函数为所有误分类点到超平面距离的总和 $$ - \frac{1}{|w|} \sum_{x_i \in M} y_i (w \cdot x_i + b) $$ 在实际应用中,我们可以不考虑系数\(\|w\|\),直接以后一项为损失函数
算法¶
对于原始的感知机算法,我们可以直接使用梯度下降,即对每批数据,更新 $$ \begin{aligned} w &\leftarrow w + \eta y_i x_i \ b &\leftarrow b + \eta y_i \end{aligned} $$ 其中\(\eta\)是步长,又称为学习率
又设初值为0,则最后学习到的\(w\)和\(b\)形式如下,即对偶形式 $$ \begin{aligned} w &= \sum_{i=1}^{N} \alpha_i y_i x_i \ b &= \sum_{i=1}^{N} \alpha_i y_i \end{aligned} $$
此时有感知机模型计算仅与内积有关,可以事先计算出样本的内积矩阵 $$ \begin{aligned} f(x) = \text{sign} \left( \sum_{j=1}^{N} \alpha_j y_j x_j \cdot x + b \right) \end{aligned} $$