
6.5 超参数的验证
195
通过进行集成学习,神经网络的识别精度可以提高好几个百分点。
这个集成学习与Dropout有密切的关系。这是因为可以将Dropout
理解为,通过在学习过程中随机删除神经元,从而每一次都让不同
的模型进行学习。并且,推理时,通过对神经元的输出乘以删除比
例(比如,0.5 等),可以取得模型的平均值。也就是说,可以理解成,
Dropout将集成学习的效果(模拟地)通过一个网络实现了。
6.5
超参数的验证
神经网络中,除了权重和偏置等参数,超参数(
hyper-parameter
)也 经
常出现。这里所说的超参数是指,比如各层的神经元数量、
batch
大小、参
数更新时的学习率或权值衰减等。如果这些超参数没有设置合适的值,模型
的性能就会很差。虽然超参数的取值非常重要,但是在决定超参数的过程中
一般会伴随很多的试错。本节将介绍尽可能高效地寻找超参数的值的方法。
6.5.1
验证数据
之前我们使用的数据集分成了训练数据和测试数据,训练数据用于学习,
测试数据用于评估泛化能力。由此,就可以评估是否只过度拟合了训练数据
(是否发生了过拟合),以及泛化能力如何等。
下面我们要对超参数设置各种各样的值以进行验证。这里要注意的是,
不能使用测试数据评估超参数的性能。这一点非常重要,但也容易被忽视。
为什么不能用测试数据评估超参数的性能呢?这是因为如果使用测试数
据调整超参数,超参数的值会对测试数据发生过拟合。换句话说,用测试数
据确认超参数的值的“好坏”,就会导致超参数的值被调整为只拟合测试数据。
这样的话,可能就会得到不能拟合其他数据、泛化能力低的模型。 ...