注:参考于《深度学习入门 | 基于Python的理论与实现》
一、Affine层
神经网络中矩阵的乘积运算中对应维度的元素个数要保持一致,X和W 的乘积必须使对应维度的元素个数一致。
神经网络的正向传播中进行的矩阵的乘积运算在几何学领域被称为“仿射变换”A
。因此,这里将进行仿射变换的处理实现为“Affine层”。
按矩阵的各个元素进行计算时,步骤和以标量为对象的计算图相同。
以矩阵为对象的反向传播, 按矩阵的各个元素进行计算时,步骤和以标量为对象的计算图相同
考虑
N 个数据一起进行正向传播的情况,也就是批版本的Affi ne
层。
反向传播时,要注意矩阵的形状
二、Softmax-with-loss层
Softmax-with-loss层就是
Softmax函数和交叉熵误差
![](https://i-blog.csdnimg.cn/blog_migrate/6d9e46b93a4a836604524bc913ef2368.png)
Softmax
层的反向传播得到了 (
y
1
−
t
1
, y
2
−
t
2
, y
3
−
t
3
)这样“漂亮”的结果。由于(
y
1
, y
2
, y
3
)是
Softmax
层的 输出,(
t
1
, t
2
, t
3
)是监督数据,所以(
y
1
−
t
1
, y
2
−
t
2
, y
3
−
t
3
)是
Softmax
层的输
出和教师标签的差分。神经网络的反向传播会把这个差分表示的误差传递给前面的层