看看这个矩阵求导是否正确呢?

博客探讨了如何求解表达式 (min_w|(XWcircreve{D}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:本文内容已解决,详见:\textcolor{red}{注:本文内容已解决,详见: }

https://blog.youkuaiyun.com/lgl123ok/article/details/121823906




1. 问题

如何求下列表达式中的未知参数W?求偏导?
min⁡F(W)=min⁡w∥(XW∘D˘)B∥F2(0) \min F(W)=\min_w \|(XW \circ \breve{D})B\|_F^2 \tag{0} minF(W)=wmin(XWD˘)BF2(0)
其中 只有W是未知参数\textcolor{red}{只有W是未知参数}W,且X∈Rn×m,W∈Rm×c,D˘∈Rn×c,B∈Rc×cX \in R^{n \times m}, W \in R^{m \times c}, \breve{D} \in R^{n \times c}, B \in R^{c \times c}XRn×m,WRm×c,D˘Rn×c,BRc×c
同时∘\circ 表示 Hadamard积,即矩阵按位乘(matlab的点乘)。


经知乎 长躯鬼侠 大神指导,先将结论\textcolor{red}{结论}放这,过程后面再来研究下:

∂F∂W=XT(2SBBT∘D˘)=XT(2(XW∘D˘)BBT∘D˘) \frac{\partial{F}}{\partial{W}}=X^T(2SBB^T\circ \breve{D} )=X^T(2(XW \circ \breve{D})BB^T\circ \breve{D} ) WF=XT(2SBBTD˘)=XT(2(XWD˘)BBTD˘)


2. 我的推导方法

S=XW∘D˘S=XW \circ \breve{D}S=XWD˘,则
F(W)=∥(XW∘D˘)B∥F2=∥SB∥F2=tr(SBBTST)(1) F(W)=\|(XW \circ \breve{D})B\|_F^2 \\ = \|SB\|_F^2 \\ =tr(SBB^TS^T) \tag{1} F(W)=(XWD˘)BF2=SBF2=tr(SBBTST)(1)
由于有∂tr(XBXT)∂X=XBT+XB,(2)\frac{\partial{tr(XBX^T)}}{\partial{X}}=XB^T + XB \tag{2}, Xtr(XBXT)=XBT+XB(2)
所以
∂F∂S=SBBT+SBBT=2SBBT(3) \frac{\partial{F}}{\partial{S}}=SBB^T + SBB^T=2SBB^T \tag{3} SF=SBBT+SBBT=2SBBT(3)
∂S∂W=∂(XW∘D˘)∂W=∂(XW)∘D˘+(XW)∘∂D˘∂W=∂(XW)∘D˘+0∂W=(∂(X)W+X∂W)∘D˘∂W=(0+X∂W)∘D˘∂W=(XE)∘D˘(4) \frac{\partial{S}}{\partial{W}}=\frac{\partial{(XW \circ \breve{D})}}{\partial{W}} \\ = \frac{\partial{(XW )\circ \breve{D} +(XW )\circ \partial{\breve{D}}}}{\partial{W}} \\ = \frac{\partial{(XW )\circ \breve{D} +0}}{\partial{W}} \\ =\frac{(\partial{(X)W +X\partial{W})\circ \breve{D}}}{\partial{W}} \\ =\frac{(0 +X\partial{W})\circ \breve{D}}{\partial{W}} \\ =\textcolor{red}{(XE)\circ \breve{D}} \tag{4} WS=W(XWD˘)=W(XW)D˘+(XW)D˘=W(XW)D˘+0=W((X)W+XW)D˘=W(0+XW)D˘=(XE)D˘(4)
式4标红部分可能有大问题,但是不知道咋解决。

在矩阵导数这块,好像有下面这个式子?\textcolor{red}{在矩阵导数这块,好像有下面这个式子?}
∂F∂W=∂S∂W∂F∂S(5) \frac{\partial{F}}{\partial{W}}=\frac{\partial{S}}{\partial{W}} \frac{\partial{F}}{\partial{S}} \tag{5} WF=WSSF(5)
先假设有把,那:
∂F∂W=∂S∂W∂F∂S=2(XE)∘D˘SBBT=2(XE)∘D˘(XW∘D˘)BBT(6) \frac{\partial{F}}{\partial{W}}=\frac{\partial{S}}{\partial{W}} \frac{\partial{F}}{\partial{S}} \\ =2(XE)\circ \breve{D} SBB^T\\ =2(XE)\circ \breve{D}(XW \circ \breve{D})BB^T \tag{6} WF=WSSF=2(XE)D˘SBBT=2(XE)D˘(XWD˘)BBT(6)

推导好像不正确?,没法乘,式6第2个X前矩阵是n×c的矩阵,之后的也是,没法乘到一起!\textcolor{red}{推导好像不正确?, 没法乘,式6第2个X前矩阵是 n \times c 的矩阵,之后的也是,没法乘到一起!}?62Xn×c

或者猜测下:
式4应改写为:
∂S∂W=∂(XW∘D˘)∂W=∂(XW)∘D˘+(XW)∘∂D˘∂W=∂(XW)∘D˘+0∂W=(∂(X)W+X∂W)∘D˘∂W=(0+X∂W)∘D˘∂W=(XTE)∘D˘ \frac{\partial{S}}{\partial{W}}=\frac{\partial{(XW \circ \breve{D})}}{\partial{W}} \\ = \frac{\partial{(XW )\circ \breve{D} +(XW )\circ \partial{\breve{D}}}}{\partial{W}} \\ = \frac{\partial{(XW )\circ \breve{D} +0}}{\partial{W}} \\ =\frac{(\partial{(X)W +X\partial{W})\circ \breve{D}}}{\partial{W}} \\ =\frac{(0 +X\partial{W})\circ \breve{D}}{\partial{W}} \\ =\textcolor{red}{(X^TE)\circ \breve{D}} WS=W(XWD˘)=W(XW)D˘+(XW)D˘=W(XW)D˘+0=W((X)W+XW)D˘=W(0+XW)D˘=(XTE)D˘
然后式6改为
∂F∂W=∂S∂W∂F∂S=2(XT(XW∘D˘)BBT)∘D˘(7) \frac{\partial{F}}{\partial{W}}=\frac{\partial{S}}{\partial{W}} \frac{\partial{F}}{\partial{S}} \\ =2(X^T(XW \circ \breve{D})BB^T)\circ \breve{D} \tag{7} WF=WSSF=2(XT(XWD˘)BBT)D˘(7)


下面内容暂时忽略,后面再来研究


3. Q老师的推导思路

F(W)=∥(XW∘D˘)B∥F2 F(W)=\|(XW \circ \breve{D})B\|_F^2 F(W)=(XWD˘)BF2∂F∂W=2(XW∘D˘)B∂[(XW∘D˘)B]∂W(7) \frac{\partial{F}}{\partial{W}}= 2 (XW \circ \breve{D})B \frac{\partial{[(XW \circ \breve{D})B]}}{\partial{W}} \tag{7} WF=2(XWD˘)BW[(XWD˘)B](7)

∂[(XW∘D˘)B]∂W=∂(XW∘D˘)B+0∂W=[∂(XW)∘D˘]B∂W=[X∂(W)∘D˘]B∂W=XE∘D˘B(8) \frac{\partial{[(XW \circ \breve{D})B]}}{\partial{W}}=\frac{\partial{(XW \circ \breve{D})B+0}}{\partial{W}} \\ =\frac{[\partial{(XW) }\circ \breve{D}]B}{\partial{W}} \\ =\frac{[X\partial{(W) }\circ \breve{D}]B}{\partial{W}} \\ =XE\circ \breve{D}B \tag{8} W[(XWD˘)B]=W(XWD˘)B+0=W[(XW)D˘]B=W[X(W)D˘]B=XED˘B(8)

∂F∂W=2(XW∘D˘)BXE∘D˘B(9) \frac{\partial{F}}{\partial{W}}=2 (XW \circ \breve{D})B XE\circ \breve{D}B \tag{9} WF=2(XWD˘)BXED˘B(9)

新的问题:(1).6式和9式看着都是推导正确的,为什么不一致?哪一个才是正确的?(2).6式和9式都存在无法运算的问题,即第2个X前是n×c,后面也是n×c。这是啥情况呢,哪儿错了?\textcolor{red}{新的问题:\\ (1). 6式和9式看着都是推导正确的,为什么不一致?哪一个才是正确的? \\ (2). 6式和9式都存在无法运算的问题,即第2个X前是n \times c, 后面也是n \times c。 这是啥情况呢,哪儿错了? \\ }(1).69(2).692Xn×c,n×c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值