1 感知机(perceptron)学习 模型
-
二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取 +1 和 -1 二值;
-
感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型;
-
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化, 求得感知机模型;
-
感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式;
-
感知机是神经网络与支持向量机的基础。
-
感知机模型:
f ( x ) = s i g n ( w ⋅ x + b ) , 符 号 函 数 s i g n ( x ) = { + 1 , x ≥ 0 − 1 , x < 0 f(x)=sign(w\cdot x+b),符号函数sign(x)= \begin{cases} +1, & \text{$x\geq 0$} \\[2ex] -1, & \text{$x<0$}\end{cases} f(x)=sign(w⋅x+b),符号函数sign(x)=⎩⎨⎧+1,−1,x≥0x<0
- 其中, w w w 和 b b b 为感知机模型参数, w ∈ R n w\in R^n w∈Rn 叫作权重(weight), b ∈ R b\in R b∈R 叫作偏置(bias)
- 感知机模型对应于输入空间(特征空间)中的分离超平面 w ⋅ x + b = 0 w\cdot x+b=0 w⋅x+b=0。
-
感知机模型的假设空间:定义在特征空间中的所有线型分类模型,即函数集合 { f ∣ f ( x ) = w ⋅ x + b } \{f|f(x)=w\cdot x+b\} {f∣f(x)=w⋅x+b}
2 感知机学习 策略
-
假设:训练数据集是线性可分的
-
损失函数(经验风险函数):误分类点到超平面S 的总距离,经过化简得到。
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) , 其 中 M 为 误 分 类 点 的 集 合 L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b),其中M为误分类点的集合 L(w,b)=−xi∈M∑yi(w⋅xi+b),其中M为误分类点的集合
- 损失函数是非负的,如果没有误分类点,损失函数值是0。
-
学习策略:即定义(经验)损失函数,并将损失函数极小化
- min w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) \min_{w,b} L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b) w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
3 感知机学习 算法
-
感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法,有原始形式和对偶形式。
-
感知机学习算法的原始形式
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2}),...(x_{N},y_{N})\} T={(x1,y1),(x2,y2),...(xN,yN)},其中 x i ∈ χ = R n x_i\in\chi=R^n xi∈χ=Rn, y i ∈ Y = { − 1 , + 1 } y_i\in\mathcal{Y}=\{-1,+1\} yi∈Y={−1,+1}, i = 1 , 2 , . . , N i=1,2,..,N i=1,2,..,N,学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η≤1);
输出: w , b w,b w,b;感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w\cdot x+b) f(x)=sign(w⋅x+b)。
(1)选取初值 w 0 , b 0 ( 实 际 当 中 经 常 选 择 w 0 = 0 , b 0 = 0 作 为 初 始 值 ) ; w_0,b_0(实际当中经常选择w_0=0,b_0=0作为初始值); w0,b0(实际当中经常选择w0=0,b0=0作为初始值);
(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)\leq 0 yi(w⋅xi+b)≤0(不等式成立表示 ( x i , y i ) (x_i,y_i) (xi,yi)为误分类点),
则(梯度下降法)更新 w , b w,b w,b : w ← w + η y i x i ; b ← b + η y i w\leftarrow w+\eta y_ix_i;b\leftarrow b+\eta y_i w←w+ηyixi;b←b+ηyi
(4)转至(2),直至训练集中没有误分类点。
-
感知机学习算法的对偶形式
- w = ∑ i = 1 N α i y i x i , b = ∑ i = 1 N α i y i , 其 中 α i = n i η ≥ 0 w=\sum_{i=1}^N\alpha_iy_ix_i,b=\sum_{i=1}^N\alpha_iy_i,其中\alpha_i=n_i\eta\geq0 w=∑i=1Nαiyixi,b=∑i=1Nαiyi,其中αi=niη≥0
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . ( x N , y N ) } T=\{(x_{1},y_{1}),(x_{2},y_{2}),...(x_{N},y_{N})\} T={(x1,y1),(x2,y2),...(xN,yN)},其中 x i ∈ χ = R n x_i\in\chi=R^n xi∈χ=Rn, y i ∈ Y = { − 1 , + 1 } y_i\in\mathcal{Y}=\{-1,+1\} yi∈Y={−1,+1}, i = 1 , 2 , . . , N i=1,2,..,N i=1,2,..,N,学习率 η ( 0 < η ≤ 1 ) \eta(0<\eta\leq1) η(0<η≤1);
输出: α , b \alpha,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),其中 α = ( α 1 , α 2 , . . . , α N ) T \alpha=(\alpha_1,\alpha_2,...,\alpha_N)^T α=(α1,α2,...,αN)T。
(1)选取初值 w 0 , b 0 ( 实 际 当 中 经 常 选 择 w 0 = 0 , b 0 = 0 作 为 初 始 值 ) ; w_0,b_0(实际当中经常选择w_0=0,b_0=0作为初始值); w0,b0(实际当中经常选择w0=0,b0=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_jy_jx_j\cdot x_i+b)\leq 0 yi(∑j=1Nαjyjxj⋅xi+b)≤0(不等式成立表示 ( x i , y i ) (x_i,y_i) (xi,yi)为误分类点),
则(梯度下降法)更新 α i , b \alpha_i,b αi,b : α i ← α i + η ; b ← b + η y i \alpha_i\leftarrow \alpha_i+\eta;b\leftarrow b+\eta y_i αi←αi+η;b←b+ηyi
(4)转至(2),直至训练集中没有误分类点。
-
实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类,换句话说,这样的实例对学习结果影响最大
-
误分类的次数k 是有上界的,经过有限次搜索,可以找到将训练数据完全正确分开的分离超平面。也就是说,当训练数据集线性可分时,感知机学习算法迭代是收敛的。
k ≤ ( R γ ) 2 k\leq(\frac{R}{\gamma})^2 k≤(γR)2
-
训练集线性不可分时,感知机学习算法不收敛, 迭代结果会发生震荡.
-
感知机学习算法存在许多解, 这些解既依赖于初值的选择,也依赖于迭代过程中误分类点的选择顺序。为了得到唯一的超平面,需要对分离超平面增加约束条件, 这就是线性支持向量机的思想。