在训练深度和浅层神经网络时,为什么通常使用梯度方法(例如梯度下降、Nesterov、Newton-Raphson),而不是其他元启发式方法?
我所说的元启发式是指模拟退火、蚁群优化等方法,这些方法是为了避免陷入局部最小值而开发的。
在训练深度和浅层神经网络时,为什么通常使用梯度方法(例如梯度下降、Nesterov、Newton-Raphson),而不是其他元启发式方法?
我所说的元启发式是指模拟退火、蚁群优化等方法,这些方法是为了避免陷入局部最小值而开发的。
对于神经网络,局部最小值并不像通常建议的那样严重。一些局部最小值是由于网络的对称性(即您可以置换隐藏的神经元并离开函数网络不变。所需要的只是找到一个好的局部最小值,而不是全局最小值。积极优化一个非常灵活的模型(例如神经网络)可能会导致数据过拟合,因此使用模拟退火来找到训练标准的全局最小值可能会给神经网络带来更差的结果。泛化性能优于通过梯度下降训练的最终达到局部最小值的泛化性能。如果使用这些启发式优化方法,那么我建议包括一个正则化项来限制模型的复杂性。
...或者替代地使用例如核方法或径向基函数模型,这可能不太麻烦。
扩展@Dikran Marsupial 的答案....
纽约大学 Yan LeCunn 小组的 Anna Choromanska 和她的同事在他们 2014 年的 AISTATS 论文“多层网络的损失面”中解决了这个问题。他们使用随机矩阵理论以及一些实验,认为:
对于大型网络,大多数局部最小值是等效的,并且在测试集上产生相似的性能。
对于小型网络,找到“坏”(高值)局部最小值的概率不为零,并且随着网络规模的增大而迅速降低。
努力在训练集上找到全局最小值(而不是许多好的局部最小值之一)在实践中没有用,并且可能导致过度拟合。
[来自论文的第 2 页]
根据这种观点,没有充分的理由部署重量级方法来寻找全局最小值。那段时间最好花在尝试新的网络拓扑、功能、数据集等上。
也就是说,很多人都考虑过增加或替换 SGD。对于相当小的网络(按照当代标准),这些改进的元数据似乎确实起到了一些作用,Mavrovouniotis 和 Yang (2016)表明,蚁群优化 + 反向传播在几个基准数据集上击败了未修改的反向传播(尽管幅度不大)。雷雷艾尔。(2015)使用模拟退火来训练 CNN,并发现它最初在验证集上表现更好。然而,在 10 个 epoch 之后,性能上只剩下非常小的(且未经测试的显着性)差异。每个时期更快的收敛优势也被每个时期显着增加的计算时间所抵消,因此这对于模拟退火来说并不是一个明显的胜利。
这些启发式方法可能在初始化网络方面做得更好,一旦它指向正确的路径,任何优化器都可以。Sutskever 等人。Geoff Hinton 小组的(2013 年)在他们2013 年的 ICML 论文中提出了类似的观点。