机器学习笔记——支持向量机的一些整理

机器学习笔记——支持向量机的一些整理

  • 支持向量机入门及数学原理的介绍
  • 原理证明当中涉及的一些内容
    • 元素、向量、矩阵对向量的求导法则
    • 拉格朗日乘子法
    • 加入松弛变量和惩罚因子情况下的目标求解
    • SMO算法
      • 参数$\alpha_i$的上下界
      • 关于迭代中的参数b取值
  • SMO完整版代码分析

\qquad 在支持向量机的学习当中碰到了一些问题,这里对支持向量机的一些内容进行了整理,内容中涉及到了一些讲解证明及原理的帖子,都是个人觉得写得挺好的,这里做一个归总,若是侵权请联系删除~~

支持向量机入门及数学原理的介绍

几个不错的帖子:

1、SVM支持向量机入门及数学原理

2、SVM解释:一、SVM的整体框架

==============================================

原理证明当中涉及的一些内容

元素、向量、矩阵对向量的求导法则

\qquad 在原理证明当中涉及到了元素对向量的求导(拉格朗日乘子法的求导),元素、向量、矩阵对向量的求导法则:向量对向量求导

拉格朗日乘子法

\qquad 因为在证明当中涉及到KKT条件,下面文章对拉格朗日方法进行了较为通俗的介绍:凸优化 - 4 - 凸优化、Lagrange乘子法、KKT条件,当然在上面原理介绍的文章当中也有这部分内容看,可以结合着看。

\qquad 同时这里做个笔记,关于拉格朗日乘子法的理解:

深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

加入松弛变量和惩罚因子情况下的目标求解

\qquad 在文章1中讲到的原理证明过程当中,第一遍未看懂其中的拉格朗日求解过程,尤其是在对向量求偏导的那部分,在参考上述向量求导的内容后,此处做个笔记:
机器学习笔记——支持向量机的一些整理_第1张图片
机器学习笔记——支持向量机的一些整理_第2张图片
机器学习笔记——支持向量机的一些整理_第3张图片

=====================================================

SMO算法

\qquad 文章SVM解释:五、SMO算法对SMO算法进行了详细的说明,同样下面对SMO当中的一些内容进行笔记。

参数 α i \alpha_i αi的上下界

关于上述文章当中提到的参数 α i \alpha_i αi的上下界问题,文章机器学习笔记——SMO算法参数alpha上下界做个了笔记说明。

关于迭代中的参数b取值

在上述文章的介绍中提到了迭代中参数b的取值,分为以下的几种情况:

1、 0 ≤ α 1 ≤ C 0\le \alpha_1 \le C 0α1C 0 ≤ α 2 ≤ C 0\le \alpha_2 \le C 0α2C时,有 b 1 n e w = b 2 n e w b_{1}^{new}=b_{2}^{new} b1new=b2new,那么为什么会有这样一个等式?在算法的论述过程中我们可以得知有以下公式:

0 ≤ α i ≤ C \qquad\qquad\qquad\qquad\qquad\qquad\qquad0\le \alpha_i \le C 0αiC时, y i ( w T x i + b ) = 1 y_i(w^Tx_i+b)=1 yi(wTxi+b)=1

那么同时满足 0 ≤ α 1 ≤ C 0\le \alpha_1 \le C 0α1C 0 ≤ α 2 ≤ C 0\le \alpha_2 \le C 0α2C时,任意 0 ≤ α i ≤ C 0\le\alpha_i \le C 0αiC时,满足:

y i ( w T x i + b 1 n e w ) = 1 \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad y_i(w^Tx_i+b_{1}^{new})=1 yi(wTxi+b1new)=1
y i ( w T x i + b 2 n e w ) = 1 \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad y_i(w^Tx_i+b_{2}^{new})=1 yi(wTxi+b2new)=1

从上述两个式子当中就可得知:
b 1 n e w = b 2 n e w \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad b_{1}^{new}=b_{2}^{new} b1new=b2new

那么当其中一个在范围内,而另一个不在范围内时,例如 0 ≤ α 1 ≤ C 0\le \alpha_1 \le C 0α1C,但 α 2 = C \alpha_2=C α2=C时,有以下等式:
y 1 ( w T x i + b 1 n e w ) = 1 \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad y_1(w^Tx_i+b_{1}^{new})=1 y1(wTxi+b1new)=1
y 2 ( w T x i + b 2 n e w ) ≤ 1 \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad y_2(w^Tx_i+b_{2}^{new})\le1 y2(wTxi+b2new)1
这时就会发现使用 b 1 n e w b_{1}^{new} b1new作为迭代的结果要更加合理,因为他是通过等式求得的,所以在实际的算法编写当中会通过 i f if if e l i f elif elif 来逐步判断 α i \alpha_i αi的范围是否在 [ 0 , C ] [0,C] [0,C]当中,然后对b进行赋值,当二者都不在范围内时,则取两者的平均数作为新的参数b。

==========================================================

SMO完整版代码分析

机器学习笔记——支持向量机SMO算法完整版代码分析

机器学习笔记——支持向量机SMO算法完整版代码(核函数)

==========================================================
有新内容会持续更新~

你可能感兴趣的:(机器学习笔记)