【LDF】线性判别函数(二)

感知准则函数

  1. 线性可分性
  • 现有 n n n 个 样本: y 1 , y 2 , … , y n \mathbf{y}_1, \mathbf{y}_2, \ldots, \mathbf{y}_n y1,y2,,yn, 这些样本来自于两个类别 ω 1 \omega_1 ω1 ω 2 \omega_2 ω2
  • 任务: 寻找一个线性判别函数 g ( x ) = a T y g(\mathbf{x})=\mathbf{a}^T \mathbf{y} g(x)=aTy, 使对这 n n n 个样本的错分概率最小。
  • 如果存在一个权向量 a \mathbf{a} a, 对所有 y ∈ ω 1 \mathbf{y} \in \omega_1 yω1, 均有 a T y > 0 \mathbf{a}^T \mathbf{y}>0 aTy>0, 且对 所有 y ∈ ω 2 \mathbf{y} \in \omega_2 yω2, 均有 a T y < 0 \mathbf{a}^T \mathbf{y}<0 aTy<0, 则这组样本集为线性可分的; 否则为线性不可分的。 (广义判别函数意义下)
  1. 样本规范化
  • 如果样本集是线性可分的, 将属于 ω 2 \omega_2 ω2 的所有样本由 y \mathbf{y} y 变成 − y -\mathbf{y} y, 对所有 n n n 样本, 将得到 a T y > 0 \mathbf{a}^T \mathbf{y}>\mathbf{0} aTy>0
  • 经过上述处理之后, 在训练的过程中就不必考虑原来的样本类别。这一操作过程称为对样本的规范化(normalization) 处理。
  • 规范化增广样本: 首先将所有样本写成齐次坐标形式,然后将属于 ω 2 \omega_2 ω2 的所有样本由 y \mathbf{y} y 变成 − y -\mathbf{y} y
  • 后面主要将集中于 “规范化增广样本”。“增广” 是指 “齐次坐标表示” 的含义, 即 y = ( x T , 1 ) T ∈ R d + 1 \mathbf{y}=\left(\mathbf{x}^T, 1\right)^T \in R^{d+1} y=(xT,1)TRd+1
  1. 解区与解向量
  • 在线性可分的情形下, 满足 a T y i > 0 , i = 1 , 2 , … , n \mathbf{a}^T \mathbf{y}_i>0, i=1,2, \ldots, n aTyi>0,i=1,2,,n 的权向量 a \mathbf{a} a 称为解向量。
  • 权向量 a \mathbf{a} a 可以理解为权空间中的一点, 每个样本 y i \mathbf{y}_i yi a \mathbf{a} a 的位置均可能起到限制作用, 即要求 a T y i > 0 \mathbf{a}^T \mathbf{y}_i>0 aTyi>0
  • 任何一个样本点 y i \mathbf{y}_i yi 均可以确定一个超平面 H i : a T y i = 0 H_i: \mathbf{a}^T \mathbf{y}_i=0 Hi:aTyi=0, 其法向量为 y i \mathbf{y}_i yi 。如果解向量 a ∗ \mathbf{a}^* a 存在, 它必定在 H i H_i Hi 的正侧, 因为只有在正侧才能满足 ( a ∗ ) T y i > 0 \left(\mathbf{a}^*\right)^T \mathbf{y}_i>0 (a)Tyi>0
  • 按上述方法, n n n 个样本将产生 n n n 个超平面。每个超平面将空间分成两个半空间。如果解向量存在, 它必定在所有这些正半空间的交集区域内。这个区域内的所有向量均是一个 可行的解向量 a ∗ \mathbf{a}^* a
    【LDF】线性判别函数(二)_第1张图片
  1. 限制解区
  • 可行的解向量不是唯一的, 有无穷多个。
  • 经验: 越靠近区域中间的解向量, 越能对新的样本正确分类;可以引入一些条件来限制解空间
  • 比如: 寻找一个单位长度的解向量 a \mathbf{a} a, 能最大化样本到分界面的最小距离
  • 比如: 寻找一个最小长度的解向量 a \mathbf{a} a, 使 a T y i ≥ b > 0 \mathbf{a}^T \mathbf{y}_i \geq b>0 aTyib>0 。此时可以将 b b b 称为间隔 (margin)。
    【LDF】线性判别函数(二)_第2张图片
  1. 感知准则函数
  • 感知准则函数
    任务: 设有一组样本 y 1 , y 2 , … , y n \mathbf{y}_1, \mathbf{y}_2, \ldots, \mathbf{y}_n y1,y2,,yn, 各样本均规范化表示。我们的目的是要寻找一个解向量 a \mathbf{a} a , 使
    a T y i > 0 , i = 1 , 2 , … , n \mathbf{a}^T \mathbf{y}_i>0, \quad i=1,2, \ldots, n aTyi>0,i=1,2,,n
    在线性可分情形下, 满足上述不等式的 a \mathbf{a} a 是无穷多的, 因此需要引入一个准则。
  • Frank Rosenblatt 于50年代提出的感知学习机思想
    考虑如下准则函数:
    J p ( a ) = ∑ y ∈ Y ( − a T y ) , 其中,  Y  为错分样本集合  J_p(\mathbf{a})=\sum_{\mathbf{y} \in Y}\left(-\mathbf{a}^T \mathbf{y}\right) \text {, 其中, } Y \text { 为错分样本集合 } Jp(a)=yY(aTy)其中Y 为错分样本集合 
  • y \mathbf{y} y 被错分时, a T y ≤ 0 \mathbf{a}^T \mathbf{y} \leq 0 aTy0, 则 − a T y ≥ 0 -\mathbf{a}^T \mathbf{y} \geq 0 aTy0 。因此 J p J_p Jp (a) 总是大于等于 0 。在可分情形下, 当且仅当 Y Y Y 为空集时 J p ( a ) J_p(\mathbf{a}) Jp(a) 将等于零, 这时将不存在错分样本。
  • 因此, 目标是最小化 J p ( a ) : min ⁡ a J p ( a ) J_p(\mathbf{a}): \min _{\mathbf{a}} J_p(\mathbf{a}) Jp(a):minaJp(a)
  • 求导
    ∂ J p ( a ) ∂ a = − ∑ y ∈ Y y \frac{\partial J_p(\mathbf{a})}{\partial \mathbf{a}}=-\sum_{\mathbf{y} \in Y} \mathbf{y} aJp(a)=yYy
  • 根据梯度下降,有如下更新准则
    a k + 1 = a k + η k ∑ y ∈ Y k y \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \sum_{\mathbf{y} \in Y_k} \mathbf{y} ak+1=ak+ηkyYky
    这里, a k + 1 \mathbf{a}_{k+1} ak+1 是当前迭代的结果, a k \mathbf{a}_k ak 是前一次迭代的结果, Y k Y_k Yk 是被 a k \mathbf{a}_k ak 错分的样本集合, η k \eta_k ηk 为步长因子 (更新动力因子, 学习率)。
  • 感知准则算法(Batch Perceptron)(伪代码)

 begin initialize:  a , η , certain  θ  (small value),  k = 0  do  k ← k + 1 a = a + η k ∑ y ∈ Y ( k ) y / / Y ( k ) = Y k  until  ∣ η k ∑ y ∣ < θ , y ∈ Y k / /  一个较松的停止条件   return  a  end  \begin{aligned} & \text { begin initialize: } \mathbf{a}, \eta \text {, certain } \theta \text { (small value), } k=0 \\ & \qquad \begin{array}{ll} \text { do } k \leftarrow k+1 & \\ \qquad \mathbf{a}=\mathbf{a}+\eta_k \sum_{\mathbf{y} \in Y(k)} \mathbf{y} & / / Y(k)=Y_k \\ \text { until }\left|\eta_k \sum \mathbf{y}\right|<\theta, \quad \mathbf{y} \in Y_k & / / \text { 一个较松的停止条件 } \\ \text { return } \mathbf{a} \end{array} \\ & \text { end } \end{aligned}  begin initialize: a,η, certain θ (small value), k=0 do kk+1a=a+ηkyY(k)y until ηky<θ,yYk return a//Y(k)=Yk// 一个较松的停止条件  end 

  • 之所以称为 “batch perception” 是因为在迭代过程中同时考虑多个样本(每一步所有错分样本都参与更新)。计算复杂度低, 能以较快的速度收敛到极小值点
  • 可变增量批处理修正方法(Batch Variable-Increment Perceptron)
     begin initialize:  a , η 0 , k = 0  do  k ← k + 1 (   m o d   n ) Y k = { } , j = 0  do  j ← j + 1  if  y j  is misclassified, then append  y j  to  Y k  until  j = n a = a + η k ∑ y ∈ Y ( k ) y  //发现所有错分, 然后再修正   until  Y k = { }  /直到所有样本均正确分类   return  a \begin{aligned} & \text { begin initialize: } \mathbf{a}, \eta_0, k=0 \\ & \qquad \begin{aligned} & \text { do } k \leftarrow k+1(\bmod n) \\ & \qquad Y_k=\{\}, j=0 \\ & \qquad \text { do } j \leftarrow j+1 \\ & \qquad \qquad \text { if } \mathbf{y}_j \text { is misclassified, then append } \mathbf{y}_j \text { to } Y_k \\ & \qquad \text { until } j=n \\ & \qquad \mathbf{a}=\mathbf{a}+\eta_k \sum_{\mathbf{y} \in Y(k)} \mathbf{y} \text { //发现所有错分, 然后再修正 } \\ & \text { until } Y_k=\{\} \text { /直到所有样本均正确分类 } \\ & \text { return } \mathbf{a}\\ \end{aligned} \end{aligned}  begin initialize: a,η0,k=0 do kk+1(modn)Yk={},j=0 do jj+1 if yj is misclassified, then append yj to Yk until j=na=a+ηkyY(k)y //发现所有错分然后再修正  until Yk={} /直到所有样本均正确分类  return a
  • 区别就是每一次都要重新计算错分样本
  • 由于所有被 a k \mathbf{a}_k ak 错分的样本必然位于以 a k \mathbf{a}_k ak 为法向量的超平面的负侧, 所以这些样本的和也必然在该侧
  • a k + 1 \mathbf{a}_{k+1} ak+1 在更新的过程中, 会向错分类样本之和靠近, 因而朝着有利的方向移动(旋转)。一旦这些错分样本点穿过超平面, 就正确分类了。
  • 对于线性可分的样本集, 算法可以在有限步内找到最优解。收敛速度取决于初始权向量和步长

