矩阵求导公式,及MathJax公式编辑

最近学到线性回归中要用到向量,矩阵求导,所以就搜集了下资料,总结如下:
矩阵求导有两种布局:
分子布局(numerator layout)
分母布局(denominator layout)

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

y=y1y2y3ym

在分子布局下:
yx=y1xy2xymx

在分母布局下:
yx=[y1xy2xymx]

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

求导的类别

求导大致分为5类:

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

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

向量对标量:

yx=[y1xy2xymx]

(采用的是分母布局,也就是转置了)

标量对向量:

yX=yx1yx2yx3

(此时X是向量,y是标量,标量对向量的求导没有转置)

向量对向量求导:

X=x1x2x3xn

y=y1y2y3ym

yX=y1x1y1x2y1xny2x1y2x2y2xnymx1ymx2ymxn

矩阵对标量求导:

Yx=y11xy12xy1nxy21xy22xy2nxym1xym2xymnx

可以看出转置了。。

标量对矩阵求导:

yX=yx11yx21yxp1yx12yx22yxp2yx1qyx2qyxpq

简单的例子

例1.

y=aTx

其中, yR,aRn×1,xRn×1
属于标量对向量求导,所以有:
yx=a

其中a是列向量,没有转置

例2.

y=Ax

yRm×1,ARm×n,xRn×1
属于向量对向量求导,所以有:
yx=AT

例3.

y=Au(x)

其中, yRm×1,ARm×n,uRn×1,xRp×1
属于向量对向量的求导,所以有:
yx=uxAT

如果:

y=a(x)u(x)

其中: yRm×1,aR,uRm×1,xRn×1
属于向量对向量的求导,所以有:
yx=uxa+axuT

假如已知:

a(x)=Bxu(x)=Cx

其中: BR1×n,CRm×n
那么,
yx=CTa+BTuT

例子4:

f=xTAy(x)

那么,
fx=Ay+yxATx

其中, xRm×1,yRn×1,ARm×n,fR
上面的式子,当y(x)=x时,也就是m=n时。
ffx=xTAx=(A+AT)x

例子5:

f=aTxxTba,b,xRm×1

fx=a(xTb)+b(aTx)=(abT+baT)x

参考:

http://blog.csdn.net/young_gy/article/details/50008953


常用公式:

dUVTdX=(dUdX)VT+U(dVTdX)

dUTVdX=(dUTdX)V+(dVTdX)UT

dXTdx=IdXdxT=I

d(AX)Tdx=ATdAxdxT=A

dxTAdx=A

uTvx=uTxv+vTxuT

uvTx=uxvT+uvTx

dxTxdx=2x

dxTAxdx=(A+AT)x

ABx=AxB+ABx

uTXvX=uvT

uTXTXuX=2XuvT

[(Xuv)T(Xuv)]X=2(Xuv)uT

维基百科:
Result of differentiating various kinds of aggregates with other kinds of aggregates

这里写图片描述

Identities: vector-by-vector yx
这里写图片描述

Identities: scalar-by-vector yx=xy

这里写图片描述

这里写图片描述

Identities: vector-by-scalar yx

这里写图片描述

详细参考:
维基百科矩阵求导


因为是第一次用公式编辑器,所以总结下基本使用方法:

MathJax是一个JavaScript引擎,用来显示网络上的数学公式, MathJax有两种插入公式的方式:
一种是行中公式,另外一种是独立公式,行中公式可以插入到一行文字中,独立公式是单独成行,行中公式插入方式是:$…$,独立公式插入方式是:$$…$$,省略号代表插入的公式部分。

常用符号

  • 分组(最常用)
    分组是用{}把一个部分括起来,看成一个整体

  • 空格
    MathJax中不能直接输入空格,可以用 , \; \quad和\qquad充当空格,增加的间隔依次增大

  • 运算符号

运算符表示
++
-
×\times
÷\div
±\pm
\mp
^(指数运算符)^
  • 关系比较符号
运算符表示
<\lt
>\gt
\le
\ge
\neq
  • 分式

    有两种实现方式:

  • 输入:$\frac {a+c+1}{b+c+2}$ ,输出: a+c+1b+c+2

  • 输入:{a+c+1} \over {b+c+2},输出: a+c+1b+c+2

  • 根式

    平方根 :
    输入:\sqrt {a+b},输出: a+b

    输入:\sqrt[5] {a+b},输出: a+b5

  • 特殊数学符号

1.求和:
输入:\sum {a+b},输出: a+b
输入:\sum_{i=1}^{K},输出: Ki=1
其中”_”是下标; “^”是上标
输入:$$\sum_{i=1}^{K}$$,输出:

i=1K

2.连乘:
输入:\prod {a+b},输出: a+b
输入:\prod_{i=1}^{K},输出: Ki=1
输入:$$\prod_{i=1}^{K}$$,输出:

i=1K

  • 3.arg max/arg min/max/min

    输入:$$arg\,\max_{c_k}$$,输出:

    argmaxck

    输入:$$arg\,\min_{c_k}$$,输出:
    argminck

    输入:$$\mathop {argmin}_{c_k}$$,输出:
    argminck

    输入:$$\mathop {argmax}_{c_k}$$,输出:
    argmaxck

    输入:$$\max_{c_k}$$,输出:
    maxck

    输入:$$\min_{c_k}$$,输出:
    minck

省略符号

连续点-省略号:
\ldots 偏下点 ; \cdots 中间点 ; \vdots 竖直点 ; \ddots 对角点

输入\cdots:输出:⋯
常用在这种情况:
输入$f(x_1,x_2,\cdots,x_n)$:输出: f(x1,x2,xn)

独立公式

对齐:

\begin{align}`用于开头,`\end{align}用于结尾,对齐的位置用&开始,用\\结束
输入:

$$
\begin{align}
f(x) &=a+b+a\\
& = 2a+b
\end{align}
$$

输出:

f(x)=a+b+a=2a+b

条件函数

关键词是\begin{cases}`和`\end{cases}\test{}括号里面输入内容
输入:

$$
L(Y,f(X)) =
\begin{cases}
0, & \text{Y = f(X)}  \\
1, & \text{Y $\neq$ f(X)}
\end{cases}
$$

输出:

L(Y,f(X))={0,1,Y = f(X) f(X)

下面在看一个例子:

$$
J(\theta) = \frac 1 2 \sum_{i=1}^m (h_\theta(x^{(i)})-y^{(i)})^2
$$

输出:

J(θ)=12i=1m(hθ(x(i))y(i))2

这个公式是线性回归算法里的成本函数

这里:

公式编辑器

以上是一些基本用法,遇到其他的再追加。。。。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值