首先给出拉格朗日函数:
L(w,b,α)=12∥w∥2−∑i=1Nαiyi(w⋅xi+b)+∑i=1Nαi(公式1) L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 N α i y i ( w ⋅ x i + b ) + ∑ i = 1 N α i ( 公 式 1 )然后对 w w 求偏导并令其等于0:
∂L(w,b,α)∂w=∇wL(w,b,α)=w−∑i=1Nαiyixi=0(公式2)∂L(w,b,α)∂w=∇wL(w,b,α)=w−∑i=1Nαiyixi=0(公式2)
在这个式子中用到了标量函数对向量求导,也就是:
∂∂w(12∥w∥2)=w(公式3) ∂ ∂ w ( 1 2 ∥ w ∥ 2 ) = w ( 公 式 3 )
那么这一步是怎么得到的呢?这就涉及到矩阵微分的知识。
相对于 n×1 n × 1 向量 x x 的梯度算子记作∇x∇x,定义为
∇x=def[∂∂x1,∂∂x2,⋅⋅⋅,∂∂xn]T=∂∂x(公式4) ∇ x = d e f [ ∂ ∂ x 1 , ∂ ∂ x 2 , ⋅ ⋅ ⋅ , ∂ ∂ x n ] T = ∂ ∂ x ( 公 式 4 )
因此,以 n×1 n × 1 向量 x x 为变元的实标量函数f(x)f(x)相对于 x x 的梯度为一个n×1n×1的列向量,定义为
∇xf(x)=def[∂f(x)∂x1,∂f(x)∂x2,⋅⋅⋅,∂f(x)∂xn]T=∂f(x)∂x(公式5) ∇ x f ( x ) = d e f [ ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 , ⋅ ⋅ ⋅ , ∂ f ( x ) ∂ x n ] T = ∂ f ( x ) ∂ x ( 公 式 5 )
从梯度的定义可以看出: 1、一个以向量为变元的标量函数的梯度为一个向量。 2、梯度的每个分量给出了标量函数在该分量方向上的变化率。
类似地,实值函数 f(x) f ( x ) 相对于 1×n 1 × n 行向量 xT x T 的梯度为 1×n 1 × n 行向量,定义为
∂f(x)∂x=def[∂f(x)∂x1,∂f(x)∂x2,⋅⋅⋅,∂f(x)∂xn]=∇xTf(x)(公式6) ∂ f ( x ) ∂ x = d e f [ ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 , ⋅ ⋅ ⋅ , ∂ f ( x ) ∂ x n ] = ∇ x T f ( x ) ( 公 式 6 )
根据(公式5)的定义,可以来计算(公式3),设 w w 是m×1m×1的列向量
12∥w∥2=12wT⋅w=12∑i=1mwi2(公式7) 1 2 ∥ w ∥ 2 = 1 2 w T ⋅ w = 1 2 ∑ i = 1 m w i 2 ( 公 式 7 )
可求出梯度 ∂∂w(12∥w∥2) ∂ ∂ w ( 1 2 ∥ w ∥ 2 ) 的第k个分量为
[∂∂w(12∥w∥2)]k=∂∂wk(12∑i=1mwi2)=12×2wk=wk(公式8) [ ∂ ∂ w ( 1 2 ∥ w ∥ 2 ) ] k = ∂ ∂ w k ( 1 2 ∑ i = 1 m w i 2 ) = 1 2 × 2 w k = w k ( 公 式 8 )
于是
∂∂w(12∥w∥2)=w(公式9) ∂ ∂ w ( 1 2 ∥ w ∥ 2 ) = w ( 公 式 9 )类似地,在最小二乘法中也有这个求导,不过里面还用到了链式法则。在此就不赘述了。
