矩阵求导与实例

缘由

机器学习的很多算法表示中都采用了矩阵的形式,对算法的描述分析中就涉及到了对向量、对矩阵的求导。 比如SVM、linear regression的推导等。

布局

矩阵求导有两种布局:

  • 分子布局(numerator layout)
  • 分母布局(denominator layout)

下面用向量y\mathrm{\mathbf{y}}对标量xx求导简单说明这两种布局的区别。 我们假定所有的向量都是列向量。

y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥

\mathbf{y}=\begin{bmatrix}y_{1}\\ y_{2}\\ \vdots\\ y_{m} \end{bmatrix}

在分子布局下:

∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x∂y2∂x⋮∂ym∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

\frac{\partial\mathbf{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x}\\ \frac{\partial y_{2}}{\partial x}\\ \vdots\\ \frac{\partial y_{m}}{\partial x} \end{bmatrix}

在分母布局下:

∂y∂x=[∂y1∂x∂y2∂x⋯∂ym∂x]

\frac{\partial\mathbf{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x} & \frac{\partial y_{2}}{\partial x} & \cdots & \frac{\partial y_{m}}{\partial x}\end{bmatrix} %]]>

在下面的推导中,都将采用分母布局,也就是向量(列)对标量求导的结果都是行向量。(采用这种布局的主要原因是向量对向量的求导就是一个矩阵了)

求导的类别

求导大致分为5类:

  1. 向量对标量
  2. 标量对向量
  3. 向量对向量
  4. 矩阵对向量
  5. 向量对矩阵

矩阵求导的大致规则如下: 对标量求导结果都要转置,而标量对向量或者矩阵求导的话位置不变。 简单来说,上变下不变。

向量对标量求导:

∂y∂x=[∂y1∂x∂y2∂x⋯∂ym∂x]

\frac{\partial\mathbf{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x} & \frac{\partial y_{2}}{\partial x} & \cdots & \frac{\partial y_{m}}{\partial x}\end{bmatrix} %]]>

标量对向量求导:

∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x1∂y∂x2⋮∂y∂xm⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

\frac{\partial y}{\partial\mathbf{x}}=\begin{bmatrix}\frac{\partial y}{\partial x_{1}}\\ \frac{\partial y}{\partial x_{2}}\\ \vdots\\ \frac{\partial y}{\partial x_{m}} \end{bmatrix}

向量对向量求导:

x=⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥

\mathbf{x}=\begin{bmatrix}x_{1}\\ x_{2}\\ \vdots\\ x_{n} \end{bmatrix}

y=⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥

\mathbf{y}=\begin{bmatrix}y_{1}\\ y_{2}\\ \vdots\\ y_{m} \end{bmatrix}

∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y1∂x2⋮∂y1∂xn∂y2∂x1∂y2∂x2⋮∂y2∂xn⋯⋯⋱⋯∂ym∂x1∂ym∂x2⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

\frac{\partial\mathbf{y}}{\partial\mathbf{x}}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x_{1}} & \frac{\partial y_{2}}{\partial x_{1}} & \cdots & \frac{\partial y_{m}}{\partial x_{1}}\\ \frac{\partial y_{1}}{\partial x_{2}} & \frac{\partial y_{2}}{\partial x_{2}} & \cdots & \frac{\partial y_{m}}{\partial x_{2}}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y_{1}}{\partial x_{n}} & \frac{\partial y_{2}}{\partial x_{n}} & \cdots & \frac{\partial y_{m}}{\partial x_{n}} \end{bmatrix} %]]>

矩阵对标量求导:

∂y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y11∂x∂y12∂x⋮∂y1n∂x∂y21∂x∂y22∂x⋮∂y2n∂x⋯⋯⋱⋯∂ym1∂x∂ym2∂x⋮∂ymn∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

\frac{\partial\mathbf{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{11}}{\partial x} & \frac{\partial y_{21}}{\partial x} & \cdots & \frac{\partial y_{m1}}{\partial x}\\ \frac{\partial y_{12}}{\partial x} & \frac{\partial y_{22}}{\partial x} & \cdots & \frac{\partial y_{m2}}{\partial x}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y_{1n}}{\partial x} & \frac{\partial y_{2n}}{\partial x} & \cdots & \frac{\partial y_{mn}}{\partial x} \end{bmatrix} %]]> 标量对矩阵求导:

∂y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x21⋮∂y∂xp1∂y∂x12∂y∂x22⋮∂y∂xp2⋯⋯⋱⋯∂y∂x1q∂y∂x2q⋮∂y∂xpq⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

