当前位置: 首页 > news >正文

聊聊关于矩阵反向传播的梯度计算

目录

1. 前向传播

2. 反向传播

3. 矩阵反向传播

4. 总结


1. 前向传播

建立如图所示的简单网络

W 是权重矩阵,初始赋值为 2*2 的矩阵

X 是输入特征,初始赋值为 2*1 的矩阵

这样通过矩阵乘法 , Y = WX ,应该得到一个 2*1 的输出矩阵

最后定义loss 为二范数的平方,即 out = 0.22^2 + 0.26^2 = 0.116

 

代码演示为:

torch.norm 是计算矩阵范数的函数

 

2. 反向传播

反向传播的计算根据链式法则,这里不作数学上的推导。在计算图当中,只需要记住以下常用的即可:(注:需要注意的是,传递的值是反向传递过来的,还是正向传播输入的)

  • 加法节点:上游传回来的值直接传递到下游
  • 乘法节点:上游传回来的值,乘上输入信号的翻转值
  • Max 门:上游传来的值,只传递给输入信号的最大者,其余为0
  • ReLU : 如果输入信号大于 0,则上游直接传递;否则,为0

本章,只需要知道乘法节点计算图传递的规则即可

3. 矩阵反向传播

先将结果进行展示:

 

 


 

首先,Y 的梯度很容易计算,Y = [0.22 0.26](转置)

因为这里out 是二范数的平方,因此out = x1^2 + x2^2 ,对Y进行偏导的话,就是2倍的关系

 


 

对W和X进行计算的话,因为这里是乘法节点(W*X),因此这里需要将输入信号反转

例如求取W反向传播,应该是上游传递过来的和X的矩阵乘法 

这里只要记住反向传播的维度要和输入保持一致就行了

也就是说,目标是得到一个2*2大小的W反向传播,已经知道上游传过来的是一个2*1大小的矩阵,而将输入信号翻转的X是一个2*1大小的。那么根据矩阵乘法,只能是上游传递过来的 * X的转置

 

 


同样的道理,对X计算反向传播

目标是得到一个2*1大小的X反向传播,已经知道上游传过来的是一个2*1大小的矩阵,而将输入翻转的W是一个2*2大小的。那么根据矩阵乘法,只能是W的转置 * 上游传递过来的值

 

4. 总结

本章采用的是 W * X = Y 的方式计算。因为资料或者书籍上面有时候矩阵乘法的顺序会不一样,有的还会加上转置等等。其实这些都是为了满足矩阵乘法规则

为了不会混乱,可以这样记忆。可以不用考虑乘法的顺序或者有无转置

A * B = C 的矩阵乘法

计算谁的时候,就用反向传递的值替换掉谁,然后将另一个元素转置。顺序不变

例如:

W_{2*2} * X_{2*1} = Y_{2*1}

计算W梯度的时候,用反向传递的值替换掉W,变成 y * X(这里y是反向传递的值,本章y = 2 Y)

然后另一个元素转置,变成y * X(转置)

计算X梯度的时候,用反向传递的值替换掉X,变成 W * y(这里y是反向传递的值,本章y = 2 Y)

然后另一个元素转置,变成W(转置)* y

或者根据上游传递的信号的维度,和 输入信号翻转的维度进行矩阵计算,也可以得到正确的计算

相关文章:

  • 测试岗外包4年终上岸,这段日子说起来都是泪啊
  • linux secure boot(安全启动)下为内核模块签名
  • 解决数据兼容性问题
  • myBaits Target Capture Kits;myBaits 靶向捕获试剂盒,快速捕获富集目标序列
  • 百度、字节终于不再相互“抄袭”
  • 20230202英语学习
  • TypeScript类
  • this作用全解(全局this 、函数this、全局函数 this call apply bind……)
  • k8s核心资源ingress
  • 【MySQL】《狂飙》电视剧火了,如果程序一直狂飙,扛不住了,怎么办呢?
  • golang 协程关闭——谁敢说没踩过坑
  • 熵值法原理及python实现 附指标编制案例
  • Small RTOS51 学习笔记(10)Small RTOS51 的移植
  • CentOS7 LVM 逻辑卷2种读写策略(磁盘IO性能优化)—— 筑梦之路
  • 湫湫系列故事——减肥记Ⅰ(Python)
  • 分享158个ASP源码,总有一款适合您
  • 机器学习常见面试问题汇总
  • 低代码:让企业“活”起来,赋能企业数字转型
  • SAP IFRS 17 面向服务架构详细解析(包含分类账规则)
  • JavaWeb:过滤器与监听器
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