摘要
神经网络训练依赖于找到“好的(good)”非凸损失函数的极小值。众所周知,某些网络架构设计(例如 skip connections)产生的损失函数会更容易训练,而且精心选择训练参数(batch size、学习率和优化器)产生的极小值会泛化的更好。然而,对于这些差异的原因,以及它们对潜在损失曲面的影响,仍然无法很好地解释。本文使用了一系列可视化方法,研究了神经网络损失函数的结构,以及损失曲面对泛化能力的影响。首先,本文介绍了一种简单的“filter normalization”方法来可视化损失函数的曲面并在损失函数之间进行有意义的并列比较。之后,本文使用多种可视化方法研究了网络架构如何影响损失曲面,以及训练参数如何影响极值点(“minimizers”)的形状。
1 引言
尽管对于一般网络的损失函数的训练是NP难度的[2_TrainNNIsNP],简单的基于梯度的方法常常可以找到全局的最优解(使训练损失为0或接近于0的参数),甚至在数据和标签在训练前被随机化的情况下[42_UnderstandDLGeneralization]。然而,这种良好的表现并不是广泛存在的;神经网络的收敛性与网络架构设计、优化器选择和参数初始化以及多种其它设置息息相关。不过,其中的每个选择对于潜在损失曲面的影响仍然不清楚。由于损失函数评测的成本过高(需要遍历训练集中所有的数据点),此领域的研究仍主要是理论性的。