0


SVM——《统计学习方法第七章》


为什么叫支持向量机

在第二章中我们学过感知机,它是最小化所有误分类点到超平面的距离之和, M 为误分类点的集合,得到的分离超平面是不唯一的。

  1. min
  2. ω
  3. ,
  4. b
  5. [
  6. x
  7. i
  8. M
  9. y
  10. i
  11. (
  12. ω
  13. x
  14. i
  15. +
  16. b
  17. )
  18. ]
  19. \min_{\omega,b}[-\sum_{x_i \in M}y_i (\omega\cdot x_i+b)]
  20. ω,bmin​[−xi​∈M∑​yi​(ω⋅xi​+b)]

在支持向量机中,

  1. {
  2. 分类确信度
  3. ω
  4. x
  5. i
  6. +
  7. b
  8. ω
  9. 分类正确性
  10. y
  11. i
  12. (
  13. ω
  14. x
  15. i
  16. +
  17. b
  18. )
  19. 几何间隔
  20. γ
  21. i
  22. =
  23. y
  24. i
  25. (
  26. ω
  27. x
  28. i
  29. +
  30. b
  31. )
  32. ω
  33. \begin{cases} 分类确信度 \frac{|\omega\cdot x_i+b|}{||\omega||}\\ 分类正确性 y_i(\omega\cdot x_i +b) \end{cases} \Rightarrow几何间隔\gamma_i=\frac{y_i(\omega\cdot x_i +b)}{||\omega||}
  34. {分类确信度∣∣ω∣∣∣ω⋅xi​+b∣​分类正确性yi​(ω⋅xi​+b)​⇒几何间隔γi​=∣∣ω∣∣yi​(ω⋅xi​+b)​

哪些样本最有用?就是几何间隔最小的点

  1. min
  2. γ
  3. i
  4. \min \gamma_i
  5. minγi​。

然后使得几何间隔最小的点最大

  1. max
  2. ω
  3. ,
  4. b
  5. min
  6. γ
  7. i
  8. \max_{\omega,b}\min \gamma_i
  9. maxω,bminγi​,一看这形式就知道要使用到最大熵章节讲到的原始问题和对偶问题。
  10. R
  11. n
  12. R^n
  13. Rn空间中点和向量是等价的,最有用的那些点
  14. min
  15. γ
  16. i
  17. \min \gamma_i
  18. minγi​称为支持向量。

线性可分支持向量机

a122df875738429a7dc0543663a3aa61.png
线性可分支持向量机是可以将样本点完全分类开来,但是这种情况在现实中是很少的,但是它是最简单的支持向量机。我们先理清它的过程,还有一些证明,后面的向量机都是在它的基础上发展的。
假设有 N 个样本,M 个特征 ,Y 只有正类(+1)和负类(-1)

几何间隔和函数间隔

几何间隔的定义(点

  1. (
  2. x
  3. i
  4. ,
  5. y
  6. i
  7. )
  8. (x_i,y_i)
  9. (xi​,yi​)**到超平面**
  10. ω
  11. x
  12. +
  13. b
  14. =
  15. 0
  16. \omega\cdot x + b=0
  17. ω⋅x+b=0**的距离):**
  18. γ
  19. i
  20. =
  21. ω
  22. x
  23. i
  24. +
  25. b
  26. ω
  27. =
  28. y
  29. i
  30. (
  31. ω
  32. x
  33. i
  34. +
  35. b
  36. )
  37. ω
  38. =
  39. y
  40. i
  41. (
  42. ω
  43. ω
  44. x
  45. i
  46. +
  47. b
  48. ω
  49. )
  50. \begin{aligned} \gamma_i&=\frac{|\omega\cdot x_i +b|}{||\omega||}\\ &=\frac{y_i(\omega\cdot x_i +b)} {||\omega||}\\ &=y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||}) \end{aligned}
  51. γi​​=∣∣ω∣∣∣ω⋅xi​+b∣​=∣∣ω∣∣yi​(ω⋅xi​+b)​=yi​(∣∣ω∣∣ω​⋅xi​+∣∣ω∣∣b​)​

几何间隔的最小值

  1. γ
  2. =
  3. min
  4. i
  5. γ
  6. i
  7. \gamma = \min_i \gamma_i
  8. γ=mini​γi

优化问题为:

  1. max
  2. ω
  3. ,
  4. b
  5. γ
  6. s
  7. .
  8. t
  9. .
  10. y
  11. i
  12. (
  13. ω
  14. ω
  15. x
  16. i
  17. +
  18. b
  19. ω
  20. )
  21. γ
  22. ,
  23. i
  24. =
  25. 1
  26. ,
  27. 2
  28. ,
  29. .
  30. .
  31. .
  32. ,
  33. N
  34. \begin{aligned} & \max_{\omega,b}\quad \gamma\\ &s.t. \quad y_i(\frac{\omega}{||\omega||}\cdot x_i+\frac{b}{||\omega||})\ge \gamma,i=1,2,...,N \end{aligned}
  35. ​ω,bmax​γs.t.yi​(∣∣ω∣∣ω​⋅xi​+∣∣ω∣∣b​)≥γ,i=1,2,...,N

