神经进化可以与梯度下降相结合吗?

人工智能 机器学习 遗传算法 梯度下降 整洁的 神经进化
2021-10-29 03:31:14

是否有任何使用神经进化算法(如 NEAT)作为初始化网络权重的方法的先例,然后可以通过梯度下降和反向传播对其进行微调?

我想知道这是否可能是一种更快地达到全局最小值的方法,然后再开始使用具有大量输入参数的反向传播来进行本地化。

2个回答

Rohitash Chandra 和 Christian W. Omlin的论文The Comparison and Combination of Genetic and Gradient Descent Learning in Recurrent Neural Networks: An Application to Speech Phoneme Classification (2007) 使用遗传算法训练递归神经网络,然后使用梯度下降微调训练好的模型。

Xiaodong Cui、Wei Zhang、Zoltán Tüske 和 Michael Picheny的论文Evolutionary Stochastic Gradient Descent for Optimization of Deep Neural Networks (2018) 也结合了进化算法和梯度下降,但在这种情况下,它们在梯度下降步骤之间交替和进化步骤。这是进化随机梯度下降(ESGD) 方法的一个示例,与仅使用进化算法来训练神经网络的基于种群的训练 (PBT)方法相反。

是的,除了 nbro 链接到上述 uber 的 AI 研究团队的论文之外,还有一个非常有趣的 sgd 和神经进化组合,他们称之为“安全突变”。在该算法中,每个基因组在物种形成、精英主义和繁殖过程之前都会经历一些 sgd 以提高其适应度。我想这具有搜索非常适合 sgd 优化的基因组的效果,并且在我看来确实提供了两全其美的效果。这是论文的链接https://arxiv.org/abs/1712.06563. 我认为将两者结合起来会很酷的是它与 es-hyperneat/hyperneat 神经进化算法结合使用,其中一个小基因组 cppn 使用 rnns 底物编码大表型 rnns(其结构用笛卡尔坐标表示)作为 cppns 输入。如果在 rnn 上使用少量 sgd 来提高适应度,那么您最终会得到一个 cppn 正在进化以编码非常通用的 rnn 网络,然后可以通过 sgd 将其优化到特定域。我喜欢这个,因为这样你的神经进化就不会发生在一个大规模的 rnn 上,如果你的健康评估很聪明,你可以创建识别你希望解决的一般问题的 cppns。