\frac{\partial y}{\partial\mathbf{X}}=\begin{bmatrix}\frac{\partial y}{\partial x_{11}} & \frac{\partial y}{\partial x_{12}} & \cdots & \frac{\partial y}{\partial x_{1q}}\\ \frac{\partial y}{\partial x_{21}} & \frac{\partial y}{\partial x_{22}} & \cdots & \frac{\partial y}{\partial x_{2q}}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{\partial y}{\partial x_{p1}} & \frac{\partial y}{\partial x_{p2}} & \cdots & \frac{\partial y}{\partial x_{pq}} \end{bmatrix} %]]>

从简单的例子说起

例子1:

y=aTx

\mathbb{y} = \mathbb{a}^\mathrm{T}\mathbb{x}

其中,y∈R,a∈Rn×1,x∈Rn×1\mathbb{y} \in \mathbb{R}, \mathbb{a} \in \mathbb{R}^{n \times 1}, \mathbb{x} \in \mathbb{R}^{n \times 1}。

属于标量对向量求导,所以有:

∂y∂x=a

\frac{\partial y}{\partial x} = a

例子2:

y=Ax

\mathbb{y} = \mathrm{A}\mathrm{x}

其中,y∈Rm×1,A∈Rm×n,x∈Rn×1\mathbb{y} \in \mathbb{R}^{m \times 1}, \mathrm{A} \in \mathbb{R}^{m \times n}, \mathbb{x} \in \mathbb{R}^{n \times 1}。

属于向量对向量求导,所以有:

∂y∂x=AT

\frac{\partial y}{\partial x} = \mathrm{A}^\mathrm{T}

例子3:

y=Au(x)

\mathbb{y} = \mathrm{A}\mathrm{u}(x)

其中,y∈Rm×1,A∈Rm×n,u∈Rn×1,x∈Rp×1\mathbb{y} \in \mathbb{R}^{m \times 1}, \mathrm{A} \in \mathbb{R}^{m \times n}, \mathrm{u} \in \mathbb{R}^{n \times 1},\mathbb{x} \in \mathbb{R}^{p \times 1}。

属于向量对向量的求导,所以有:

∂y∂x=∂u∂xAT

\frac{\partial y}{\partial x} = \frac{\partial u}{\partial x} \mathrm{A}^{\mathrm{T}}

例子4:

y=a(x)u(x)

\mathbb{y} = \mathrm{a(x)}\mathrm{u}(x)

其中,y∈Rm×1,a∈R,u∈Rm×1,x∈Rn×1\mathbb{y} \in \mathbb{R}^{m \times 1}, \mathrm{a} \in \mathbb{R}, \mathrm{u} \in \mathbb{R}^{m \times 1},\mathbb{x} \in \mathbb{R}^{n \times 1}。

属于向量对向量的求导,所以有:

∂y∂x=∂u∂xa+∂a∂xuT

\frac{\partial y}{\partial x} = \frac{\partial u}{\partial x} \mathrm{a}+\frac{\partial a}{\partial x} \mathrm{u}^{\mathrm{T}}

假如已知:

a(x)u(x)=Bx=Cx

\begin{split} a(x)&=Bx\\ u(x)&=Cx \end{split}

其中,B∈R1×n,C∈Rm×n\mathrm{B} \in \mathbb{R}^{1 \times n}, \mathrm{C} \in \mathbb{R}^{m \times n} 那么,

∂y∂x=CTa+BTuT

\frac{\partial y}{\partial x} =\mathrm{C}^{\mathrm{T}}\mathrm{a}+\mathrm{B}^{\mathrm{T}}\mathrm{u}^{\mathrm{T}}

例子5:

f=xTAy(x)

\mathrm{f} = \mathbf{x}^{\mathrm{T}}\mathbf{Ay(x)} 那么,

∂f∂x=Ay+∂y∂xATx

\frac{\partial f}{\partial x} =Ay+\frac{\partial y}{\partial x} A^T x

其中,x∈Rm×1,y∈Rn×1,A∈Rm×n,f∈R\mathbf{x}\in\mathbb{R}^{m\times1},\mathbf{y}\in\mathbb{R}^{n\times1},\mathbf{A}\in\mathbb{R}^{m\times n},\mathbf{f}\in\mathbb{R}。

上面的式子,当y(x)=x\mathbb{y(x)}=x时,也就是m=nm=n时。

f∂f∂x=xTAx=(A+AT)x

\begin{split} &\mathrm{f}& = \mathbf{x}^{\mathrm{T}}\mathrm{A}\mathbf{x}\\ &\frac{\partial f}{\partial x} &= (A+A^T)x \end{split}

