基于梯度的学习算法与神经网络的全局优化学习算法

机器算法验证 神经网络 优化 梯度下降 遗传算法
2022-03-24 06:14:00

神经网络通常使用基于梯度的学习算法进行训练,例如反向传播算法或其一些变体,但您可以使用全局优化算法,例如遗传算法、Nelder-Mead 多面体算法和粒子群优化算法来训练网络?

由于训练神经网络归结为最小化多变量成本函数,我认为使用全局优化方法应该很容易做到这一点,但我自己尝试过,但我得到了非常糟糕的结果.

GA 算法将我的成本函数从大约 250(当它输入随机突触权重时)减少到仅大约 170。Nelder-Mead 算法显然需要数年时间,我还没有尝试过 PSO,因为没有内置的 MATLAB 函数为了它。

那么,基于梯度的算法最适合训练神经网络是不是就被接受了?如果是这样,有人可以向我指出此信息的来源吗?这将非常有帮助,因为我可以参考项目中的源代码来解释为什么我放弃尝试使用全局优化方法来训练网络。

谢谢!

3个回答

阅读您的问题,我了解您认为“全局优化方法”总是提供全局最优值,无论您正在处理什么功能。这种想法是非常错误的。首先,其中一些算法确实给出了全局最优值,但实际上对于大多数函数,它们并没有……而且不要忘记没有免费的午餐定理。

某些类型的函数很容易优化(例如凸函数),但大多数时候,特别是对于神经网络训练标准,你有:非线性 - 非凸性(即使对于简单的网络,情况并非如此)。 ..这些是非常讨厌的优化功能(主要是因为它们具有病态曲率)。那么为什么要渐变呢?因为一阶方法具有良好的属性,尤其是它们是可扩展的。为什么不是高阶?无法应用牛顿法,因为您有太多参数,因此您不能希望有效地反转 Hessian 矩阵。

所以有很多基于二阶方法的变体,但只依赖于一阶计算:hessian free optimization、Nesterov gradient、moment method等......

所以,是的,一阶方法和近似二阶方法是我们目前能做的最好的,因为其他一切都不能很好地工作。

我建议了解更多细节:Y. Bengio 的“Learning deep architectures for AI”。这本书:“神经网络:行业技巧”和 Ilya Sutskever 博士论文。

我自己也有类似的问题,并尝试以与上面的密集数学分析略有不同的视角来推理梯度下降比 GA 的优势 -

“神经网络”的最佳用例之一是它们具有从层次结构中学习的固有优势。这对于 MLP、ConvNet 或 RNN 来说是正确的。神经网络的这一特性使我们能够进行“迁移学习”,其中我们只需插入来自受过训练的网络(vgg16 inception 等)任何层的训练权重。

在我看来,“反向传播和梯度下降”的缓慢过程有助于网络在训练期间学习这种最优层次结构和底层模式。这反过来又使底层进行特征提取,并使我们能够根据需要应用迁移学习。我将整个过程与“有机学习过程”联系起来,就像我们人类通常学习的方式一样。

现在,假设我们使用 GA 或(其他一些技术)达到最佳权重系数,我们正在干扰有机学习过程,并且最佳学习层次结构可能会在该过程中受到干扰,导致对训练数据的过度拟合未见数据的差异。

最近有两篇出版物使用无梯度优化强化学习提供了令人信服的结果:“简单随机搜索为强化学习提供了一种竞争性方法”“深度神经进化:遗传算法是训练深度神经网络进行强化学习的竞争性替代方案” . 我为模拟机器人任务实现了这两种方法,并且看到了非常好的结果,尤其是随机搜索,这证实了论文作者观察到的良好分数。GA 表现不佳,这也证实了作者观察到它在 Atari 游戏中的表现惊人地好,而在模拟机器人环境中表现更差。

不管怎样,现在是 2018 年,看起来无梯度优化方法有一个光明的未来。