梯度下降VS神经进化
在梯度下降中, 我们需要的只是梯度, 让这个神经网络的参数滑到梯度躺平的地方就可以, 因为梯度指明了一个优化的方向, 所以如果是监督学习, 优化起来会非常快。 而神经网络的进化, 使用的却是另一种手段,用初始的点创造出很多新的点, 然后通过新的点来确定下一代的起点在哪. 这样的循环再不断地继续,可以想象, 如果在监督学习中, 需要不断产生非常多的新网络, 测试新的网络, 这将比梯度法慢很多。但是进化的方法相对梯度下降跳出局部最优的能力更强。
在梯度下降中, 神经网络很容易会走到一个局部最优, 但是如果是使用基于遗传算法的神经网络, 这个优化过程虽然慢, 我们的宝宝网络却可以随时跳出局部最优, 因为它完全不受梯度的限制. 而且除了监督学习, 我们还能用进化理论的神经网络做强化学习, 在这点上, 已经有最新的研究指出, 基于进化策略的神经网络完全有能力替代传统的基于梯度的强化学习方法.
神经网络进化的方式
1.定拓扑神经网络
如下的全连接神经网络:
通过不断尝试变异, 修改链接中间的 weight, 改变神经网络的预测结果, 保留预测结果更准确的, 淘汰不准确的。
2.不定拓扑神经网络
使用NEAT算法:http://blog.csdn.net/winycg/article/details/79433015