例子6:

f=aTxxTb,a,b,x∈Rm×1

\mathbb{f} = \mathbf{a}^{\mbox{T}}\mathbf{xx}^{\mbox{T}}\mathbf{b} ,\mathbf{a,b,x}\in\mathbb{R}^{m\times1}

∂f∂x=a(xTb)+b(aTx)=(abT+baT)x

\frac{\partial f}{\partial x} = a(x^Tb) + b(a^Tx) = (ab^T+ba^T)x

实例

SVM的对偶形式转换

SVM的原形式(primary form)是:

minw,bs.t.12wTwyn(wTxn+b)≥1

\begin{split} &\min_{w,b} \quad &\frac{1}{2} w^Tw\\ &s.t. & y_n(w^Tx_n+b) \ge1 \end{split}

SVM的对偶形式(dual form)是:

minw,bmaxα≥0maxα≥0minw,b12wTw+∑n=1Nαn[1−yn(wTxn+b)]12wTw+∑n=1Nαn[1−yn(wTxn+b)]

\begin{split} &\min_{w,b} \max_{\alpha\ge 0} & \frac{1}{2} w^Tw + \sum_{n=1}^N \alpha_n [1- y_n(w^Tx_n+b)] \\ &\max_{\alpha\ge 0} \min_{w,b} &\frac{1}{2} w^Tw + \sum_{n=1}^N \alpha_n [1- y_n(w^Tx_n+b)]\end{split}

上升分别对w,bw,b求导后,得到

w∑n=1Nαnyn=∑n=1Nαnynxn=0

\begin{split} w &= \sum_{n=1}^N \alpha_n y_n x_n\\ \sum_{n=1}^N \alpha_n y_n &= 0 \end{split}

代入原式中,有

minα12∑n=1Ns.t.∑n=1Nαnynαn∑m=1NαnαmynymxmTxn−∑n=1Nαn=0≥0

\begin{split}\min_\alpha \frac{1}{2}\sum_{n=1}^N&\sum_{m=1}^N \alpha_n \alpha_m y_n y_m {x_m}^T x_n - \sum_{n=1}^N \alpha_n \\ s.t. \quad \sum_{n=1}^N \alpha_n y_n &= 0 \\ \alpha_n &\ge 0 \end{split}

这个对偶问题,可以用相应的quadprog包求解。其中,∑Nn=1∑Nm=1αnαmynymxmTxn\sum_{n=1}^N\sum_{m=1}^N \alpha_n \alpha_m y_n y_m {x_m}^T x_n是矩阵αTQα\mathbb{\alpha}^T \mathrm{Q}\mathbb{\alpha}。ynymxmTxny_n y_m {x_m}^T x_n是矩阵中m行n列的元素。这个元素再乘以αnαm \alpha_n \alpha_m 。 同时,这个也是wTww^Tw的内积。可以理解为把ww拆开多项,每一项分别做内积然后相加,就像多次项展开公式一样。

Soft-SVM对偶形式转换

SVM的原形式(primary form)是:

minw,b,εs.t.12wTw+C∑n=1Nεnyn(wTxn+b)≥1−εnεn≥0

\begin{split} &\min_{w,b,\varepsilon} \quad &\frac{1}{2} w^Tw + C \sum_{n=1}^N \varepsilon_n \\ &s.t. & y_n(w^Tx_n+b) \ge1-\varepsilon_n \\ & &\varepsilon_n \ge 0 \end{split}

对偶形式是:

minα12∑n=1Ns.t.∑n=1Nαnyn0≤αn∑m=1NαnαmynymxmTxn−∑n=1Nαn=0≤C

\begin{split}\min_\alpha \frac{1}{2}\sum_{n=1}^N&\sum_{m=1}^N \alpha_n \alpha_m y_n y_m {x_m}^T x_n - \sum_{n=1}^N \alpha_n \\ s.t. \quad \sum_{n=1}^N \alpha_n y_n &= 0 \\ 0 \le\alpha_n &\le C \end{split}

线性回归

原问题是:

Ein(w)=1N∑n=1N(wTx−y)2=1N∥XW−Y∥2

{E}_{in} (w) = \frac{1}{N} \sum_{n=1}^N (w^T x -y)^2=\frac{1}{N} \Vert XW-Y\Vert ^2

当最佳值存在时:

∇Ein(w)=2NXT(XW−Y)

\nabla E_{in}(w)=\frac{2}{N} X^T(XW-Y)

所以有:

