神经网络训练的反向传播与遗传算法


34

我已经阅读了几篇论文,讨论了每种方法的优缺点,有些人认为GA在寻找最佳解决方案方面没有任何改进,而另一些则表明它更有效。似乎在文献中一般首选GA(尽管大多数人以某种方式对其进行了修改以实现所需的结果),那么为什么大多数软件解决方案似乎仅使用反向传播?

使用一种或另一种时是否有一些一般的经验法则?也许这取决于NN的类型,或者存在一些通常优于其他解决方案的最新解决方案?

如果可能的话,我正在寻找一般的答案:即,“如果NN很大,则GA会更好”,或者“ GA总是会更好,但存在计算性能问题”等。

Answers:


23

如果仔细看一下科学文献,您会发现截然不同的结果。显然,在某些情况下,遗传算法(更广泛地说是进化算法)可以帮助您找到最佳的神经网络设计,但通常它们有很多缺点(算法参数的调整,计算复杂度等),并且它们的使用对于实际应用来说不可行。世界应用。当然,您会发现GA / EA 始终存在的一系列问题比反向传播更好。鉴于找到最佳的NN设计是一个复杂的多峰优化问题,GA / EA可能会帮助(作为元启发法)改善使用“传统”算法获得的结果,例如,使用GA / EA仅查找初始权重配置或帮助传统算法摆脱局部最小值(如果您有兴趣,我写了一篇有关该主题的论文)。

我在该领域做了很多工作,我可以告诉您,有许多关于应用于神经网络的GA / EA的科学著作,因为它们是(或者更好的是,它们曾经是)新兴的研究领域。


2
我最近也想出了这一点-首先找到“好的”解决方案,然后通过GA对其进行进一步改进。不仅适用于NN,而且通常适用于优化...
sashkello 2013年

1
我很困惑为什么它们相互排斥。我以为GA应该学习这种结构;反向传播只能学习重量
皮特2015年

8

神经网络的关键问题之一是过拟合,这意味着很难尝试找到基于有限数据样本最小化某些准则的网络的算法将最终得到一个对特定样本运作良好的网络数据,但概括性很差。出于这个原因,我相当警惕使用GA设计神经网络,尤其是当它们在优化权重的同时进行架构优化时。我通常发现,从多个(例如20个)随机初始权重向量训练网络(进行正则化),然后对所有所得网络进行集成,通常是与任何方法一样好的方法。

本质上,优化是机器学习中所有弊端的根源,您做得越多,最终越有可能过度拟合数据。


Dikran,尽管GA会自然选择,但不会忽略您所提到的信息,它只会确保所选解决方案是否能够解决问题,它会找出原因并升级构成其动力基础的方法,直到网络收敛于一两个最佳解决方案。希望你能得到那样的帮助?

收敛到对有限数据样本进行评估的最佳解决方案正是导致过拟合的原因。为了避免过度拟合,您希望收敛于一个不是最佳的解决方案(例如,尽早停止训练神经网络)。GA在拟合神经网络中没有比任何其他形式的优化更好的方法,您需要避免过度优化训练准则。
Dikran有袋动物2014年

5

每当您处理大量数据并且想要使用前馈神经网络解决监督学习任务时,基于反向传播的解决方案就更加可行。这样做的原因是,对于复杂的神经网络,自由参数的数量非常多。我目前正在从事的一个行业项目涉及一个前馈神经网络,该网络具有约1000个输入,两个隐藏层(每个@ 384个神经元和60个输出)。这导致要优化的1000 * 384 + 384 * 384 + 384 * 60 = 554496权重参数。在这里使用GA方法将非常缓慢。


我的理解是,通用航空旨在解决标准方法难以解决的问题。在您描述的情况下,它不应该表现得更好吗?
sashkello

2
我认为应该使用GA找出它是什么结构,例如多少个隐藏层以及它们如何连接。反向传播只能算出重量
皮特

2

第二个答案是错误的。过度拟合不是由优化引起的。当模型过于复杂并且可以拟合所有数据点而无需了解创建它们的实际规则时(即在极端情况下只需记住它们),就会发生过度拟合。有很多方法可以防止过度拟合,例如选择较简单的模型,删除, dropconnect,重量衰减以及仅使用更多数据。目标应该是在考虑到这些限制的情况下优化网络并使其尽可能准确。

为了回答这个问题,反向传播应该比随机优化(遗传算法之类的)要快得多。我的猜测是,这是因为它利用了实际输出应有的优势,并根据此正确的方向调整权重,其中随机优化会尝试完全随机的更改,而忽略该信息。

但是,通过探索更大的区域,从长远来看,遗传算法可能会避免局部最优,从而做得更好,培训时间将更长。

我很好奇,GA的速度要比反向传播速度慢多少,以及是否有人知道混合算法(分散搜索似乎很适合这样做)。


1
不同意您的第一段。过度拟合主要是通过训练问题中的正则化方法来防止的。如果您开始进行元优化,即正在解决许多训练问题(例如,调整内核参数,网络体系结构等),那么过度拟合将变得更加困难,而且肯定也不再得到保证。
马克·克莱森

如果过度拟合不是由优化引起的,则提前停止并不是过度拟合的有效补救措施。
Dikran有袋动物

1

与GA和反向传播之间的区别在于,GA是基于随机数,而反向传播是基于静态算法,例如随机梯度下降。GA基于随机数并添加到该突变中,这意味着它很可能避免陷入局部最小值。但是GA是基于随机数的,这意味着您很可能在同一网络上进行两次不同的学习,可能会得出不同的结论,即权重不同


只是评论,我们还使用随机初始化。用于后置支撑的重量。如果我们在初始化时使用相同的种子,它将导致相同的解决方案,但是如果您不这样做,则可能不会。因此,反向传播也取决于随机输入。修复种子时,由于遗传算法将使用相同的序列,因此在遗传算法中也将具有相同的结果。的数字再次。
gunes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.