函数间隔的定义:

  1. γ
  2. ^
  3. i
  4. =
  5. ω
  6. x
  7. i
  8. +
  9. b
  10. =
  11. y
  12. i
  13. (
  14. ω
  15. x
  16. i
  17. +
  18. b
  19. )
  20. \begin{aligned} \hat\gamma_i&={|\omega\cdot x_i +b|}\\ &={y_i(\omega\cdot x_i +b)} \\ \end{aligned}
  21. γ^​i​​=∣ω⋅xi​+b∣=yi​(ω⋅xi​+b)​

函数间隔的最小值

  1. γ
  2. ^
  3. =
  4. min
  5. i
  6. γ
  7. ^
  8. i
  9. \hat\gamma = \min_i \hat\gamma_i
  10. γ^​=mini​γ^​i

优化问题为:

  1. max
  2. ω
  3. ,
  4. b
  5. γ
  6. ^
  7. /
  8. ω
  9. s
  10. .
  11. t
  12. .
  13. y
  14. i
  15. (
  16. ω
  17. x
  18. i
  19. +
  20. b
  21. )
  22. γ
  23. ^
  24. ,
  25. i
  26. =
  27. 1
  28. ,
  29. 2
  30. ,
  31. .
  32. .
  33. .
  34. ,
  35. N
  36. \begin{aligned} & \max_{\omega,b}\quad \hat\gamma/||\omega||\\ &s.t. \quad {y_i(\omega\cdot x_i +b)}\ge \hat\gamma,i=1,2,...,N \end{aligned}
  37. ​ω,bmax​γ^​/∣∣ω∣∣s.t.yi​(ω⋅xi​+b)≥γ^​,i=1,2,...,N

怎么将几何间隔和函数间隔联系起来?
第一种:将

  1. ω
  2. \omega
  3. ω**归一化,即**
  4. ω
  5. =
  6. 1
  7. ||\omega||=1
  8. ∣∣ω∣∣=1

以下这三种超平面的

  1. ω
  2. ,
  3. b
  4. \omega,b
  5. ω,b不一样,但是表示的是同一个超平面。
  6. 3
  7. x
  8. (
  9. 1
  10. )
  11. +
  12. 4
  13. x
  14. (
  15. 2
  16. )
  17. +
  18. 1
  19. =
  20. 0
  21. 6
  22. x
  23. (
  24. 1
  25. )
  26. +
  27. 8
  28. x
  29. (
  30. 2
  31. )
  32. +
  33. 2
  34. =
  35. 0
  36. 3
  37. 5
  38. x
  39. (
  40. 1
  41. )
  42. +
  43. 4
  44. 5
  45. x
  46. (
  47. 2
  48. )
  49. +
  50. 1
  51. 5
  52. =
  53. 0
  54. 3x^{(1)}+4x^{(2)}+1=0\\ 6x^{(1)}+8x^{(2)}+2=0\\ \frac{3}{5}x^{(1)}+\frac{4}{5}x^{(2)}+\frac{1}{5}=0\\
  55. 3x(1)+4x(2)+1=06x(1)+8x(2)+2=053x(1)+54x(2)+51​=0

  1. ω
  2. \omega
  3. ω归一化后,函数间隔和几何间隔就是等价的,此时优化问题为:
  4. max
  5. ω
  6. ,
  7. b
  8. γ
  9. ^
  10. /
  11. ω
  12. s
  13. .
  14. t
  15. .
  16. {
  17. y
  18. i
  19. (
  20. ω
  21. x
  22. i
  23. +
  24. b
  25. )
  26. γ
  27. ^
  28. ,
  29. i
  30. =
  31. 1
  32. ,
  33. 2
  34. ,
  35. .
  36. .
  37. .
  38. ,
  39. N
  40. ω
  41. =
  42. 1
  43. \begin{aligned} & \max_{\omega,b}\quad \hat\gamma/||\omega||\\ &s.t. \begin{cases} {y_i(\omega\cdot x_i +b)}\ge \hat\gamma,i=1,2,...,N\\ ||\omega ||=1 \end{cases} \end{aligned}
  44. ​ω,bmax​γ^​/∣∣ω∣∣s.t.{yi​(ω⋅xi​+b)≥γ^​,i=1,2,...,N∣∣ω∣∣=1​​

第二种:对

  1. γ
  2. ^
  3. \hat\gamma
  4. γ^​**做处理,和刚刚三个超平面处理类似,对**
  5. ω
  6. ,
  7. b
  8. \omega,b
  9. ω,b**进行放缩,可以使得**
  10. γ
  11. ^
  12. =
  13. min
  14. i
  15. γ
  16. ^
  17. i
  18. =
  19. 1
  20. \hat\gamma=\min_{i}\hat\gamma_i=1
  21. γ^​=mini​γ^​i​=1

此时优化问题为:

  1. min
  2. ω
  3. ,
  4. b
  5. ω
  6. s
  7. .
  8. t
  9. .
  10. y
  11. i
  12. (
  13. ω
  14. x
  15. i
  16. +
  17. b
  18. )
  19. 1
  20. ,
  21. i
  22. =
  23. 1
  24. ,
  25. 2
  26. ,
  27. .
  28. .
  29. .
  30. ,
  31. N
  32. \begin{aligned} & \min_{\omega ,b}\quad ||\omega||\\ &s.t. \quad {y_i(\omega\cdot x_i +b)}\ge 1,i=1,2,...,N\\ \end{aligned}
  33. ​ω,bmin​∣∣ω∣∣s.t.yi​(ω⋅xi​+b)≥1,i=1,2,...,N

显然,第二种处理能使得问题更加简单。

证明分离超平面存在且唯一

目标函数是凸函数,约束条件是放射函数,所以这个凸优化问题存在最优解。
现在证最优解是唯一的(反证法):
d39997678c6e8d23b99a3e322a01587.jpg
57fe7f12ee7d118339b2715275c560a.jpg

原始问题算法流程

输入:数据集

  1. T
  2. =
  3. {
  4. (
  5. x
  6. 1
  7. ,
  8. y
  9. 1
  10. )
  11. ,
  12. (
  13. x
  14. 2
  15. ,
  16. y
  17. 2
  18. )
  19. ,
  20. .
  21. .
  22. .
  23. ,
  24. (
  25. x
  26. N
  27. ,
  28. y
  29. N
  30. )
  31. }
  32. y
  33. i
  34. {
  35. +
  36. 1
  37. ,
  38. 1
  39. }
  40. T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}y_i\in \{+1,-1\}
  41. T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},yi​∈{+1,−1}

