定义
感知机是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1值,感知机学习旨在求出将训练数据进行线性划分的分离超平面,是神经网络和支持向量机的基础。
感知机模型
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
)
f(x)=sign(w*x+b)
f(x)=sign(w∗x+b)
其中,
x
x
x是样本点,
w
w
w是权值向量,
b
b
b是偏置,在几何上可分别解释为超平面的法向量和截距,
s
i
g
n
sign
sign是符号函数。该函数即为感知机,感知机学习由训练集求得
w
w
w和
b
b
b,感知机预测则是通过学习得到的感知机模型,对于新输入的实例给出对应的输出类别。
感知机学习策略
- 数据集的线性可分性: 即对于该数据集,存在某个超平面可以将该数据集内的所有实例按照正负标签完全正确地划分到超平面两边,则此数据集为线性可分数据集,否则为线性不可分数据集。
- 感知机学习策略: 假设训练集是线性可分的。感知机学习的目标即是求得一个能够将训练集正负实例点完全正确划分的超平面,即确定
w
w
w和
b
b
b,为此,须确定一个学习策略,即定义损失函数并将其最小化。感知机的损失函数定义为:
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_i\in{M}}{y_i(w\cdot{x_i}+b)} L(w,b)=−xi∈M∑yi(w⋅xi+b)
其中, M M M为误分类点的集合,此函数实际上是对所有误分类点到超平面的的距离之和做了些许简化之后得到的函数。损失函数的值是非负的,如果没有误分类点,损失函数值为0,且误分类点越少,误分类点离超平面越近,损失函数值就越小。感知机的学习策略是在假设空间(定义在特征空间中的所有线性分类模型)中选取使得损失函数最小的模型参数 w w w和 b b b.
感知机学习算法
感知机的学习算法是在给定一个训练数据集的情况下,求得上述两参数使得损失函数最小。分原始形式和对偶形式。
-
原始形式: 感知机的学习算法是误分类驱动的,具体采用随机梯度下降法。过程如下:
输入:训练集 T T T 和学习率 η \eta η( 0 < η ≤ 1 0<\eta\leq 1 0<η≤1,又称步长);
输出: w w w, b b b,感知机模型: f ( x ) = s i g n ( w ∗ x + b ) f(x)=sign(w*x+b) f(x)=sign(w∗x+b)
(1)选取初值 w 0 w_0 w0 和 b 0 b_0 b0;
(2)在训练集中随机选取一个数据 ( x i , y i ) (x_i,y_i) (xi,yi);
(3)若 y i ( w ⋅ x i + b ≤ 0 ) y_i(w\cdot{x_i}+b\leq0) yi(w⋅xi+b≤0)(即为误分类点,所以说感知机的学习算法是误分类驱动的),更新 w w w, b b b,如下:
w ← w + η y i x i w\leftarrow w+\eta y_ix_i w←w+ηyixi b ← b + η y i b\leftarrow b+\eta y_i b←b+ηyi
(4)转到(2),直到训练集中没有误分类点为止。
对于该学习算法的直接理解是:当一个分类点被误分类,即位于分离超平面的错误一侧时,调整 w w w, b b b 的值,使得分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练集完全划分的分离超平面。当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。 -
对偶形式: 基本思想是将 w w w 和 b b b 表示为实例 x i x_i xi 和标记 y i y_i yi 的线性组合的形式,通求解其系数而求得 w w w 和 b b b
输入:线性可分数据集 T T T,学习率 η ( 0 < η ≤ 1 ) \eta (0<\eta \leq 1) η(0<η≤1);
输出: α \alpha α, b b b,感知机模型: f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=sign(\sum_{j=1}^{N}{\alpha_jy_jx_j\cdot x+b}) f(x)=sign(∑j=1Nαjyjxj⋅x+b), N N N 是数据集样本点个数。
(1) α ← 0 \alpha \leftarrow 0 α←0, b ← 0 b \leftarrow 0 b←0 ;
(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi) ;
(3)如果 y i ( ∑ j = 1 N α j y j x j ⋅ x i + b ) ≤ 0 y_i(\sum_{j=1}^{N}{\alpha_j}y_jx_j\cdot x_i+b)\leq0 yi(∑j=1Nαjyjxj⋅xi+b)≤0
α i ← α i + η \alpha_i \leftarrow \alpha_i+\eta αi←αi+η b ← b + η y i b \leftarrow b+\eta y_i b←b+ηyi α \alpha α 是一个向量,每次会更新其一个维度的值 α i \alpha_i αi,直到更新完毕为止。
(4)转至(2)直到没有误分类数据 。
对偶形式中训练数据仅以内积的形式出现,因此可以预先将训练集间的内积计算出来并以矩阵形式存储,此矩阵即为Gram矩阵,形式如下:
G = [ x i ⋅ x j ] N × N G=[x_i\cdot x_j]_{N\times N} G=[xi⋅xj]N×N