java二维矩阵怎么进行转置_矩阵求导秘笈

学好线性代数矩阵论需要的不是逻辑思维,而是“内存”。本篇整理几个内存消耗大的公式,方便速查。

8fd9e993-de2d-eb11-8da9-e4434bdf6706.svg (a)

我一般喜欢举一个具体的实例,类似数学归纳法,总是从= 1开始。这里可以用3×3的矩阵。

首先矩阵×向量有一种内存小的记法:

92d9e993-de2d-eb11-8da9-e4434bdf6706.svg

上式aA的列向量, 95d9e993-de2d-eb11-8da9-e4434bdf6706.svg 是向量 x 的元素(标量)。

式(a)的左边

98d9e993-de2d-eb11-8da9-e4434bdf6706.svg

上式乘积的对角元素为

9dd9e993-de2d-eb11-8da9-e4434bdf6706.svg

9fd9e993-de2d-eb11-8da9-e4434bdf6706.svg

a3d9e993-de2d-eb11-8da9-e4434bdf6706.svg

式(a)的右边

a7d9e993-de2d-eb11-8da9-e4434bdf6706.svg

得证。


aad9e993-de2d-eb11-8da9-e4434bdf6706.svg 是正定矩阵,其中 add9e993-de2d-eb11-8da9-e4434bdf6706.svg 为可逆矩阵(nonsingular,行列式!=0),即存在 b2d9e993-de2d-eb11-8da9-e4434bdf6706.svg 。

观察上述矩阵,只有对角线的元素是平方和,其他元素正负未知。那么正定矩阵的定义是神马?对于任意非零向量 b4d9e993-de2d-eb11-8da9-e4434bdf6706.svg ,

b6d9e993-de2d-eb11-8da9-e4434bdf6706.svg

那么, b9d9e993-de2d-eb11-8da9-e4434bdf6706.svg

以上,我们接触了两个内存容易溢出的矩阵知识点,1是trace,2是二次型。下面开始看矩阵求导。


关于矩阵导数的几个定义

1、向量y对向量x的导数。若

bdd9e993-de2d-eb11-8da9-e4434bdf6706.svg :c0d9e993-de2d-eb11-8da9-e4434bdf6706.svg

where y is an m-element vector, and x is an n-element vector. The symbol

3d3f18e0b8c671b608f3d0a32565612c.png

上式矩阵还称为线性变换 c9d9e993-de2d-eb11-8da9-e4434bdf6706.svg 的Jacobian matrix。

以上常用于求解Ax b的问题。

2、矩阵A标量变量 cad9e993-de2d-eb11-8da9-e4434bdf6706.svg 的导数

095247819e3dfce5c445613ec189d253.png

3、标量L对矩阵W的导数,定义为d1d9e993-de2d-eb11-8da9-e4434bdf6706.svg,常应用于神经网络损失函数对系数矩阵的导数。

d4d9e993-de2d-eb11-8da9-e4434bdf6706.svg

一般数学定义强记硬背是必须的,理解随意。


举几个例子,二维的高斯函数 d7d9e993-de2d-eb11-8da9-e4434bdf6706.svg

dbd9e993-de2d-eb11-8da9-e4434bdf6706.svg 或写成顺眼的形式 dcd9e993-de2d-eb11-8da9-e4434bdf6706.svg

28b7b996be2db67d5a12eafeb11bba2e.png

梯度函数 e1d9e993-de2d-eb11-8da9-e4434bdf6706.svg ,同样看我们熟悉的三维情形 e3d9e993-de2d-eb11-8da9-e4434bdf6706.svg ,其梯度为

e6d9e993-de2d-eb11-8da9-e4434bdf6706.svg

即函数在x方向上和y方向上的梯度分量,总梯度向量叠加即可:

ead9e993-de2d-eb11-8da9-e4434bdf6706.svg


下面记几个公式

let y is m×1, x is n×1, A is m×n,

edd9e993-de2d-eb11-8da9-e4434bdf6706.svg

then

f0d9e993-de2d-eb11-8da9-e4434bdf6706.svg (公式1)

证明:

f3d9e993-de2d-eb11-8da9-e4434bdf6706.svg

it follows that

f6d9e993-de2d-eb11-8da9-e4434bdf6706.svg

for all i = 1, 2, ..., mj = 1, 2, ..., n. Hence

