缘由
机器学习的很多算法表示中都采用了矩阵的形式,对算法的描述分析中就涉及到了对向量、对矩阵的求导。
比如SVM、linear regression的推导等。
布局
矩阵求导有两种布局:
- 分子布局(numerator layout)
- 分母布局(denominator layout)
下面用向量
y
对标量
x
求导简单说明这两种布局的区别。
我们假定所有的向量都是列向量。
在分子布局下:
在分母布局下:
在下面的推导中,都将采用分母布局,也就是向量(列)对标量求导的结果都是行向量。(采用这种布局的主要原因是向量对向量的求导就是一个矩阵了)
求导的类别
求导大致分为5类:
- 向量对标量
- 标量对向量
- 向量对向量
- 矩阵对向量
- 向量对矩阵
矩阵求导的大致规则如下:
对标量求导结果都要转置,而标量对向量或者矩阵求导的话位置不变。
简单来说,上变下不变。
向量对标量求导:
标量对向量求导:
向量对向量求导:
矩阵对标量求导:
标量对矩阵求导:
从简单的例子说起
例子1:
其中, y∈R,a∈Rn×1,x∈Rn×1 。
属于标量对向量求导,所以有:
例子2:
其中, y∈Rm×1,A∈Rm×n,x∈Rn×1 。
属于向量对向量求导,所以有:
例子3:
其中, y∈Rm×1,A∈Rm×n,u∈Rn×1,x∈Rp×1 。
属于向量对向量的求导,所以有:
例子4:
其中, y∈Rm×1,a∈R,u∈Rm×1,x∈Rn×1 。
属于向量对向量的求导,所以有:
假如已知:
其中,
B∈R1×n,C∈Rm×n
那么,
例子5:
那么,
其中, x∈Rm×1,y∈Rn×1,A∈Rm×n,f∈R 。
上面的式子,当
y(x)=x
时,也就是
m=n
时。
例子6:
则
实例
SVM的对偶形式转换
SVM的原形式(primary form)是:
SVM的对偶形式(dual form)是:
上升分别对
w,b
求导后,得到
代入原式中,有
这个对偶问题,可以用相应的quadprog包求解。其中,
∑Nn=1∑Nm=1αnαmynymxmTxn
是矩阵
αTQα
。
ynymxmTxn
是矩阵中m行n列的元素。这个元素再乘以
αnαm
。
同时,这个也是
wTw
的内积。可以理解为把
w
拆开多项,每一项分别做内积然后相加,就像多次项展开公式一样。
Soft-SVM对偶形式转换
SVM的原形式(primary form)是:
对偶形式是:
线性回归
原问题是:
当最佳值存在时:
所以有:
logistic回归
首先,定义需要的函数:
接着,根据最大似然,并且利用 1−h(x)=h(−x) 的性质,最大化点出现的概率:
上式对
w
的倒数为0,所以有:
下面,可以利用GD或者SGD求解。
GD:
SGD: