4 模式识别的方法
4.1 神经网络
假设我们采用ERM原则,对给定数目的训练样本上设计了一个十分复杂的学习机器(VC维很大),在训练样本上经验风险可以很小,但置信区间变大,这种现象称为过学习或过适应。故我们希望在两者之间折衷考虑,这产生了两种方法:
- 保持置信范围一定(选择适当构造的机器),最小化经验风险,具体实现如神经网络
- 保持经验风险固定(如等于0,在完全可分时),最小化置信范围,具体实现如支持向量机
考虑指示函数集合
f ( x , ω ) = s g n { ω ⋅ x + b } , ω ∈ R n , b ∈ R f(x, \omega) = sgn\{ \omega \cdot x + b\}, \omega \in \R^n, b \in \R f(x,ω)=sgn{
ω⋅x+b},ω∈Rn,b∈R
当训练数据对于 ω ∈ R n \omega \in \R^n ω∈Rn 无法完全正确分开时,我们只能希望找到错误最少的分类,但这一过程是NP完全的,而且我们无法使用基于梯度的算法找到局部极小值点(因指示函数导数要么为0,要么不存在),因此人们提出了用一个可导的函数(sigmoid)去逼近指示函数。
称平滑单调的函数 S S S 为 sigmoid函数,若 S S S 满足
S ( − ∞ ) = − 1 , S ( + ∞ ) = 1 S(-\infty) = -1,\ \ S(+\infty) = 1 S(−∞)=−1, S(+∞)=1
一个典型的例子是
S ( u ) = tanh ( u ) = e u − e − u e u + e − u S(u) = \tanh(u) = \dfrac{e^u-e^{-u}}{e^u+e^{-u}} S(u)=tanh(u)=eu+e−ueu−e−u
简单起见,不考虑常数偏置,设
f ( x , ω ) = S ( ω ⋅ x ) , ω ∈ R n R e m p ( ω ) = 1 l ∑ i = 1 l ( y i − S ( ω ⋅ x i ) ) 2 f(x, \omega) = S(\omega \cdot x), \omega \in \R^n \\ R_{emp} (\omega) = \dfrac{1}{l}\sum\limits_{i=1}^l (y_i - S(\omega \cdot x_i))^2 f(x,ω)=S(ω⋅x),ω∈RnRemp(ω)=l1i=1∑l(yi−S(ω⋅xi))2
有如下梯度下降解法( n n n 为迭代次数)
g r a d ω R e m p ( ω ) = − 2 l ∑ j = 1 l ( y j − S ( ω ⋅ x j ) ) S ′ ( ω ⋅ x j ) x j T ω n e w = ω o l d − γ ( n ) g r a d ω R e m p ( ω o l d ) grad_\omega R_{emp}(\omega) = -\dfrac{2}{l}\sum\limits_{j=1}^l (y_j - S(\omega \cdot x_j))S'(\omega \cdot x_j)x_j^T \\ \omega_{new} = \omega_{old} - \gamma(n) grad_\omega R_{emp}(\omega_{old}) gradωRemp(ω)=−l2j=1∑l(yj−S(ω⋅xj))S′(ω⋅xj)xjTωnew=ωold−γ(n)gradωRemp(ωold)
其中,梯度下降法收敛于局部极小值点的充分条件为梯度值有界,且系数满足
∑ n = 1 ∞ γ ( n ) = ∞ , ∑ n = 1 ∞ γ 2 ( n ) < ∞ \sum\limits_{n=1}^\infty \gamma(n) = \infty, \ \ \sum\limits_{n=1}^\infty \gamma^2(n) < \infty n=1∑∞γ(n)=∞, n=1∑∞γ2(n)<∞
# 但实际操作过程中 γ \gamma γ 即学习率始终为定值,尽管在有限次迭代之后终止(这可能意味着在有限次终止之后的无限次假想迭代过程中的 γ \gamma γ 将满足上面的条件)
# 另外 ∂ ω T x ∂ ω = I x = x \dfrac{\partial \omega^T x}{\partial \omega} = Ix=x ∂ω∂ωTx=Ix=x 而非 x T x^T xT 这个情况也值得商榷。(即使从直觉角度, ω \omega ω 与 x x x 的形状相同,而我们要求经验风险梯度的形状与 ω \omega ω 相同, 故也应该是 x x x 而非 x T x^T xT)
后向传播方法
假设存在神经网络共 m + 1 m+1 m+1层, 最后一层是单输出的感知器,前 m m m 层满足
x i ( k ) = S ( w ( k ) x i ( k − 1 ) ) , k = 1 , 2 , . . . , m u i ( k ) = w ( k ) x i ( k − 1 ) = [ u i 1 ( k ) , . . . , u i n k ( k ) ] T S ( u i ( k ) ) = [ S ( u i 1 ( k ) ) , . . . , S ( u i n k ( k ) ) ] T x_i(k) = S(w(k)x_i(k-1)), k=1,2,...,m \\ u_i(k) = w(k)x_i(k-1) = [u^1_i(k),...,u^{n_k}_i(k)]^T \\ S(u_i(k)) = [S(u^1_i(k)),...,S(u^{n_k}_i(k))]^T xi(k)=S(w(k)xi(k−1)),k=1,2,...,mui(k)=w(k)xi(k−1)=[ui1(k),...,uink(k)]TS(ui(k))=[S(ui1(k)),...,S(uink(k))]T
x i ( k ) x_i(k) xi(k) 为第i个样本的第k层向量, w ( k ) w(k) w(k) 是连接第k-1层和第k层的权值矩阵,目标为最小化经验泛函
I ( w ( 1 ) , . . . , w ( m ) ) = 1 l ∑ i = 1 l ( y i − x i ( m ) ) 2 I(w(1),...,w(m)) =\dfrac{1}{l}\sum\limits_{i=1}^l (y_i - x_i(m))^2 I(w(1),...,w(m))=l1i=1∑l(yi−xi(m))2
我们将其看作一个带等式约束条件的凸优化问题,采用拉格朗日乘子法解决:
L ( w , x , b ) = 1 l ∑ i = 1 l ( y i − x i ( m ) ) 2 − ∑ i = 1 l ∑ k = 1 m ( b i ( k ) ⋅ [ x i ( k ) − S ( w ( k ) x i ( k − 1 ) ) ] ) L(w,x,b) = \dfrac{1}{l}\sum\limits_{i=1}^l (y_i - x_i(m))^2 -\sum\limits_{i=1}^l\sum\limits_{k=1}^m (b_i(k) \cdot [x_i(k) - S(w(k)x_i(k-1))]) L(w,x,b)=l1i=1∑l(yi−xi(m))2−i=1∑lk=1∑m(bi(k)⋅[xi(k)−S(w(k)xi(k−1))])
需要注意 x i ( m ) x_i(m) xi(m) 为标量,但 x i ( k ) , k ≠ m x_i(k), k \not = m xi(k),k=m 为向量。矩阵求导规律见《矩阵分析和应用(张贤达,第五章)》。
第一个子条件(前向动力)
∂ L ∂ b i ( k ) = 0 → x i ( k ) = S ( w ( k ) x i ( k − 1 ) ) , i = 1 , . . . , l , k = 1 , . . . , m \dfrac{\partial L}{\partial b_i(k)} = 0\ \ \to \ \ x_i(k) = S(w(k)x_i(k-1)),\ \ i=1,...,l,\ k=1,...,m ∂bi(k)∂L=0 → xi(k)=S(w(k)xi(k−1)), i=1,...,l, k=1,...,m
第一个子条件(后向动力)
∂ L ∂ x i ( m ) = 0 → b i ( m ) = − 2 l ( y i − x i ( m ) ) , i = 1 , . . . , l ∂ L ∂ x i ( k ) = 0 , k ≠ m → 0 = ∂ ( − b i ( k ) ⋅ x i ( k ) + b i ( k + 1 ) ⋅ S ( w ( k + 1 ) x i ( k ) ) ) ∂ x i ( k ) = − b i ( k ) + ∂ S ( w ( k ) x i ( k ) ) ∂ x i ( k ) b i ( k + 1 ) → b i ( k ) = ∂ S ( w ( k ) x i ( k ) ) ∂ x i ( k ) b i ( k + 1 ) \dfrac{\partial L}{\partial x_i(m)} = 0\ \ \to \ \ b_i(m) = \dfrac{-2}{l} (y_i - x_i(m)),\ \ i=1,...,l \\ \dfrac{\partial L}{\partial x_i(k)} = 0, k \not = m\ \ \to \ \ 0=\dfrac{\partial (-b_i(k) \cdot x_i(k) + b_i(k+1) \cdot S(w(k+1)x_i(k)))}{\partial x_i(k)}\\=-b_i(k) + \dfrac{\partial S(w(k)x_i(k))}{\partial x_i(k)}b_i(k+1) \to b_i(k) = \dfrac{\partial S(w(k)x_i(k))}{\partial x_i(k)} b_i(k+1) ∂xi(m)∂L=0 → bi(m)=l−2(yi−xi(m)), i=1,...,l∂xi(k)∂L=0,k=m → 0=∂xi(k)∂(−bi(k)⋅xi(k)+bi(k+1)⋅S(w(k+1)xi(k)))=−bi(k)+∂xi(k)∂S(w(k)xi(k))bi(k+1)→bi(k)=∂xi(k)∂S(w(k)xi(k))bi(k+1)
第三个子条件(权值更新)
在极值点上 ∂ L ∂ w ( k ) = 0 \dfrac{\partial L}{\partial w(k)} = 0 ∂w(k)∂L=0, 考虑不在极值点:
w ( k ) ← w ( k ) − γ ( n ) ∂ L ∂ w ( k ) , ∂ L ∂ w ( k ) = ∑ i = 1 l b i ( k ) ∂ S ( w ( k ) x i ( k − 1 ) ) ∂ w ( k ) w(k) \leftarrow w(k) - \gamma(n) \dfrac{\partial L}{\partial w(k)}, \ \ \dfrac{\partial L}{\partial w(k)} = \sum\limits_{i=1}^l b_i(k) \dfrac{\partial S(w(k)x_i(k-1))}{\partial w(k)} w(k)←w(k)−γ(n)∂w(k)∂L, ∂w(k)∂L=i=1∑lbi(k)∂w(k)∂S(w(k)xi(k−1))
若将神经网络用于回归估计,只需在最后一层用线性函数来取代sigmoid函数即可。
4.2 支撑向量机
支持向量机 (Support Vector Machine, SVM, SV机)实现了如下方案:通过事先选择的某种映射将输入 x x x映射到高维空间 Z Z Z中向量 z z z,并在 Z Z Z 中构造最优分类超平面。
Δ \Delta Δ-间隔分类超平面
一个超平面 w ∗ ⋅ x + b = 0 , ∣ ∣ w ∗ ∣ ∣ = 1 w^* \cdot x + b = 0, ||w^*|| = 1 w∗⋅x+b=0,∣∣w∗∣∣=1 以如下方式将向量 x x x 分类
y = { 1 i f w ∗ ⋅ x − b ≥ Δ − 1 i f w ∗ ⋅ x − b ≤ − Δ y=\begin{cases} 1 &if \ \ w^* \cdot x - b \ge \Delta \\ -1 &if \ \ w^* \cdot x - b \le -\Delta \end{cases} y={
1−1if w∗⋅x−b≥Δif w∗⋅x−b≤−Δ
则称该超平面为 Δ \Delta Δ-间隔分类超平面。关于 Δ \Delta Δ-间隔分类超平面 有如下定理
定理 4.1
设向量 x ∈ X x \in X x∈X 在一个半径为 R R R 的球中,那么 Δ \Delta Δ-间隔分类超平面的VC维 h ≤ min { [ R 2 Δ 2 ] , n } + 1 h \le \min\{[\dfrac{R^2}{\Delta^2}],n\} + 1 h≤min{ [Δ2R2],n}+1
定理 4.2
设 l l l 个样本的训练集被最大间隔超平面完全分开, P e r r o r P_{error} Perror 为测试错误概率, m m m 为支持向量的个数, R R R 为包含所有训练集向量的最小超球半径, Δ \Delta Δ 为间隔值, n n n 为输入空间维数,则有
E [ P e r r o r ] ≤ E [ min { m l , [ R 2 Δ − 2 ] l , n l } ] E[P_{error}] \le E[\min\{\dfrac{m}{l}, \dfrac{[R^2\Delta^{-2}]}{l}, \dfrac{n}{l}\}] E[Perror]≤E[min{ lm,l[R2Δ−2],ln}]
上述定理表明,间隔越大,VC维越小,测试错误概率越小。因此我们希望找到间隔尽可能大的超平面。
# 一般 R ( α ) = f ( R e m p ( α ) , Φ ( ζ ) ) R(\alpha) = f(R_{emp}(\alpha), \Phi(\zeta)) R(α)=f(Remp(α),Φ(ζ)), 完全分类时 R e m p ( α ) = 0 R_{emp}(\alpha) = 0 Remp(α)=0, 在3.4节情况3中, R ( α ) = R e m p ( α ) ( 1 − a ( p ) τ ζ ) + R(\alpha) = \dfrac{R_{emp}(\alpha)}{(1-a(p)\tau\sqrt\zeta)_+} R(α)=(1−a(p)τζ)+Remp(α),此时置信区间是否还起作用?若为情况2, R ( α ) = R e m p ( α ) + Φ ( ζ ) R(\alpha) = R_{emp}(\alpha) + \Phi(\zeta) R(α)=Remp(α)+Φ(ζ),那么我认为上述定理直接表明 R ( α ) ≲ h / l R(\alpha) \lesssim h / l R(α)≲h/l,这样的结果是不是有点太好了?
最优超平面
假定训练数据(向量集合)
( x 1 , y 1 ) , . . . ( x n , y n ) , x ∈ R n , y ∈ { − 1 , + 1 } (x_1,y_1),...(x_n,y_n), x \in \R^n, y \in \{-1, +1\} (x1,y1),...(xn,yn),x∈Rn,y∈{
−1,+1}
可以被超平面 w ⋅ x + b = 0 w \cdot x + b = 0 w⋅x+b=0 分开。若分开的结果为完全正确,且离超平面最近的向量与超平面之间的距离是所有可能中最大的,称该向量集合被 最优超平面 或 最大间隔超平面 分开。显然最优超平面为 Δ = 1 / ∣ ∣ w ∣ ∣ \Delta = 1/ ||w|| Δ=1/∣∣w∣∣ 的 Δ \Delta Δ-间隔分类超平面。
超平面的正确分类的条件为:
( w ⋅ x i + b ) { ≥ 1 i f y i = 1 ≤ − 1 i f y i = − 1 (w \cdot x_i + b) \begin{cases} \ge 1 &if\ \ y_i = 1 \\ \le -1 &if\ \ y_i = -1 \end{cases} (w⋅xi+b){
≥1≤−1if yi=1if yi=−1
或者写成
y i [ w ⋅ x i + b ] ≥ 1 , i = 1 , . . . , l y_i[w \cdot x_i + b] \ge 1,\ \ i=1,...,l yi[w⋅xi+b]≥1, i=1,...,l
距离最大条件为
w = arg min { Φ ( w ) = ∣ ∣ w ∣ ∣ 2 } w = \arg\min\{ \Phi(w) = ||w||^2\} w=argmin{
Φ(w)=∣∣w∣∣2}
4.3 构造最优超平面
根据最优超平面的定义,即最小化泛函
Φ ( w ) = 1 2 w ⋅ w \Phi(w) = \dfrac{1}{2}w \cdot w Φ(w)=21w⋅w
约束条件为
y i [ w ⋅ x i + b ] ≥ 1 , i = 1 , . . . , l y_i[w \cdot x_i + b] \ge 1,\ \ i=1,...,l yi[w⋅xi+b]≥1, i=1,...,l
采用不等式约束的拉格朗日乘子法,拉格朗日函数
L ( w , b , α ) = 1 2 w ⋅ w + ∑ i = 1 l α i ( 1 − y i [ w ⋅ x i + b ] ) , α i ≥ 0 L(w, b, \alpha) = \dfrac{1}{2}w \cdot w + \sum\limits_{i=1}^l \alpha_i (1-y_i[w \cdot x_i + b] ),\ \ \alpha_i \ge 0 L(w,b,α)=21w⋅w+i=1∑lαi(1−yi[w⋅xi+b]), αi≥0
目标为 max α min w , b L \max\limits_{\alpha}\min\limits_{w, b}L αmaxw,bminL,拉格朗日函数对 w , b w, b w,b 求偏导得
w 0