注 : 本 文 内 容 已 解 决 , 详 见 : \textcolor{red}{注:本文内容已解决,详见: } 注:本文内容已解决,详见:
https://blog.csdn.net/lgl123ok/article/details/121823906
1. 问题
如何求下列表达式中的未知参数W?求偏导?
min
F
(
W
)
=
min
w
∥
(
X
W
∘
D
˘
)
B
∥
F
2
(0)
\min F(W)=\min_w \|(XW \circ \breve{D})B\|_F^2 \tag{0}
minF(W)=wmin∥(XW∘D˘)B∥F2(0)
其中
只
有
W
是
未
知
参
数
\textcolor{red}{只有W是未知参数}
只有W是未知参数,且
X
∈
R
n
×
m
,
W
∈
R
m
×
c
,
D
˘
∈
R
n
×
c
,
B
∈
R
c
×
c
X \in R^{n \times m}, W \in R^{m \times c}, \breve{D} \in R^{n \times c}, B \in R^{c \times c}
X∈Rn×m,W∈Rm×c,D˘∈Rn×c,B∈Rc×c
同时
∘
\circ
∘ 表示 Hadamard积,即矩阵按位乘(matlab的点乘)。
经知乎 长躯鬼侠 大神指导,先将 结 论 \textcolor{red}{结论} 结论放这,过程后面再来研究下:
∂ F ∂ W = X T ( 2 S B B T ∘ D ˘ ) = X T ( 2 ( X W ∘ D ˘ ) B B T ∘ 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} ) ∂W∂F=XT(2SBBT∘D˘)=XT(2(XW∘D˘)BBT∘D˘)
2. 我的推导方法
令
S
=
X
W
∘
D
˘
S=XW \circ \breve{D}
S=XW∘D˘,则
F
(
W
)
=
∥
(
X
W
∘
D
˘
)
B
∥
F
2
=
∥
S
B
∥
F
2
=
t
r
(
S
B
B
T
S
T
)
(1)
F(W)=\|(XW \circ \breve{D})B\|_F^2 \\ = \|SB\|_F^2 \\ =tr(SBB^TS^T) \tag{1}
F(W)=∥(XW∘D˘)B∥F2=∥SB∥F2=tr(SBBTST)(1)
由于有
∂
t
r
(
X
B
X
T
)
∂
X
=
X
B
T
+
X
B
,
(2)
\frac{\partial{tr(XBX^T)}}{\partial{X}}=XB^T + XB \tag{2},
∂X∂tr(XBXT)=XBT+XB,(2)
所以
∂
F
∂
S
=
S
B
B
T
+
S
B
B
T
=
2
S
B
B
T
(3)
\frac{\partial{F}}{\partial{S}}=SBB^T + SBB^T=2SBB^T \tag{3}
∂S∂F=SBBT+SBBT=2SBBT(3)
∂
S
∂
W
=
∂
(
X
W
∘
D
˘
)
∂
W
=
∂
(
X
W
)
∘
D
˘
+
(
X
W
)
∘
∂
D
˘
∂
W
=
∂
(
X
W
)
∘
D
˘
+
0
∂
W
=
(
∂
(
X
)
W
+
X
∂
W
)
∘
D
˘
∂
W
=
(
0
+
X
∂
W
)
∘
D
˘
∂
W
=
(
X
E
)
∘
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}
∂W∂S=∂W∂(XW∘D˘)=∂W∂(XW)∘D˘+(XW)∘∂D˘=∂W∂(XW)∘D˘+0=∂W(∂(X)W+X∂W)∘D˘=∂W(0+X∂W)∘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}
∂W∂F=∂W∂S∂S∂F(5)
先假设有把,那:
∂
F
∂
W
=
∂
S
∂
W
∂
F
∂
S
=
2
(
X
E
)
∘
D
˘
S
B
B
T
=
2
(
X
E
)
∘
D
˘
(
X
W
∘
D
˘
)
B
B
T
(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}
∂W∂F=∂W∂S∂S∂F=2(XE)∘D˘SBBT=2(XE)∘D˘(XW∘D˘)BBT(6)
推 导 好 像 不 正 确 ? , 没 法 乘 , 式 6 第 2 个 X 前 矩 阵 是 n × c 的 矩 阵 , 之 后 的 也 是 , 没 法 乘 到 一 起 ! \textcolor{red}{推导好像不正确?, 没法乘,式6第2个X前矩阵是 n \times c 的矩阵,之后的也是,没法乘到一起!} 推导好像不正确?,没法乘,式6第2个X前矩阵是n×c的矩阵,之后的也是,没法乘到一起!
或者猜测下:
式4应改写为:
∂
S
∂
W
=
∂
(
X
W
∘
D
˘
)
∂
W
=
∂
(
X
W
)
∘
D
˘
+
(
X
W
)
∘
∂
D
˘
∂
W
=
∂
(
X
W
)
∘
D
˘
+
0
∂
W
=
(
∂
(
X
)
W
+
X
∂
W
)
∘
D
˘
∂
W
=
(
0
+
X
∂
W
)
∘
D
˘
∂
W
=
(
X
T
E
)
∘
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}}
∂W∂S=∂W∂(XW∘D˘)=∂W∂(XW)∘D˘+(XW)∘∂D˘=∂W∂(XW)∘D˘+0=∂W(∂(X)W+X∂W)∘D˘=∂W(0+X∂W)∘D˘=(XTE)∘D˘
然后式6改为
∂
F
∂
W
=
∂
S
∂
W
∂
F
∂
S
=
2
(
X
T
(
X
W
∘
D
˘
)
B
B
T
)
∘
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}
∂W∂F=∂W∂S∂S∂F=2(XT(XW∘D˘)BBT)∘D˘(7)
下面内容暂时忽略,后面再来研究
3. Q老师的推导思路
F ( W ) = ∥ ( X W ∘ D ˘ ) B ∥ F 2 F(W)=\|(XW \circ \breve{D})B\|_F^2 F(W)=∥(XW∘D˘)B∥F2 ∂ F ∂ W = 2 ( X W ∘ D ˘ ) B ∂ [ ( X W ∘ 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} ∂W∂F=2(XW∘D˘)B∂W∂[(XW∘D˘)B](7)
∂ [ ( X W ∘ D ˘ ) B ] ∂ W = ∂ ( X W ∘ D ˘ ) B + 0 ∂ W = [ ∂ ( X W ) ∘ D ˘ ] B ∂ W = [ X ∂ ( W ) ∘ D ˘ ] B ∂ W = X E ∘ 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∂[(XW∘D˘)B]=∂W∂(XW∘D˘)B+0=∂W[∂(XW)∘D˘]B=∂W[X∂(W)∘D˘]B=XE∘D˘B(8)
∂ F ∂ W = 2 ( X W ∘ D ˘ ) B X E ∘ D ˘ B (9) \frac{\partial{F}}{\partial{W}}=2 (XW \circ \breve{D})B XE\circ \breve{D}B \tag{9} ∂W∂F=2(XW∘D˘)BXE∘D˘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).6式和9式看着都是推导正确的,为什么不一致?哪一个才是正确的?(2).6式和9式都存在无法运算的问题,即第2个X前是n×c,后面也是n×c。这是啥情况呢,哪儿错了?