得证。


y is m×1, x is n×1, A is m×nz is l×1,

edd9e993-de2d-eb11-8da9-e4434bdf6706.svg

Suppose that x is a function of the vector z, while A is independent of z. then

fbd9e993-de2d-eb11-8da9-e4434bdf6706.svg (公式2)

证明

f3d9e993-de2d-eb11-8da9-e4434bdf6706.svg

for all i = 1, 2, ... , m, it follows that

02dae993-de2d-eb11-8da9-e4434bdf6706.svg

右边是 05dae993-de2d-eb11-8da9-e4434bdf6706.svg 的元素(ij)。那么,求导的链式法则在这里也apply,

07dae993-de2d-eb11-8da9-e4434bdf6706.svg

根据定义1, 09dae993-de2d-eb11-8da9-e4434bdf6706.svg 是n×l矩阵, 0ddae993-de2d-eb11-8da9-e4434bdf6706.svg 是m×l矩阵。


标量 cad9e993-de2d-eb11-8da9-e4434bdf6706.svg 定义为

15dae993-de2d-eb11-8da9-e4434bdf6706.svg

式中 m×1, n×1, A 为 m×n, 

1adae993-de2d-eb11-8da9-e4434bdf6706.svg (公式3.1)

and

1bdae993-de2d-eb11-8da9-e4434bdf6706.svg (公式3.2)

证明

根据公式(1),设 1ddae993-de2d-eb11-8da9-e4434bdf6706.svg ,公式3.1得证。

另一方面,标量的转置是标量本身,

21dae993-de2d-eb11-8da9-e4434bdf6706.svg

又根据公式(1),公式3.2得证。


标量 cad9e993-de2d-eb11-8da9-e4434bdf6706.svg 可以由二次型得出

26dae993-de2d-eb11-8da9-e4434bdf6706.svg

where x is n×1, and A is n×n, then

28dae993-de2d-eb11-8da9-e4434bdf6706.svg (公式4)

证明:

由定义

2cdae993-de2d-eb11-8da9-e4434bdf6706.svg

即二次型遍历了矩阵所有元素,而元素的加权是下标对应的 2fdae993-de2d-eb11-8da9-e4434bdf6706.svg ,那么对元素 32dae993-de2d-eb11-8da9-e4434bdf6706.svg 求导

36dae993-de2d-eb11-8da9-e4434bdf6706.svg

对于k = 1, 2, ... , n,

38dae993-de2d-eb11-8da9-e4434bdf6706.svg

quod erat demonstrandum.


求导综合算例

证明最小二乘解,A is m×nx is n×1, b is m×1,

3adae993-de2d-eb11-8da9-e4434bdf6706.svg

3ddae993-de2d-eb11-8da9-e4434bdf6706.svg

Proof:

3fdae993-de2d-eb11-8da9-e4434bdf6706.svg

40dae993-de2d-eb11-8da9-e4434bdf6706.svg

上式中间两项相等(一个标量),那么求导得

42dae993-de2d-eb11-8da9-e4434bdf6706.svg (*)

上式等于0,得到

49dae993-de2d-eb11-8da9-e4434bdf6706.svg

两边转置得

4cdae993-de2d-eb11-8da9-e4434bdf6706.svg

得证。漏了一点, 58dae993-de2d-eb11-8da9-e4434bdf6706.svg 的二阶导数须5adae993-de2d-eb11-8da9-e4434bdf6706.svg才是最小值。那么式(*)的导数为(转置求导后再转置回来) aad9e993-de2d-eb11-8da9-e4434bdf6706.svg 是正定矩阵。


矩阵不是终点,张量才是。张量无疑需要更大的内存。无论是矩阵还是张量,有一类向量化操作(vectorization) , defining

65dae993-de2d-eb11-8da9-e4434bdf6706.svg

68dae993-de2d-eb11-8da9-e4434bdf6706.svg

with 6edae993-de2d-eb11-8da9-e4434bdf6706.svg , 73dae993-de2d-eb11-8da9-e4434bdf6706.svg ,and writing the problem in the form 77dae993-de2d-eb11-8da9-e4434bdf6706.svg ,where 7edae993-de2d-eb11-8da9-e4434bdf6706.svg is given by

d620fecf031b04368e314a64bd344ece.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值