输出:最大间隔分离超平面与决策函数

  1. 构造优化问题

    1. min
    2. ω
    3. ,
    4. b
    5. 1
    6. 2
    7. ω
    8. 2
    9. s
    10. .
    11. t
    12. .
    13. 1
    14. y
    15. i
    16. (
    17. ω
    18. x
    19. i
    20. +
    21. b
    22. )
    23. 0
    24. ,
    25. i
    26. =
    27. 1
    28. ,
    29. 2
    30. ,
    31. .
    32. .
    33. .
    34. ,
    35. N
    36. \begin{aligned} & \min_{\omega ,b}\quad \frac{1}{2}||\omega||^2\\ &s.t. \quad 1-{y_i(\omega\cdot x_i +b)}\le 0,i=1,2,...,N\\ \end{aligned}

    ​ω,bmin​21​∣∣ω∣∣2s.t.1−yi​(ω⋅xi​+b)≤0,i=1,2,...,N​

所得解为

  1. ω
  2. ,
  3. b
  4. \omega^* ,b^*
  5. ω∗,b
  1. 分离超平面

    1. ω
    2. x
    3. +
    4. b
    5. =
    6. 0
    7. \omega^*\cdot x + b^*=0

    ω∗⋅x+b∗=0

决策函数

  1. f
  2. (
  3. x
  4. )
  5. =
  6. s
  7. i
  8. g
  9. n
  10. (
  11. ω
  12. x
  13. +
  14. b
  15. )
  16. f(x)=\rm sign(\omega^*\cdot x + b^*)
  17. f(x)=sign(ω∗⋅x+b∗)

对偶算法

推导对偶优化问题

e8fb9ab4d8d0e08e2647368409c3855.jpg

  1. α
  2. \alpha
  3. α推导
  4. ω
  5. \omega
  6. ω和 b

d58575e45bd9fefa6ad583247e30693.jpg

对偶算法流程

输入:数据集

  1. T
  2. =
  3. {
  4. (
  5. x
  6. 1
  7. ,
  8. y
  9. 1
  10. )
  11. ,
  12. (
  13. x
  14. 2
  15. ,
  16. y
  17. 2
  18. )
  19. ,
  20. .
  21. .
  22. .
  23. ,
  24. (
  25. x
  26. N
  27. ,
  28. y
  29. N
  30. )
  31. }
  32. y
  33. i
  34. {
  35. +
  36. 1
  37. ,
  38. 1
  39. }
  40. T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}y_i\in \{+1,-1\}
  41. T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},yi​∈{+1,−1}