WW=(XTX)−1XTY=X†Y

\begin{split} W &= (X^TX)^{-1} X^TY\\ W &=X^\dagger Y \end{split}

logistic回归

首先,定义需要的函数:

θ(s)h(x)=es1+es=11+e−s=θ(wTx)

\begin{split} \theta(s) &= \frac{e^s}{1+e^s} = \frac{1}{1+e^{-s}}\\ h(x)&= \theta(w^Tx) \end{split} 接着,根据最大似然,并且利用 1−h(x)=h(−x)1-h(x) = h(-x)的性质,最大化点出现的概率:

max∏θ(ynwTxn)min∑n=1Nln(1+exp(−ynwTxn))

\begin{split} &\max \prod \theta(y_n w^T x_n)\\ &\min \sum_{n=1}^N ln(1+exp(-y_nw^Tx_n)) \end{split}

上式对ww的倒数为0,所以有:

s.t.min∑n=1Nln(1+exp(−ynwTxn))∑n=1Nθ(−ynwTxn)(−ynxn)=0

\begin{split} &\min \sum_{n=1}^N ln(1+exp(-y_nw^Tx_n)) \\ s.t. & \sum_{n=1}^N \theta(-y_n w^T x_n)(-y_nx_n) = 0 \end{split}

下面,可以利用GD或者SGD求解。

GD:

∇Ein(wt)wt+1=1N∑n=1Nθ(−ynwTxn)(−ynxn)=wt−η∇Ein(wt)

\begin{split} \nabla E_{in} (w_t) &= \frac{1}{N} \sum_{n=1}^N \theta(-y_n w^T x_n)(-y_nx_n) \\ w_{t+1}&= w_t - \eta \nabla E_{in} (w_t) \end{split}

SGD:

wt+1=wt−ηθ(−ynwTxn)(−ynxn)

w_{t+1}= w_t -\eta \theta(-y_n w^T x_n)(-y_nx_n)

参考资料

  1. 闲话矩阵求导

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习从入门到成神

机器学习之拉格朗日乘数法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1152
来自专栏逍遥剑客的游戏开发

常见图形数学英文单词备忘

1455
来自专栏数说工作室

【分类战车SVM】第四话:拉格朗日对偶问题(原来这么简单,你也可以轻松学会)

分类战车SVM (第四话:拉格朗日对偶问题) 查看本《分类战车SVM》系列的内容: 第一话:开题话 第二话:线性分类 第三话:最大间隔分类器 第四话:拉格朗日对...

3445
来自专栏数说工作室

【分类战车SVM】第四话:拉格朗日对偶问题(原来这么简单,你也可以轻松学会)

分类战车SVM (第四话:拉格朗日对偶问题) 先看下本文的大纲: 1.回顾 2.不等式的拉格朗日乘数法 3.拉格朗日对偶问题 ...

3627
来自专栏专知

【论文推荐】最新6篇目标检测​(Object Detection)相关论文—物体链接、手机端、三维地图、航空图像、检测与姿态估计

【导读】专知内容组整理了最近六篇目标检测(Object Detection)相关文章,为大家进行介绍,欢迎查看! 1. Object Detection in ...

4245
来自专栏PPV课数据科学社区

深度学习( Deep Learning )软件资源列表

? 列表源自http://deeplearning.net/software_links/,本文进行分类整理。 星号代表对软件库的推荐度,考虑了适用范围、开发...

2747
来自专栏机器学习人工学weekly

机器学习人工学weekly-2018/3/17

1. PyTorch构架分析 PyTorch – Internal Architecture Tour 链接:http://blog.christianper...

2937
来自专栏思影科技

Science: 位于人类听觉皮层的语调编码

来自美国加州大学旧金山分校的研究人员C.Tang等人近期在《Science》杂志上发文,他们使用颅内电极记录癫痫病人听具有不同声学特征(如声调轮廓,声学内容,音...

3278
来自专栏机器之心

自然语言处理领域重要论文&资源全索引

选自GitHub 作者:Kyubyong Park 机器之心编译 参与:刘晓坤、李泽南 自然语言处理(NLP)是人工智能研究中极具挑战的一个分支。随着深度学习等...

3897
来自专栏专知

【论文推荐】最新5篇目标跟踪(Object Tracking)相关论文—并行跟踪和验证、光流、自动跟踪、相关滤波集成、CFNet

【导读】专知内容组整理了最近五篇目标跟踪(Object Tracking)相关文章,为大家进行介绍,欢迎查看! 1. Parallel Tracking and...

4474

扫码关注云+社区