ch2-感知机

感知机

定义如下:

线性可分性

给定一个数据集 $T$ ,存在一个超平面 $S$ ,满足能够将数据集的正实例点和负实例点完全正确地划分到超平面两侧,则称此数据集是线性可分的。

感知机的损失函数

由超平面 $S$ 的方程 $wx+b$ 可以得到对于任意一个点,到超平面的距离是

其中 $\frac{1}{||w||}$ 是 L2 范数。

那么对于某一误分类点,则有:

考虑所有误分类点,则有:

我们忽略 $\frac{1}{||w||}$ ,则得到了感知机算法的损失函数:

使用随机梯度下降算法对损失函数进行最优化。

训练过程

输出:参数 $w,b$

  1. 选取初始值 $w{0}$ , $b{0}$ (一般默认为 0 )

  2. 在训练集中选取数据 $(x{i},y{i})$

  3. 如果 $y{i}(w \cdot x{i} + b) <= 0$ 则:

  4. 重复步骤 2 和 3 ,直到完全分类未知。

算法的收敛性

对于线性可分的数据集,感知机算法是收敛的。

其中 $R=max|x_{i}|$ , $\gamma > 0$ 。

感知机的对偶形式

我们知道利用随机梯度函数优化的时候,有:

这里我们可以知道每次修改的量都是一定的,这里我们定义 $\alpha{i} = n{i} \cdot \gamma$ , 其中 $n_{i}$ 表示该点被选择了第 $i$ 次,那么

这样,则模型变为:

其中我们只需要对 $\alpha_{i}$ 进行迭代就好了,训练步骤基本同上。

那我们为什么要对偶形式呢?疑问我们可以看到 $f(x)$ 中样本点的特征向量以内积的形式存在,如果我们可以提前计算好,那么就可以大大滴加快训练速度。

Gram 矩阵

总结

感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有对偶形式,算法简单。若数据集线性可分,则感知机是收敛的

遇到的问题

  1. 初始点的选择对随机梯度下降算法的影响。

    如果算法是收敛的,那么可能存在多个解。

作业题

Q:感知机为什么线性不可分?

A: 因为 XOR 的训练集线性不可分。坐标轴上点 (0,0) = (1,1) = 1 , (0,1) = (1,0 ) = 0 ,此时异或无法线性可分。

参考资料

很好地一篇学习笔记: 感知机学习笔记