文章目录
本文属于我的机器学习/深度学习系列文章,点此查看系列文章目录
前言
关于函数求导大部分人都懂得如何求,但基本都是单变量对单变量和多变量对单变量的求导,在机器学习(深度学习)中经常性要用到向量对向量,矩阵对向量的求导等,掌握这些求导法则也是十分必要的。
本文将由简入繁,讲述如何矩阵、向量求导,也可以将本文作为手册,在需要的时候查询对应求导法则。
1. 向量与单变量求导
1.1 向量对单变量
向量包含行、列向量,对于单个变量的求导类似,也很容易理解。
一般情况下我们约定单个向量符号 x \mathbf x x指列向量,如果要表示行向量,添加一个
T
转置符号 x T \mathbf x^T xT
-
列向量
设 y = [ y 1 y 2 . . . y n ] , x \mathbf y=\begin{bmatrix}y_1\\ y_2\\ ...\\ y_n\end{bmatrix},x y=⎣⎢⎢⎡y1y2...yn⎦⎥⎥⎤,x是单变量,则 ∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x . . . , ∂ y n ∂ x ] \frac{\partial \mathbf y}{\partial x} = \begin{bmatrix} \frac{\partial y_1}{\partial x}\\ \frac{\partial y_2}{\partial x}\\ ...,\\ \frac{\partial y_n}{\partial x} \end{bmatrix} ∂x∂y=⎣⎢⎢⎡∂x∂y1∂x∂y2...,∂x∂yn⎦⎥⎥⎤ -
行向量
设 y T = [ y 1 , y 2 , . . . , y n ] , x \mathbf y^T=[y_1,y_2,...,y_n],x yT=[y1,y2,...,yn],x是单变量,则 ∂ y T ∂ x = [ ∂ y 1 ∂ x , ∂ y 2 ∂ x , . . . , ∂ y n ∂ x ] \frac{\partial \mathbf y^T}{\partial x} = [\frac{\partial y_1}{\partial x},\frac{\partial y_2}{\partial x},...,\frac{\partial y_n}{\partial x}] ∂x∂yT=[∂x∂y1,∂x∂y2,...,∂x∂yn]
1.2 单变量对向量求导
与向量对单变量求导刚好相反,两者颠倒一下。但总体意义相似,结果是单变量分别对向量中元素的求导组成的新向量。
- 列向量
设 x = [ x 1 x 2 . . . x n ] , y \mathbf x=\begin{bmatrix} x_1\\ x_2\\ ...\\ x_n\end{bmatrix},y x=⎣⎢⎢⎡x1x2...xn⎦⎥⎥⎤,y 是 单 变 量 , 则 是单变量,则 是单变量,则 ∂ y ∂ x = [ ∂ y ∂ x 1 ∂ y ∂ x 2 . . . , ∂ y ∂ x n ] \frac{\partial y}{\partial \mathbf x} = \begin{bmatrix} \frac{\partial y}{\partial x_1}\\ \frac{\partial y}{\partial x_2}\\ ...,\\ \frac{\partial y}{\partial x_n} \end{bmatrix} ∂x∂y=⎣⎢⎢⎢⎡∂x1∂y∂x2∂y...,∂xn∂y⎦⎥⎥⎥⎤ - 行向量
设 x T = [ x 1 , x 2 , . . . , x n ] , y \mathbf x^T=[x_1,x_2,...,x_n],y xT=[x1,x2,...,xn],y是单变量,则 ∂ y ∂ x T = [ ∂ y ∂ x 1 , ∂ y ∂ x 2 , . . . , ∂ y ∂ x n ] \frac{\partial y}{\partial \mathbf x^T} = [\frac{\partial y}{\partial x_1},\frac{\partial y}{\partial x_2},...,\frac{\partial y}{\partial x_n}] ∂xT∂y=[∂x1∂y,∂x2∂y,...,∂xn∂y]
2. 矩阵与单变量求导
2.1 矩阵对单变量求导
矩阵对单变量的求导与向量求导类似,就是每个元素分别对变量求导。
设 Y = [ y 11 . . . y 1 n . . . . . . . . . y m 1 . . . y m n ] Y= \begin{bmatrix} y_{11} & ... & y_{1n} \\ ... & ... & ... \\ y_{m1} & ... & y_{mn} \end{bmatrix} Y=⎣⎡y11...ym1.........y1n...ymn⎦⎤,则 ∂ Y ∂ x = [ ∂ y 11 ∂ x . . . ∂ y 1 n ∂ x . . . . . . . . . ∂ y m 1 ∂ x . . . ∂ y m n ∂ x ] \frac{\partial Y}{\partial x} = \begin{bmatrix} \frac{\partial y_{11}}{\partial x} & ... & \frac{\partial y_{1n}}{\partial x} \\ ... & ... & ... \\ \frac{\partial y_{m1}}{\partial x} & ... & \frac{\partial y_{mn}}{\partial x} \end{bmatrix} ∂x∂Y=⎣⎡∂x∂y11...∂x∂ym1.........∂x∂y1n...∂x∂ymn⎦⎤
2.2 单变量对矩阵求导
设 X = [ x 11 . . . x 1 n . . . . . . . . . x m 1 . . . x m n ] X= \begin{bmatrix} x_{11} & ... & x_{1n} \\ ... & ... & ... \\ x_{m1} & ... & x_{mn} \end{bmatrix}