《统计学习方法》——第二章感知机
写在前面
最近终于有开始看《统计学习方法》了,毕竟无脑调参确实没有什么意义。一方面是作为看书的笔记,一方面作为比博客或许能起到一点参考作用吧。
希望可以日更。
感知机
由输入空间到输出空间的函数:
f(x)=sign(w⋅x+b)f(x) = sign(w\cdot x+b)f(x)=sign(w⋅x+b)
称为感知机。
感知机是一种线性分类模型,属于判别模型。
感知机的学习策略
感知机的损失函数:
−1∥w∥∑xi∈Myi(w⋅xi+b)-\frac{1}{\Vert w\Vert} \sum_{x_{i}\in M}y_{i}(w\cdot x_{i}+b)−∥w∥1xi∈M∑yi(w⋅xi+b)
注意:损失函数不需要考虑−1∥w∥-\frac{1}{\Vert w \Vert}−∥w∥1
感知机的学习算法
感知机其实有两种学习算法:
- 原始学习算法
- 对偶学习算法
原始学习算法
每次选取一个误分类点来进行更新。
输入:训练数据集T,学习率η。
输出:w, b; 感知机模型:f(x)=sign(w⋅x+b)f(x) = sign(w\cdot x+b)f(x)=sign(w⋅x+b)。
过程:
- 选出初值w0,b0w_{0}, b_{0}w0,b0;
- 在训练集中选取数据(xi,yi)(x_{i}, y_{i})(xi,yi);
- 如果yi(w⋅xi+b)≤0y_{i}(w \cdot x_{i} + b)\leq 0yi(w⋅xi+b)≤0,
w←w+ηyixiw\leftarrow w + \eta y_{i}x_{i}w←w+ηyixi
b←b+ηyib\leftarrow b + \eta y_{i}b←b+ηyi - 移动到(2),直到训练集中没有误分类点。
对偶学习算法
对偶形式的基本想法是,将w和b表示为实例和标记的线性组合的形式,通过求解其系数而求的w和b。在原始算法的基础上假设初始值为0。这样,最后学习到的w和b可以表示为:
w=∑i=1Nαiyixiw = \sum _{i=1}^{N} \alpha_{i}y_{i}x_{i} w=i=1∑Nαiyixi
b=∑i=1Nαiyib = \sum _{i=1} ^{N} \alpha_{i}y_{i}b=i=1∑Nαiyi
其中αi=ηni\alpha_{i} = \eta n_{i}αi=ηni, nin_{i}ni是第i个点误分类的次数。
输入:训练数据集T
输出:α,b\alpha, bα,b; 感知机模型f(x)=sign(∑j=1Nαjyjxj⋅x+b)f(x)=sign(\sum _{j=1}^{N}\alpha _j y_j x_j \cdot x+b)f(x)=sign(∑j=1Nαjyjxj⋅x+b), 其中α\alphaα是向量。
过程:
- a←0,b←0;a\leftarrow0, b\leftarrow0;a←0,b←0;
- 在训练集中选择数据(xi,yi)(x_{i}, y_{i})(xi,yi)
- 若f(x)←0f(x)\leftarrow0f(x)←0,
αi←αi+η\alpha_{i} \leftarrow\alpha_{i}+\etaαi←αi+η
b←b+ηyib\leftarrow b+\eta y_{i}b←b+ηyi - 转至(2)直到没有误分类的数据。
算法的收敛性
其实,感知机的两种算法都已经介绍完了。但是,感知机算法非常重要的一点是——如何证明其的收敛性,也就是证明在训练集线性可分的情况下该算法在经过有限次数的迭代之后可以线性分割该训练集。
(打latex确实是太麻烦了,所以直接手写了,字丑见谅。)