Perception Learning Algorithm, PLA
1.感知机
感知机是一种线性分类模型,属于判别模型。
感知机模型给出了由输入空间到输出空间的映射:
f(X) = sign(WTX + b)
简单来说,就是找到一个分类超平面 WTX + b =0,将数据集中的正例和反例完全分开。
2.感知机学习算法(PLA)
感知机学习算法是为了找到 W 和 b 以确定分类超平面。为了减少符号,令 W = [b, W1, W2, ..., Wn], X = [1, X1, X2, ..., Xn],则 f(X) = sign(WTX )。
感知机学习算法是由误分类驱动的:
- 对于实际为正例(y=1)的误分类点,则对 W 进行如下修正:
W = W + X
从而使得 WTX 变大,更接近大于 0, 即更接近正确分类; (W+X)TX = WTX + ||X||2
- 对于实际为正例(y=1)的误分类点,则对 W 进行如下修正:
W = W - X
从而使得 WTX 变小,更接近小于 0, 即更接近正确分类; (W-X)TX = WTX - ||X||2
综上,令 W 初值 W0=0,然后每次选取一个误分类点,更新 W = W + y X ,直到所有点都被正确分类。
PS:不同的初值或者选取不同的误分类点,解可以不同。
具体算法如下:
3. PLA算法的收敛性
首先,确定数据集是 线性可分 的,否则,PLA永远不收敛。
假设数据集线性可分,则一定存在一个分类超平面可以将正例负例完全区分。
设最优的参数为 Wf,则:
yi WfTXi ≥ minn(ynWfTXn) > 0
已知 WfTW 越大,则 W 与 Wf 越接近。(联想协方差)
WfTWT = WfT (WT-1+ yT-1 XT-1 )
= WfT WT-1 + yT-1WfTXT-1
≥ WfT WT-1 + minn(ynWfTXn) (1)
> WfT WT-1 + 0
然而,WfTW 越大,也有可能只是 W 的元素值放大,但是W 与 Wf 的角度却没有接近。
所以,我们要讨论 $\frac{W_{f}^{T}W_{T}}{\left \| W_{f} \right \|\left \| W_{T} \right \|}$ 是否越来越大,若是,则 W 越来越接近最优值 Wf 。(联想 SVM 中 函数间隔 和 集合间隔 的概念)
我们知道,PLA 是误分类点驱动,所以有:
yi WTXi ≤ 0
又有:
WT = WT-1 + yT-1 XT-1
则:
|| WT ||2 = || WT-1 ||2 + yT-12 || XT-1 ||2 + 2 yT-1 WT-1T XT-1
≤ || WT-1 ||2 + yT-12 || XT-1 ||2 = || WT-1 ||2 + || XT-1 ||2
≤ || WT-1 ||2 + minn|| Xn ||2 (2)
设 W0 = 0
令 ρ = minn(ynWfTXn) ,代入式 (1):
WfTWT ≥ WfT WT-1 + ρ ≥ WfT WT-2 + 2ρ ≥ ... ≥ WfT W0 + Tρ = T