Answers:
如果仔细看一下科学文献,您会发现截然不同的结果。显然,在某些情况下,遗传算法(更广泛地说是进化算法)可以帮助您找到最佳的神经网络设计,但通常它们有很多缺点(算法参数的调整,计算复杂度等),并且它们的使用对于实际应用来说不可行。世界应用。当然,您会发现GA / EA 始终存在的一系列问题比反向传播更好。鉴于找到最佳的NN设计是一个复杂的多峰优化问题,GA / EA可能会帮助(作为元启发法)改善使用“传统”算法获得的结果,例如,使用GA / EA仅查找初始权重配置或帮助传统算法摆脱局部最小值(如果您有兴趣,我写了一篇有关该主题的论文)。
我在该领域做了很多工作,我可以告诉您,有许多关于应用于神经网络的GA / EA的科学著作,因为它们是(或者更好的是,它们曾经是)新兴的研究领域。
神经网络的关键问题之一是过拟合,这意味着很难尝试找到基于有限数据样本最小化某些准则的网络的算法将最终得到一个对特定样本运作良好的网络数据,但概括性很差。出于这个原因,我相当警惕使用GA设计神经网络,尤其是当它们在优化权重的同时进行架构优化时。我通常发现,从多个(例如20个)随机初始权重向量训练网络(进行正则化),然后对所有所得网络进行集成,通常是与任何方法一样好的方法。
本质上,优化是机器学习中所有弊端的根源,您做得越多,最终越有可能过度拟合数据。
每当您处理大量数据并且想要使用前馈神经网络解决监督学习任务时,基于反向传播的解决方案就更加可行。这样做的原因是,对于复杂的神经网络,自由参数的数量非常多。我目前正在从事的一个行业项目涉及一个前馈神经网络,该网络具有约1000个输入,两个隐藏层(每个@ 384个神经元和60个输出)。这导致要优化的1000 * 384 + 384 * 384 + 384 * 60 = 554496权重参数。在这里使用GA方法将非常缓慢。
第二个答案是错误的。过度拟合不是由优化引起的。当模型过于复杂并且可以拟合所有数据点而无需了解创建它们的实际规则时(即在极端情况下只需记住它们),就会发生过度拟合。有很多方法可以防止过度拟合,例如选择较简单的模型,删除, dropconnect,重量衰减以及仅使用更多数据。目标应该是在考虑到这些限制的情况下优化网络并使其尽可能准确。
为了回答这个问题,反向传播应该比随机优化(遗传算法之类的)要快得多。我的猜测是,这是因为它利用了实际输出应有的优势,并根据此正确的方向调整权重,其中随机优化会尝试完全随机的更改,而忽略该信息。
但是,通过探索更大的区域,从长远来看,遗传算法可能会避免局部最优,从而做得更好,培训时间将更长。
我很好奇,GA的速度要比反向传播速度慢多少,以及是否有人知道混合算法(分散搜索似乎很适合这样做)。