矩阵求导——只需要记住这个诀窍

矩阵求导——只需要记住这个诀窍矩阵求导 只需要记住这个诀窍 1 背景 2 正文开始 2 1 矩阵对矩阵的求导 1 背景 最近开始入门 ml amp amp dl amp amp nn 第一个问题就是解决我的数学饥荒问题 还好所看教材书后有干货数学知识 优化了学习的进程 这里打个广告 所看教材为复旦的邱锡鹏老师编纂的 神经网络与深度学习 想看的同学可以微信搜索公众号 CVer 找历史推送下载 非利益相关 然后 本

1. 背景:

2. 正文开始

首先,按照博主的分类,所有的情况都可以暴力归结为以下三个问题:

  1. 矩阵矩阵求导
  2. 行向量列向量的求导
  3. 元素元素的求导

当然大家可以有自己的记忆法则和分类,这里我只介绍我觉得好使的方法

2.1 矩阵对矩阵的求导

为什么一上来就讲这么复杂的问题呢?相必大家在学习的时候有这样的体会,尤其是在学习一种模型的时候:总的来说有两种方法,即一般到特殊或特殊到一般,至于具体选择哪一个,就要看这个模型的特性了。例如对于已经学过线性代数的同学,反正国内大部分学校都是先讲矩阵再讲向量,但我们知道向量其实是可以视为 1 × n 1×n 1×n 或者 n × 1 n×1 n×1 的矩阵,它是一种特殊的矩阵。之所以先讲矩阵,是因为矩阵这个数学模型有非常良好的性质,这些性质方便学者们记忆并灵活使用。当学习完矩阵后,向量这个子类完全可以套用矩阵所具有的性质(在一定条件下),所以根据这种思路,我想直接讲矩阵的矩阵的求导

∂ Y ∂ X = [ ∂ y 1 T ∂ x 1 ⋯ ∂ y 1 T ∂ x q ⋮ ⋱ ⋮ ∂ y m T ∂ x 1 ⋯ ∂ y m T ∂ x q ] \frac{\partial {\bm{Y}}}{\partial{\bm{X}}} = \left[ \begin{matrix} \frac{\partial {\bm{y_1^T}}}{\partial{\bm{x_1}}} & \cdots & \frac{\partial {\bm{y_1^T}}}{\partial{\bm{x_q}}} \\ \vdots & \ddots & \vdots \\ \frac{\partial {\bm{y_m^T}}}{\partial{\bm{x_1}}} & \cdots & \frac{\partial {\bm{y_m^T}}}{\partial{\bm{x_q}}} \\ \end{matrix} \right] XY=x1y1Tx1ymTxqy1TxqymT

故,矩阵对矩阵求导,第一步就是要化成 m × q m×q m×q 的大矩阵,其中第 i i i 行第 j j j 列的元素为 ∂ y i T ∂ x j \frac{\partial {\bm{y_i^T}}}{\partial{\bm{x_j}}} xjyiT,可知这是一个行向量对一个列向量进行求导。

2.2 行向量对列向量的求导

2.3 元素对元素的求导

这个没有什么可说的了,就是微积分的知识。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232274.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号