读书笔记 | 《深度学习入门:基于Python的理论与实现》| (3)
1. 简介
高效计算 权重参数的梯度 的方法 -> 误差反向传播法
2. 计算图
其中,苹果每个100日元,橘子每个150日元。
消费税是10%,请计算支付金额。
和流水线作业一样,
将局部计算的结果传递给下一个节点。
通过 计算图的反向传播 求导数
3. 链式法则
则该 复合函数 的导数
可用构成复合函数的各个函数
的导数的乘积表示 复合函数求导-》层层求导,外层×内层 反向传播 基于 链式法则
4. 反向传播
反向传播 基于 链式法则
乘法的反向传播会乘以输入信号的翻转值,
所以
各自可按
1.3 × 5 = 6.5、1.3 × 10 = 13
计算。
由图可知
苹果的价格的导数是2.2
苹果的个数的导数是110
消费税的导数是200
注意:中间有 加法运算
5. 简单层的实现
把要实现的计算图的
乘法节点称为“乘法层”(MulLayer),
加法节点称为“加法层”(AddLayer)
6. 激活函数层的实现
若正向传播时的输入x大于0,
则反向传播会将上游的值原封不动地传给下游 若正向传播时的x小于等于0,
则反向传播中传给下游的信号将停在此处
反传时,将上游值 乘以 -y^2
(正向传播的输出的平方 乘以 -1 后的值)后的值,
再传给下游
因此,这里要乘以−1
7. Affine/Softmax层的实现
矩阵为对象的反向传播:
计算图的反向传播:
Q&A
补充
参考
感谢帮助!
《深度学习入门:基于Python的理论与实现》[日]斋藤康毅 著、 陆宇杰 译
2.1 用计算图求解
问题1

问题2
太郎在超市买了2个苹果、3个橘子。其中,苹果每个100日元,橘子每个150日元。
消费税是10%,请计算支付金额。

计算图解题 流程
1 | 1.构建计算图 |
2.2 局部计算
各个节点处只需进行与自己有关的计算 计算图将复杂的计算 分割成简单的 局部计算,和流水线作业一样,
将局部计算的结果传递给下一个节点。
2.3 为何用计算图解题
使用计算图最大的原因是, 可以通过反向传播高效计算导数 苹果价格 的上涨 会在多大程度上 影响 最终的 支付金额 ? 求“支付金额关于苹果的价格的导数”


3.1 计算图的反向传播

3.2 什么是链式法则
链式法则 是 关于 复合函数 导数的性质 若 某函数 由 复合函数表示,则该 复合函数 的导数
可用构成复合函数的各个函数
的导数的乘积表示 复合函数求导-》层层求导,外层×内层 反向传播 基于 链式法则
3.3 链式法则和计算图


4.1 加法节点的反向传播



4.2 乘法节点的反向传播


所以
各自可按
1.3 × 5 = 6.5、1.3 × 10 = 13
计算。
4.3 苹果的例子
此问题 相当于 求:-
支付金额关于苹果的价格的导数
支付金额关于苹果的个数的导数
支付金额关于消费税的导数
用计算图 反向传播 实现 求导


练习:购买苹果和橘子

乘法节点称为“乘法层”(MulLayer),
加法节点称为“加法层”(AddLayer)

5.1 乘法层的实现



5.2 加法层的实现



6.1 ReLU层
ReLU(Rectified Linear Unit)

则反向传播会将上游的值原封不动地传给下游 若正向传播时的x小于等于0,
则反向传播中传给下游的信号将停在此处




6.2 Sigmoid层

计算图

反向传播 流程
步骤1


(正向传播的输出的平方 乘以 -1 后的值)后的值,
再传给下游

步骤2

步骤3


步骤4
“×”节点将正向传播时的值翻转后做乘法运算。因此,这里要乘以−1

Sigmoid层的计算图




7.1 Affine层



-
几何中,仿射变换包括一次线性变换和一次平移,分别对应神经网络的加权和运算与加偏置运算。





