机器学习中的矩阵求导的问题

机器学习中的线性代数之矩阵求导_Vinicier的博客-CSDN博客_矩阵求导

主要参考了上述博文,不过越看越懵,有没有大佬帮我答疑解惑一些,非常感激~

在矩阵求导中有两种布局,分别为分母布局(denominator layout)和分子布局(numerator layout)

分子布局,就是分子是列向量形式,分母是行向量形式,分子的行决定结果的行,分母的列决定结果的列。

分母布局,就是分子是行向量形式,分母是列向量形式,分母的行决定结果的行,分子的列决定结果的列。

问题:什么时候用分子布局?什么时候用分母布局?

矛盾:标量对向量的求导在理论和计算中存在矛盾

理论1:标量关于向量中的每个元素求导后,结果按列排布

扫描二维码关注公众号,回复: 17274134 查看本文章

计算1:实际计算分析中,标量关于向量中的元素求导后,结果按行排布。

          \alpha^{T} =\begin{bmatrix} a_{1}& a_{2}& ...& a_{n} \end{bmatrix}               X=\begin{bmatrix} x_{1}\\ x_{2}\\ ...\\ x_{n} \end{bmatrix}

\alpha^{T}X=a_{1}x_{1}+a_{2}x_{2}+...+a_{n}x_{n}

\frac{\partial \alpha^{T}X}{X}=\begin{bmatrix} a_{1} \\ a_{2}\\ ...\\ a_{n} \end{bmatrix}=\alpha

理论2:理论规定计算中是以分子布局确定结果

计算2:将标量推广到向量关于向量的导数,具体计算分析是按照分母布局的形式

X=\begin{bmatrix} x_{1}\\ x_{2}\\ ...\\ x_{n} \end{bmatrix}

A=\begin{bmatrix} a_{11}& a_{12} & ... & a_{1n} \\ a_{21}& a_{22}& ... & a_{2n}\\ ..& ... & ... & ...\\ a_{m1} & a_{m2}&... & a_{mn} \end{bmatrix}

A_{1,:}X=a_{11}x_{1}+a_{12}x_{2}+...+a_{1n}x_{n}

\frac{\partial A_{1,:}X}{X}=\begin{bmatrix} \frac{\partial A_{1}X}{x_{1}}\\ \frac{\partial A_{1}X}{x_{2}}\\ ...\\ \frac{\partial A_{1}X}{x_{n}} \end{bmatrix}=\begin{bmatrix} a_{11}\\ a_{12} \\ ...\\a_{1n} \end{bmatrix}

\frac{\partial AX}{X}=A^{T}

应用:pytorch中的自动求导

Pytorch中的自动求导函数backward()所需参数含义 - 不愿透漏姓名的王建森 - 博客园 (cnblogs.com)

推荐上述参考文献

个人理解:

out.backward()

代表的含义是结果关于各层的的后向求导结果

向量对向量的求导

参考文献:

向量,标量对向量求导数_心雨心辰的博客-CSDN博客_标量对向量求导

二次型梯度_benqbo的博客-CSDN博客_二次型的梯度

(1条消息) 矩阵和向量的求导法则_Icoding_F2014的博客-CSDN博客_矩阵对向量求导

向量的L2范数求导 - nowgood - 博客园 (cnblogs.com)

矩阵求导的本质与分子布局、分母布局的本质(矩阵求导——本质篇) - 知乎 (zhihu.com)

猜你喜欢

转载自blog.csdn.net/MOZHOUH/article/details/125861651