对于感知机Perceptron算法的理解 March 8, 2018 [TOC] # 算法的适用范围 目标二分类,数据集线性可分。之所以不能学习XOR是因为XOR线性不可分。 # 几何意义 特征空间$$R^n$$中的一个超平面$$S$$将特征空间划分为两个部分。这两个部分分别代表两类。这个超平面称为**分离超平面**。 # 学习策略 感知机的损失函数由误分类点到超平面的距离之后推出,根据空间点到面的距离得到损失函数。 # 原始形式和对偶形式的区别 感知机学习算法分为原始形式和对偶形式,我的理解是原始形式和对偶形式本质上是一样的(废话),不同点在于计算顺序不同。假定处理高维数据,对偶形式的好处为可以首先并行计算出Gram矩阵,然后通过查表更新参数。而原始形式串行处理每组数据进行更新参数。 知乎的[这个](https://www.zhihu.com/question/26526858 "这个")答案解释的有点过了吧。 # 收敛性证明 收敛性证明的思路为递推缩放,主要是推导以下两个不等式。 ```latex ||\hat{W}_k|| \cdot ||\hat{W}_{opt}||\leq k \eta \gamma ``` ```math ||\hat{W}_k||^2 \leq k \eta^2 R^2 ``` # 多解的原因 - 初值不同 - 误分类点出现顺序不同 # 代码 通过`sklearn`实现:[Github](https://github.com/wangke0809/learn-statistical-learning-method/blob/master/Perceptron.py)