输出:最大间隔分离超平面与决策函数

  1. 构造优化问题

    1. min
    2. α
    3. 1
    4. 2
    5. i
    6. =
    7. 1
    8. N
    9. j
    10. =
    11. 1
    12. N
    13. α
    14. i
    15. α
    16. j
    17. y
    18. i
    19. y
    20. j
    21. (
    22. x
    23. i
    24. x
    25. j
    26. )
    27. i
    28. =
    29. 1
    30. N
    31. α
    32. i
    33. s
    34. .
    35. t
    36. .
    37. i
    38. =
    39. 1
    40. N
    41. α
    42. i
    43. y
    44. i
    45. =
    46. 0
    47. α
    48. i
    49. 0
    50. ,
    51. i
    52. =
    53. 1
    54. ,
    55. 2
    56. ,
    57. .
    58. .
    59. .
    60. ,
    61. N
    62. \begin{aligned} & \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i\cdot x_j)-\sum_{i=1}^N \alpha_i\\ &s.t. \quad \sum_{i=1}^N \alpha_i y_i= 0\\ &\quad \quad \alpha_i\ge 0,i=1,2,...,N\\ \end{aligned}

    ​αmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t.i=1∑N​αi​yi​=0αi​≥0,i=1,2,...,N​

  2. 求解优化问题,得到最优解

    1. α
    2. =
    3. (
    4. α
    5. 1
    6. ,
    7. α
    8. 2
    9. ,
    10. .
    11. .
    12. .
    13. ,
    14. α
    15. N
    16. )
    17. T
    18. \alpha^* = (\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T

    α∗=(α1∗​,α2∗​,...,αN∗​)T

  3. 根据 α ∗ \alpha^* α∗得到

    1. ω
    2. =
    3. i
    4. =
    5. 1
    6. N
    7. α
    8. i
    9. y
    10. i
    11. x
    12. i
    13. \omega^*=\sum_{i=1}^N \alpha_i^* y_i x_i

    ω∗=i=1∑N​αi∗​yi​xi​

找到符合

  1. α
  2. j
  3. >
  4. 0
  5. \alpha_j^*>0
  6. αj∗​>0的点
  7. (
  8. x
  9. j
  10. ,
  11. y
  12. j
  13. )
  14. (x_j,y_j)
  15. (xj​,yj​),计算
  16. b
  17. =
  18. y
  19. j
  20. i
  21. =
  22. 1
  23. N
  24. α
  25. i
  26. y
  27. i
  28. (
  29. x
  30. i
  31. x
  32. j
  33. )
  34. b^*=y_j-\sum_{i=1}^N \alpha_i^*y_i(x_i\cdot x_j)
  35. b∗=yj​−i=1N​αi∗​yi​(xi​⋅xj​)
  1. 分离超平面

    1. ω
    2. x
    3. +
    4. b
    5. =
    6. 0
    7. \omega^*\cdot x + b^*=0

    ω∗⋅x+b∗=0

决策函数

  1. f
  2. (
  3. x
  4. )
  5. =
  6. s
  7. i
  8. g
  9. n
  10. (
  11. ω
  12. x
  13. +
  14. b
  15. )
  16. f(x)=\rm sign(\omega^*\cdot x + b^*)
  17. f(x)=sign(ω∗⋅x+b∗)

线性支持向量机(不完全可分)

6f7ee306c430e430421aee0479429156.png

引入松弛因子

在线性支持向量机中,有四类点
正确分类且在分界线外面的点(白色的点):

  1. y
  2. i
  3. (
  4. ω
  5. x
  6. i
  7. +
  8. b
  9. )
  10. 1
  11. y_i(\omega\cdot x_i+b)\ge 1
  12. yi​(ω⋅xi​+b)≥1

分类正确但在超平面与分界线之间的点(黄色的点):

  1. y
  2. i
  3. (
  4. ω
  5. x
  6. i
  7. +
  8. b
  9. )
  10. +
  11. ξ
  12. i
  13. 1
  14. ,
  15. ξ
  16. i
  17. (
  18. 0
  19. ,
  20. 1
  21. )
  22. y_i(\omega\cdot x_i+b) + \xi_i\ge 1 ,\xi_i\in (0,1)
  23. yi​(ω⋅xi​+b)+ξi​≥1i​∈(0,1)

在超平面上的点:

  1. y
  2. i
  3. (
  4. ω
  5. x
  6. i
  7. +
  8. b
  9. )
  10. +
  11. ξ
  12. i
  13. 1
  14. ,
  15. ξ
  16. i
  17. =
  18. 1
  19. y_i(\omega\cdot x_i+b) + \xi_i\ge 1 ,\xi_i=1
  20. yi​(ω⋅xi​+b)+ξi​≥1i​=1

分类错误的点:

  1. y
  2. i
  3. (
  4. ω
  5. x
  6. i
  7. +
  8. b
  9. )
  10. +
  11. ξ
  12. i
  13. 1
  14. ,
  15. ξ
  16. i
  17. >
  18. 1
  19. y_i(\omega\cdot x_i+b) + \xi_i\ge 1 ,\xi_i>1
  20. yi​(ω⋅xi​+b)+ξi​≥1i​>1

解决重点就都集中到了这个关键的参数

  1. ξ
  2. i
  3. \xi_i
  4. ξi 上,我们给它起名叫做**弹性因子**或**松弛变量**。

现在我们就要把原来线性可分的目标函数改成考虑所有松弛变量的新函数,目标函数是:

  1. min
  2. 1
  3. 2
  4. ω
  5. 2
  6. +
  7. C
  8. i
  9. =
  10. 1
  11. N
  12. ξ
  13. i
  14. \min \frac{1}{2}||\omega^2||+C\sum_{i=1}^N \xi_i
  15. min21​∣∣ω2∣∣+Ci=1N​ξi

这里的

  1. C
  2. C
  3. C 被称作**惩罚系数**,它决定了原始参数和松弛变量之间的影响权重。
    1. C C C越大代表了误分类起到的作用更大,也可以说对误分类的惩罚力度大
    1. C C C越小代表正确分类的参数作用更大,对误分类的惩罚力度小

原始问题算法流程

  1. 构造优化问题

    1. min
    2. ω
    3. ,
    4. b
    5. ,
    6. ξ
    7. i
    8. 1
    9. 2
    10. ω
    11. 2
    12. +
    13. C
    14. i
    15. =
    16. 1
    17. N
    18. ξ
    19. i
    20. s
    21. .
    22. t
    23. .
    24. 1
    25. ξ
    26. i
    27. y
    28. i
    29. (
    30. ω
    31. x
    32. i
    33. +
    34. b
    35. )
    36. 0
    37. ,
    38. i
    39. =
    40. 1
    41. ,
    42. 2
    43. ,
    44. .
    45. .
    46. .
    47. ,
    48. N
    49. ξ
    50. i
    51. 0
    52. ,
    53. i
    54. =
    55. 1
    56. ,
    57. 2
    58. ,
    59. .
    60. .
    61. .
    62. ,
    63. N
    64. \begin{aligned} & \min_{\omega ,b,\xi_i}\quad \frac{1}{2}||\omega^2||+C\sum_{i=1}^N \xi_i\\ &s.t. \quad 1-\xi_i -{y_i(\omega\cdot x_i +b)}\le 0,i=1,2,...,N\\ &\qquad -\xi_i\le 0 ,i=1,2,...,N \end{aligned}

    ​ω,b,ξi​min​21​∣∣ω2∣∣+Ci=1∑N​ξi​s.t.1−ξi​−yi​(ω⋅xi​+b)≤0,i=1,2,...,N−ξi​≤0,i=1,2,...,N​

所得解为

  1. ω
  2. ,
  3. b
  4. \omega^* ,b^*
  5. ω∗,b
  1. 分离超平面

    1. ω
    2. x
    3. +
    4. b
    5. =
    6. 0
    7. \omega^*\cdot x + b^*=0

    ω∗⋅x+b∗=0

决策函数

  1. f
  2. (
  3. x
  4. )
  5. =
  6. s
  7. i
  8. g
  9. n
  10. (
  11. ω
  12. x
  13. +
  14. b
  15. )
  16. f(x)=\rm sign(\omega^*\cdot x + b^*)
  17. f(x)=sign(ω∗⋅x+b∗)

对偶算法

推导对偶优化问题

cb7471a5559bf44af2567a8c8830889.jpg

  1. α
  2. \alpha
  3. α推导
  4. ω
  5. \omega
  6. ω和 b

a63e68f91e1849b47f618753964f377.jpg

对偶算法流程

输入:数据集

  1. T
  2. =
  3. {
  4. (
  5. x
  6. 1
  7. ,
  8. y
  9. 1
  10. )
  11. ,
  12. (
  13. x
  14. 2
  15. ,
  16. y
  17. 2
  18. )
  19. ,
  20. .
  21. .
  22. .
  23. ,
  24. (
  25. x
  26. N
  27. ,
  28. y
  29. N
  30. )
  31. }
  32. y
  33. i
  34. {
  35. +
  36. 1
  37. ,
  38. 1
  39. }
  40. T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}y_i\in \{+1,-1\}
  41. T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},yi​∈{+1,−1}

