矩阵求导与BP的证明的建议

前言

有些博客推导神经网络的BP时,涉及到多次矩阵求导运算,尤其是反向传播时候,求的梯度结果被转置了,比如假设最后一层的输出为

y=σ(wx+b)

那么
ywyx=σ(wx+b)xT=σ(wx+b)wT

这两个式子到底正确不正确,这个就涉及到矩阵求导了,转没转置这个对推导细节也是蛮重要的,接下来就看看我个人认为比较重要的矩阵求导式子,不定期更新。最后再证明这两个式子的正确性。其实先说一下结论,如果你强抠矩阵求导法则来证明这两个式子,它们是完全错误的。

【PS】我现在怀疑这个与CNN中的卷积核翻转有关系,但是一个是转置,一个是翻转,貌似运算结果也不一样,下一篇博客更新为什么CNN正传和反传的时候卷积核必须有一个翻转,另一个没翻转。

部分关键结论列举

行向量对列向量求导

Y n 维行向量, X p 维列向量,则

YX=y1x1y1xpynx1ynxp

列向量对行向量求导

Y m 维列向量,X是 q 维行向量,则

YX=y1x1ymx1y1xqymxq

行向量对行向量求导

Y m 维的行向量, X q 维的行向量,则

YX=[Yx1Yxq]

列向量对列向量求导

Y m 维的列向量, X q 维的列向量,则

YX=y1XymX

元素对矩阵的求导

y 是一个元素,X的一个 p×q 的矩阵,那么

yX=yx11yxp1yx1qyxpq

矩阵对行向量求导

Y m×n 的矩阵, X q 维行向量,那么

YX=[YxiYx2Yxq]

意思就是矩阵对向量中的每个元素单独求导,涉及矩阵对元素的求导

矩阵对列向量求导

Y m×n 的矩阵, X q 维列向量,那么

YX=y11Xym1Xy1nXymnX

涉及到元素对矩阵的求导

行向量对矩阵的求导

Y n 维行向量, X p×q 的矩阵,那么

YX=Yx11Yxp1Yx1qYxpq

列向量对矩阵求导

Y m 维列向量, X p×q 的矩阵,那么

YX=y1XymX

矩阵对矩阵求导

Y m×n 的矩阵, X p×q 的矩阵,那么

YX=[Yx1Yxq]=y1XymX=y1x1ymx1y1xqymxq

其实就是转换成向量对矩阵或者矩阵对向量的求导。

两个例子

矩阵对矩阵求导

Y=[adbecf] X=uvwxyz ,根据求导法则得到

YX=[abc]uvw[def]uvw[abc]xyz[def]xyz=auavawdudvdwbubvbweuevewcucvcwfufvfwaxayazdxdydzbxbybzexeyezcxcyczfxfyfz

表达式对矩阵求导

X=x1x2x3 n 维列向量, W=[w11x21w12x22w13x23] ,假设 F=(WX)T ,求 FX

FFX=(WX)T=[w11x1+w12x2+w13x3w21x1+w22x2+w23x3]=[f1f2]=[f1Xf2X]=f1x1f1x2f1x3f2x1f2x2f2x3=w11w12w13w21w22w23=WT

神经网络相关两个验证

前言中列了两个公式,关于结果是转置的原因,我们开证,先设置几个条件:

w 是权重矩阵, x 是列向量,表示输入样本。

W=[w11w21w12w22w13w23]X=x1x2x3

求证:
(WX)X=WT;(WX)W=XT;

第一个证明


C=WX=[w11x1+w12x2+w13x3w21x1+w22x2+w23x3]=[c1c2]

利用列向量对列向量的求导法则,可以得到
CX=c1Xc2X=c1x1c1x2c1x3c2x1c2x2c2x3=w11w12w13w21w22w23

所以说,第一个式子如果直接按照矩阵求导法则证明,是完全错误的。除非是

((WX)T)X=WT

第二个证明

不用证明了,如果 WX 结果是向量的话, (WX)W=XT 这个结论必定是错的,不论是依据行向量对矩阵求导还是列向量对矩阵求导,其结果矩阵不可能是 X 的维度大小,肯定大很多,不信你按照上面的矩阵运算法则自己推导。

然后我解释一下为什么 y=σ(wx+b) 能推到 yw=σ(wx+b)xT ,以下纯属个人见解:

其实这一部分推导时候不能用矩阵求导方法,而是直接拆分。

注意,权重大小是 j×i 而非 i×j ,表示的是输出到输入的连接权重,而非输入到输出的连接权重,这个从 W×x+b 而非 x×W+b 很容易理解到

随后证明流程如下:

yjyjwji=σ(iwjixi+bj)=σ(iwjixi+bj)xi=σjxi

然后我们将多个输出神经元 y 对权重的更新组合成矩阵和向量乘积的形式:
yW=y1w11y1wm1ynw1nynwmn=σ1x1σmx1σ1xnσmxn=σ1σm[x1xn]=σXT

个人觉得用矩阵求导证明BP有很多漏洞不好做,所以最好的方法是拆分开,按下标证明,即证 EWji 而非直接证明 EW

猜你喜欢

转载自blog.csdn.net/zb1165048017/article/details/80105310
今日推荐