5.7 误差反向传播法的实现
通过像组装乐高积木一样组装上一节中实现的层,可以构建神经网络。本节我们将通过组装已经实现的层来构建神经网络。
5.7.1 神经网络学习的全貌图
在进行具体的实现之前,我们再来确认一下神经网络学习的全貌图。神经网络学习的步骤如下所示。
前提
神经网络中有合适的权重和偏置,调整权重和偏置以便拟合训练数据的过程称为学习。神经网络的学习分为下面 4 个步骤。
步骤 1(mini-batch)
从训练数据中随机选择一部分数据。
步骤 2(计算梯度)
计算损失函数关于各个权重参数的梯度。
步骤 3(更新参数)
将权重参数沿梯度方向进行微小的更新。
步骤 4(重复)
重复步骤 1、步骤 2、步骤 3。
之前介绍的误差反向传播法会在步骤 2 中出现。上一章中,我们利用数值微分求得了这个梯度。数值微分虽然实现简单,但是计算要耗费较多的时间。和需要花费较多时间的数值微分不同,误差反向传播法可以快速高效地计算梯度。
5.7.2 对应误差反向传播法的神经网络的实现
现在来进行神经网络的实现。这里我们要把2层神经网络实现为TwoLayerNet。首先,将这个类的实例变量和方法整理成表 5-1 和表 5-2。
表 5-1 TwoLayerNet类的实例变量
| 实例变量 | 说明 |
|---|---|
params
| 保存神经网络的参数的字典型变量。 |
