机器学习 【 SVM支持向量机算法】 公式推导计算+详细过程 (入门必备)

  • SVM支持向量机又称最大间距分类器。可以解决“线性可分”和“线性不可分”问题
  • SVM的“三宝”:最大间距、对偶性和核函数。
  • 算法推导:
    机器学习 【 SVM支持向量机算法】 公式推导计算+详细过程 (入门必备)_第1张图片
  • 入上图所示
  • 图中红线为决策边界。
  • 两条平行黑线共同组成最大间距。
  • *“支撑向量”*为两条平行黑线上的点。

决策边界公式
θ T x + b = 0 \theta^Tx + b = 0 θTx+b=0

**“支撑向量”到决策边界的距离公式 **
d = ∣ y i ∣ ∣ ∣ θ ∣ ∣ d = \frac{|y_{i}|}{||\theta||} d=θyi

假设决策边界$ \theta^Tx + b = 0 $能将样本正确分类,那么:

{ θ T x + b > = + 1 y i = + 1 θ T x + b < = − 1 y i = − 1 \begin{cases} \theta^Tx + b >= +1 \quad y_{i} = +1 \\ \theta^Tx + b <= -1 \quad y_{i} = -1 \\ \end{cases} {θTx+b>=+1yi=+1θTx+b<=1yi=1

两个不同类的支持向量到决策边界的距离之和为:

2 d = 2 ∣ ∣ θ ∣ ∣ 2d = \frac{2}{||\theta||} 2d=θ2

所以我们最大化间距的表达式可以写成:

{ m a x 2 ∣ ∣ θ ∣ ∣ s . t . y i ( θ T x + b ) > = 1 \begin{cases} max \quad \frac{2}{||\theta||} \\ s.t. \quad y_{i}(\theta^Tx + b) >= 1 \\ \end{cases} {maxθ2s.t.yi(θTx+b)>=1

极值问题,求导数。最大化$ \frac{1}{||\theta||} , 相 当 于 让 分 母 ,相当于让分母 , ||\theta|| $最小化,所以:

{ m i n 1 2 ∣ ∣ θ ∣ ∣ 2 s . t . y i ( θ T x + b ) > = 1 \begin{cases} min \quad \frac{1}{2} ||\theta||^{2} \\ s.t. \quad y_{i}(\theta^Tx + b) >= 1 \\ \end{cases} {min21θ2s.t.yi(θTx+b)>=1

  • 对偶问题

** 对上式使用拉格朗日乘子法,得到“对偶问题”,公式为: **
L ( θ , b , α ) = 1 2 ∣ ∣ θ ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( θ T x i + b ) ( 1 ) L(\theta, b, \alpha) = \frac{1}{2} ||\theta||^{2} + \sum_{i=1} ^ m \alpha_i (1 - y_{i}(\theta^Tx_i + b) (1) L(θ,b,α)=21θ2+i=1mαi(1yi(θTxi+b)1

θ \theta θ求偏导
θ = ∑ i = 1 m α i y i x i ( 2 ) \theta = \sum_{i=1} ^ m \alpha_iy_ix_i \quad (2) θ=i=1mαiyixi2

对b求偏导

0 = ∑ i = 1 m α i y i 0 = \sum_{i=1} ^ m \alpha_iy_i \quad 0=i=1mαiyi

将(2)式带入到(1)式

{ m a x ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 \begin{cases} max \quad \sum_{i=1} ^ m \alpha_i - \frac{1}{2} \sum_{i=1} ^ m \sum_{j=1} ^ m \alpha_i \alpha_j y_i y_j x^{T}_i x_j \\ s.t. \quad \sum_{i=1} ^ m \alpha_iy_i = 0 \\ \end{cases} {maxi=1mαi21i=1mj=1mαiαjyiyjxiTxjs.t.i=1mαiyi=0

  • 核函数

线性核函数
k ( x i , x j ) = x i T x j k(x_i, x_j) = x^{T}_i x_j k(xi,xj)=xiTxj

多项式核函数
k ( x i , x j ) = ( x i T x j ) d , d 为 次 数 k(x_i, x_j) = (x^{T}_i x_j)^ d , d为次数 k(xi,xj)=xiTxjd,d

高斯核函数
k ( x i , x j ) = e x p ( − ∣ ∣ 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σ2xixj2)

你可能感兴趣的:(机器学习,人工智能)