输出:最大间隔分离超平面与决策函数

  1. 给定惩罚参数 C C C,构造优化问题

    1. min
    2. α
    3. 1
    4. 2
    5. i
    6. =
    7. 1
    8. N
    9. j
    10. =
    11. 1
    12. N
    13. α
    14. i
    15. α
    16. j
    17. y
    18. i
    19. y
    20. j
    21. (
    22. x
    23. i
    24. x
    25. j
    26. )
    27. i
    28. =
    29. 1
    30. N
    31. α
    32. i
    33. s
    34. .
    35. t
    36. .
    37. i
    38. =
    39. 1
    40. N
    41. α
    42. i
    43. y
    44. i
    45. =
    46. 0
    47. 0
    48. α
    49. i
    50. C
    51. ,
    52. i
    53. =
    54. 1
    55. ,
    56. 2
    57. ,
    58. .
    59. .
    60. .
    61. ,
    62. N
    63. \begin{aligned} & \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j (x_i\cdot x_j)-\sum_{i=1}^N \alpha_i\\ &s.t. \quad \sum_{i=1}^N \alpha_i y_i= 0\\ &\quad \quad 0\le\alpha_i\le C,i=1,2,...,N\\ \end{aligned}

    ​αmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​(xi​⋅xj​)−i=1∑N​αi​s.t.i=1∑N​αi​yi​=00≤αi​≤C,i=1,2,...,N​

  2. 求解优化问题,得到最优解

    1. α
    2. =
    3. (
    4. α
    5. 1
    6. ,
    7. α
    8. 2
    9. ,
    10. .
    11. .
    12. .
    13. ,
    14. α
    15. N
    16. )
    17. T
    18. \alpha^* = (\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T

    α∗=(α1∗​,α2∗​,...,αN∗​)T

  3. 根据 α ∗ \alpha^* α∗得到

    1. ω
    2. =
    3. i
    4. =
    5. 1
    6. N
    7. α
    8. i
    9. y
    10. i
    11. x
    12. i
    13. \omega^*=\sum_{i=1}^N \alpha_i^* y_i x_i

    ω∗=i=1∑N​αi∗​yi​xi​

找到符合

  1. 0
  2. <
  3. α
  4. j
  5. <
  6. C
  7. 0<\alpha_j^*<C
  8. 0j∗​<C的点
  9. (
  10. x
  11. j
  12. ,
  13. y
  14. j
  15. )
  16. (x_j,y_j)
  17. (xj​,yj​),计算
  18. b
  19. =
  20. y
  21. j
  22. i
  23. =
  24. 1
  25. N
  26. α
  27. i
  28. y
  29. i
  30. (
  31. x
  32. i
  33. x
  34. j
  35. )
  36. b^*=y_j-\sum_{i=1}^N \alpha_i^*y_i(x_i\cdot x_j)
  37. b∗=yj​−i=1N​αi∗​yi​(xi​⋅xj​)
  1. 分离超平面

    1. ω
    2. x
    3. +
    4. b
    5. =
    6. 0
    7. \omega^*\cdot x + b^*=0

    ω∗⋅x+b∗=0

决策函数

  1. f
  2. (
  3. x
  4. )
  5. =
  6. s
  7. i
  8. g
  9. n
  10. (
  11. ω
  12. x
  13. +
  14. b
  15. )
  16. f(x)=\rm sign(\omega^*\cdot x + b^*)
  17. f(x)=sign(ω∗⋅x+b∗)

从合页损失的角度理解线性支持向量机

合页的表达式

image.png
b309defc921bf9989a5703b24c44b8fa.png

软间隔和合页损失

原始优化问题:

  1. min
  2. ω
  3. ,
  4. b
  5. ,
  6. ξ
  7. i
  8. 1
  9. 2
  10. ω
  11. 2
  12. +
  13. C
  14. i
  15. =
  16. 1
  17. N
  18. ξ
  19. i
  20. \min_{\omega ,b,\xi_i}\quad \frac{1}{2}||\omega^2||+C\sum_{i=1}^N \xi_i
  21. ω,bimin21​∣∣ω2∣∣+Ci=1N​ξi

631c3b00c63ca8e171ca20373325792.jpg

  1. ξ
  2. i
  3. =
  4. [
  5. 1
  6. y
  7. i
  8. (
  9. ω
  10. x
  11. i
  12. +
  13. b
  14. )
  15. ]
  16. +
  17. =
  18. {
  19. 1
  20. y
  21. i
  22. (
  23. ω
  24. x
  25. i
  26. +
  27. b
  28. )
  29. ξ
  30. i
  31. >
  32. 0
  33. 0
  34. ξ
  35. i
  36. 0
  37. \xi_i = [1-y_i(\omega\cdot x_i + b)]_+=\begin{cases} 1-y_i(\omega\cdot x_i + b) & \xi_i > 0\\ 0& \xi_i\le 0 \end{cases}
  38. ξi​=[1yi​(ω⋅xi​+b)]+​={1yi​(ω⋅xi​+b)0​ξi​>0ξi​≤0
  39. min
  40. ω
  41. ,
  42. b
  43. ,
  44. ξ
  45. i
  46. 1
  47. 2
  48. ω
  49. 2
  50. +
  51. C
  52. i
  53. =
  54. 1
  55. N
  56. ξ
  57. i
  58. =
  59. min
  60. ω
  61. ,
  62. b
  63. 1
  64. 2
  65. ω
  66. 2
  67. +
  68. C
  69. i
  70. =
  71. 1
  72. N
  73. [
  74. 1
  75. y
  76. i
  77. (
  78. ω
  79. x
  80. i
  81. +
  82. b
  83. )
  84. ]
  85. +
  86. =
  87. min
  88. ω
  89. ,
  90. b
  91. i
  92. =
  93. 1
  94. N
  95. [
  96. 1
  97. y
  98. i
  99. (
  100. ω
  101. x
  102. i
  103. +
  104. b
  105. )
  106. ]
  107. +
  108. +
  109. 1
  110. 2
  111. C
  112. ω
  113. 2
  114. =
  115. min
  116. ω
  117. ,
  118. b
  119. i
  120. =
  121. 1
  122. N
  123. [
  124. 1
  125. y
  126. i
  127. (
  128. ω
  129. x
  130. i
  131. +
  132. b
  133. )
  134. ]
  135. +
  136. +
  137. λ
  138. ω
  139. 2
  140. \min_{\omega ,b,\xi_i}\quad \frac{1}{2}||\omega^2||+C\sum_{i=1}^N \xi_i\\ =\min_{\omega,b}\quad \frac{1}{2}||\omega^2||+C\sum_{i=1}^N [1-y_i(\omega\cdot x_i + b)]_+\\ =\min_{\omega,b}\quad \sum_{i=1}^N [1-y_i(\omega\cdot x_i + b)]_+ + \frac{1}{2C}||\omega^2||\\ =\min_{\omega,b}\quad \sum_{i=1}^N [1-y_i(\omega\cdot x_i + b)]_+ + \lambda ||\omega^2||
  141. ω,bimin21​∣∣ω2∣∣+Ci=1N​ξi​=ω,bmin21​∣∣ω2∣∣+Ci=1N​[1yi​(ω⋅xi​+b)]+​=ω,bmini=1N​[1yi​(ω⋅xi​+b)]+​+2C1​∣∣ω2∣∣=ω,bmini=1N​[1yi​(ω⋅xi​+b)]+​+λ∣∣ω2∣∣

可以理解为最小化合页损失,后面是惩罚项。

三个损失函数的比较

image.png

非线性支持向量机

核函数

非线性的也分为可分和不可分两种情况。我们主要看非线性支持向量机(不可分)的情况。
我们需要将非线性转化为线性:原空间的点映射到新空间,用线性支持向量机取解决。
分析线性支持向量机的优化问题,我们可以发现关键计算

  1. (
  2. x
  3. i
  4. x
  5. j
  6. )
  7. (x_i\cdot x_j)
  8. (xi​⋅xj​)这个内积,其余都是单个数,所以要求新空间是能够计算内积的。

设映射是

  1. Φ
  2. \Phi
  3. Φ,
  4. z
  5. i
  6. =
  7. Φ
  8. (
  9. x
  10. i
  11. )
  12. ,
  13. z
  14. j
  15. =
  16. Φ
  17. (
  18. x
  19. j
  20. )
  21. z_i = \Phi(x_i),z_j = \Phi(x_j)
  22. zi​=Φ(xi​),zj​=Φ(xj​)
  23. z
  24. i
  25. z
  26. j
  27. =
  28. Φ
  29. (
  30. x
  31. i
  32. )
  33. Φ
  34. (
  35. x
  36. j
  37. )
  38. =
  39. K
  40. (
  41. x
  42. i
  43. ,
  44. x
  45. j
  46. )
  47. 核函数
  48. z_i\cdot z_j = \Phi (x_i)\cdot \Phi(x_j)=K(x_i,x_j) 核函数
  49. zi​⋅zj​=Φ(xi​)⋅Φ(xj​)=K(xi​,xj​)核函数

有很多映射对应一个核函数,我们不关心具体是什么映射,只关心核函数。
在新空间里

  1. min
  2. α
  3. 1
  4. 2
  5. i
  6. =
  7. 1
  8. N
  9. j
  10. =
  11. 1
  12. N
  13. α
  14. i
  15. α
  16. j
  17. y
  18. i
  19. y
  20. j
  21. K
  22. (
  23. x
  24. i
  25. ,
  26. x
  27. j
  28. )
  29. i
  30. =
  31. 1
  32. N
  33. α
  34. i
  35. \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j K(x_i,x_j)-\sum_{i=1}^N \alpha_i
  36. αmin21i=1Nj=1N​αi​αjyiyjK(xi​,xj​)−i=1N​αi

如何找到正定核?(

  1. K
  2. (
  3. x
  4. i
  5. ,
  6. x
  7. i
  8. )
  9. 0
  10. K(x_i,x_i)\ge 0
  11. K(xi​,xi​)≥0

满足以下两个条件:

  1. K
  2. K
  3. K是对称函数

② 新空间上的Gram矩阵半正定
image.png
这部分的具体内容需要泛函的知识,难度较大,感兴趣可以看《统计学习方法 李航》


常用核函数(我们所说的核函数就是正定核):

  1. 线性内核函数 K ( x i , x j ) = x i ⋅ x j K(x_i,x_j)=x_i\cdot x_j K(xi​,xj​)=xi​⋅xj​
  2. 多项式核函数 K ( x i , x j ) = ( x i ⋅ x j + 1 ) q K(x_i,x_j)=(x_i\cdot x_j+1)^q K(xi​,xj​)=(xi​⋅xj​+1)q
  3. 径向基核函数(高斯核函数,RBF) K ( x i , x j ) = exp ⁡ { − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 } K(x_i,x_j)=\exp {-\frac{||x_i-x_j||^2}{2\sigma^2}} K(xi​,xj​)=exp{−2σ2∣∣xi​−xj​∣∣2​}

还有一种字符串核函数:
76376f8715b003234ed71c79eafb42f.jpg

算法流程

和线性支持向量机不同的地方就是将

  1. x
  2. i
  3. x
  4. j
  5. x_i\cdot x_j
  6. xi​⋅xj​改为
  7. K
  8. (
  9. x
  10. i
  11. ,
  12. x
  13. j
  14. )
  15. K(x_i,x_j)
  16. K(xi​,xj​)。

输入:数据集

  1. T
  2. =
  3. {
  4. (
  5. x
  6. 1
  7. ,
  8. y
  9. 1
  10. )
  11. ,
  12. (
  13. x
  14. 2
  15. ,
  16. y
  17. 2
  18. )
  19. ,
  20. .
  21. .
  22. .
  23. ,
  24. (
  25. x
  26. N
  27. ,
  28. y
  29. N
  30. )
  31. }
  32. y
  33. i
  34. {
  35. +
  36. 1
  37. ,
  38. 1
  39. }
  40. T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}y_i\in \{+1,-1\}
  41. T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},yi​∈{+1,−1}

输出:最大间隔分离超平面与决策函数

  1. 给定惩罚参数 C C C,构造优化问题

    1. min
    2. α
    3. 1
    4. 2
    5. i
    6. =
    7. 1
    8. N
    9. j
    10. =
    11. 1
    12. N
    13. α
    14. i
    15. α
    16. j
    17. y
    18. i
    19. y
    20. j
    21. K
    22. (
    23. x
    24. i
    25. ,
    26. x
    27. j
    28. )
    29. i
    30. =
    31. 1
    32. N
    33. α
    34. i
    35. s
    36. .
    37. t
    38. .
    39. i
    40. =
    41. 1
    42. N
    43. α
    44. i
    45. y
    46. i
    47. =
    48. 0
    49. 0
    50. α
    51. i
    52. C
    53. ,
    54. i
    55. =
    56. 1
    57. ,
    58. 2
    59. ,
    60. .
    61. .
    62. .
    63. ,
    64. N
    65. \begin{aligned} & \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j K(x_i, x_j)-\sum_{i=1}^N \alpha_i\\ &s.t. \quad \sum_{i=1}^N \alpha_i y_i= 0\\ &\quad \quad 0\le\alpha_i\le C,i=1,2,...,N\\ \end{aligned}

    ​αmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​s.t.i=1∑N​αi​yi​=00≤αi​≤C,i=1,2,...,N​

  2. 求解优化问题,得到最优解

    1. α
    2. =
    3. (
    4. α
    5. 1
    6. ,
    7. α
    8. 2
    9. ,
    10. .
    11. .
    12. .
    13. ,
    14. α
    15. N
    16. )
    17. T
    18. \alpha^* = (\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T

    α∗=(α1∗​,α2∗​,...,αN∗​)T

  3. 根据 α ∗ \alpha^* α∗得到

    1. ω
    2. =
    3. i
    4. =
    5. 1
    6. N
    7. α
    8. i
    9. y
    10. i
    11. K
    12. (
    13. ,
    14. x
    15. i
    16. )
    17. \omega^*=\sum_{i=1}^N \alpha_i^* y_i K(\cdot,x_i)

    ω∗=i=1∑N​αi∗​yi​K(⋅,xi​)

找到符合

  1. 0
  2. <
  3. α
  4. j
  5. <
  6. C
  7. 0<\alpha_j^*<C
  8. 0j∗​<C的点
  9. (
  10. x
  11. j
  12. ,
  13. y
  14. j
  15. )
  16. (x_j,y_j)
  17. (xj​,yj​),计算
  18. b
  19. =
  20. y
  21. j
  22. i
  23. =
  24. 1
  25. N
  26. α
  27. i
  28. y
  29. i
  30. K
  31. (
  32. x
  33. i
  34. ,
  35. x
  36. j
  37. )
  38. b^*=y_j-\sum_{i=1}^N \alpha_i^*y_iK(x_i,x_j)
  39. b∗=yj​−i=1N​αi∗​yiK(xi​,xj​)
  1. 分离超平面

    1. ω
    2. x
    3. +
    4. b
    5. =
    6. 0
    7. \omega^*\cdot x + b^*=0

    ω∗⋅x+b∗=0

决策函数

  1. f
  2. (
  3. x
  4. )
  5. =
  6. s
  7. i
  8. g
  9. n
  10. (
  11. ω
  12. x
  13. +
  14. b
  15. )
  16. f(x)=\rm sign(\omega^*\cdot x + b^*)
  17. f(x)=sign(ω∗⋅x+b∗)

SMO算法

SMO算法用来求解第二步中的优化问题。

坐标下降法(简化优化问题,每次更新一个参数)

4838627F-E16A-4C17-8793-1A9EB49AA447.jpeg

SMO算法求α(每次更新两个参数)

0c547224557ec8bc3ec0b577bd68b74.jpg
adfb12f4ea24dd585e1993471a1018d.jpg
026f02f8264d6dfba832d44b3457dde.jpg

更新完两个α后,更新b和Ei

9b8228d37c0aef578a7928cc81a985d.jpg

参数的选择

a99d4f3514710fd9720b33e602102cd.jpg

SMO算法流程

image.png


本文转载自: https://blog.csdn.net/weixin_45775970/article/details/131049639
版权归原作者 weixin_961876584 所有, 如有侵权,请联系我们删除。

“SVM——《统计学习方法第七章》”的评论:

还没有评论