【LDF】线性判别函数(二)_第3张图片

  • 固定增量单样本修正方法(Fixed-Increment Single-Sample Perceptron)
     begin initialize:  a , k = 0  do  k ← k + 1 (   m o d   n )  if  y k  is misclassified by a, then  a = a + y k  until all patterns properly classified   return  a  end  \begin{aligned} & \text { begin initialize: }\mathbf{a}, k=0 \\ & \qquad \text { do } k \leftarrow k+1(\bmod n) \\ & \qquad \qquad \text { if } \mathbf{y}^k \text { is misclassified by a, then } \mathbf{a}=\mathbf{a}+\mathbf{y}^k \\ & \qquad\text { until all patterns properly classified } \\ & \qquad\text { return } \mathbf{a} \\ & \text { end } \end{aligned}  begin initialize: a,k=0 do kk+1(modn) if yk is misclassified by a, then a=a+yk until all patterns properly classified  return a end 

  • 每次迭代只考虑一个错分样本 y k \mathbf{y}^k yk, 梯度下降法可以写成: a k + 1 = a k + η k y k \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \mathbf{y}^k ak+1=ak+ηkyk 。考虑固定增量, 即令 η k = 1 \eta_k=1 ηk=1 :“固定增量” 并不改变分类决策, 相当于将样本作了一个 1 / η k 1 / \eta_k 1/ηk 的缩放。

  • 算法解释:如果 a k \mathbf{a}_k ak y k \mathbf{y}_k yk分错:
    ( a k ) T y k ≤ 0 \left(\mathrm{a}_k\right)^T \mathrm{y}^k \leq 0 (ak)Tyk0
    a k + 1 = a k + y k \mathbf{a}_{k+1}=\mathbf{a}_k+\mathbf{y}^k ak+1=ak+yk
    ( a k + 1 ) T y k = ( a k ) T y k + ∥ y k ∥ ∣ 2 \left(\mathbf{a}_{k+1}\right)^T \mathbf{y}^k=\left(\mathbf{a}_k\right)^T \mathbf{y}^k+\left.\left\|\mathbf{y}^k\right\|\right|^2 (ak+1)Tyk=(ak)Tyk+ yk 2
    ( a k + 1 ) T y k \left(\mathbf{a}_{k+1}\right)^T \mathbf{y}^k (ak+1)Tyk 在原来的基础上增加了一个正数: ∥ y k ∥ 2 \left\|\mathbf{y}^k\right\|^2 yk 2。加着加着不就变正了吗,变正了不就正确分类了吗

  • 可变增量单样本修正方法(Variable-Increment Perceptron with Margin
    a k + 1 = a k + η k y k \mathbf{a}_{k+1}=\mathbf{a}_k+\eta_k \mathbf{y}^k ak+1=ak+ηkyk
     begin initialize: a, margin  b , η 0 , k = 0  do  k ← k + 1 (   m o d   n )  if  a T y k ≤ b , then  a = a + η k y k  until  a T y k > b  for all  k  return  a  end  \begin{aligned} & \text { begin initialize: a, margin } b, \eta_0, k=0 \\ & \qquad \text { do } k \leftarrow k+1(\bmod n) \\ & \qquad \qquad \text { if } \mathbf{a}^T \mathbf{y}^k \leq \mathrm{b} \text {, then } \mathbf{a}=\mathbf{a}+\eta_k \mathbf{y}^k \\ & \qquad \text { until } \mathbf{a}^T \mathbf{y}^k>b \text { for all } k \\ & \qquad \text { return } \mathbf{a} \\ & \text { end } \end{aligned}  begin initialize: a, margin b,η0,k=0 do kk+1(modn) if aTykb, then a=a+ηkyk until aTyk>b for all k return a end 

  1. 感知准则函数的收敛性
  • 在样本线性可分的情形下, 固定增量单样本权向量修正方法收敛, 并可得到一个可行解。
  • a \mathbf{a} a 是一个解向量, 只要证明 ∥ a k + 1 − a ∥ < ∥ a k − a ∥ \left\|\mathbf{a}_{k+1}-\mathbf{a}\right\|<\left\|\mathbf{a}_k-\mathbf{a}\right\| ak+1a<aka 即可

【证明】 a \mathbf{a} a 是一个解向量, 对于任意一个正的标量 α , α a \alpha, \alpha \mathbf{a} α,αa 也为一个可行解, 于是有:
a k + 1 − α a = ( a k − α a ) + y k ∥ a k + 1 − α a ∥ 2 = ∥ a k − α a ∥ 2 + 2 ( a k − α a ) T y k + ∥ y k ∥ 2 \begin{gathered} \mathbf{a}_{k+1}-\alpha \mathbf{a}=\left(\mathbf{a}_k-\alpha \mathbf{a}\right)+\mathbf{y}^k \\ \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2=\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2+2\left(\mathbf{a}_k-\alpha \mathbf{a}\right)^T \mathbf{y}^k+\left\|\mathbf{y}^k\right\|^2 \end{gathered} ak+1αa=(akαa)+ykak+1αa2=akαa2+2(akαa)Tyk+ yk 2
由于 y k \mathbf{y}^k yk 被错分, 有 ( a k ) T y k ≤ 0 \left(\mathbf{a}_k\right)^T \mathbf{y}^k \leq 0 (ak)Tyk0 。但 a T y k > 0 \mathbf{a}^T \mathbf{y}^k>0 aTyk>0, 于是:
∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 − 2 α a T y k + ∥ y k ∥ 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2-2 \alpha \mathbf{a}^T \mathbf{y}^k+\left\|\mathbf{y}^k\right\|^2 ak+1αa2akαa22αaTyk+ yk 2
因此, 寻找一个合适的 α \alpha α, 满足 ∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2 ak+1αa2akαa2 即可
回忆一下, a < b + c aa<b+c,要得到 a < b aa<b c c c 越大越不利(极端一点, c < 0 c<0 c<0直接就得到了)。所以这边假设最坏的情况,令
β 2 = max ⁡ i = 1 , … , n ∥ y i ∥ 2 , γ = min ⁡ i a T y i \beta^2=\max _{i=1, \ldots, n}\left\|\mathbf{y}_i\right\|^2, \quad \gamma=\min _i \mathbf{a}^T \mathbf{y}_i β2=i=1,,nmaxyi2,γ=iminaTyi
∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 − 2 α γ + β 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2-2 \alpha \gamma+\beta^2 ak+1αa2akαa22αγ+β2
α = β 2 / γ \alpha=\beta^2 / \gamma α=β2/γ
∥ a k + 1 − α a ∥ 2 ≤ ∥ a k − α a ∥ 2 − β 2 ∥ a k + 1 − α a ∥ 2 < ∥ a k − α a ∥ 2 \begin{aligned} & \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2-\beta^2 \\ & \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2<\left\|\mathbf{a}_k-\alpha \mathbf{a}\right\|^2 \end{aligned} ak+1αa2akαa2β2ak+1αa2<akαa2
因此, 每次迭代, 当前解离可行解越来越近。经过 k + 1 k+1 k+1 次迭代后:
∥ a k + 1 − α a ∥ 2 ≤ ∥ a 1 − α a ∥ 2 − k β 2 \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\|^2 \leq\left\|\mathbf{a}_1-\alpha \mathbf{a}\right\|^2-k \beta^2 ak+1αa2a1αa2kβ2
由于 ∥ a k + 1 − α a ∥ \left\|\mathbf{a}_{k+1}-\alpha \mathbf{a}\right\| ak+1αa 总是非负的, 所以至多经过如下次更正即可:
k 0 = ∥ a 1 − α a ∥ 2 / β 2 k_0=\left\|\mathbf{a}_1-\alpha \mathbf{a}\right\|^2 / \beta^2 k0=a1αa2/β2

你可能感兴趣的:(算法,人工智能)