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)
在这个式子中用到了标量函数对向量求导,也就是:
∂∂w(12∥w∥2)=w(公式3)
∂
∂
w
(
1
2
∥
w
∥
2
)
=
w
(
公
式
3
)
那么这一步是怎么得到的呢?这就涉及到矩阵微分的知识。
实值函数相对于实向量的梯度
相对于n×1
n
×
1
向量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)相对于x
x
的梯度为一个n×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
)
类似地,实值函数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×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
)