NEAT算法

Posted 6530265oule

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NEAT算法相关的知识,希望对你有一定的参考价值。

NEAT算法是相对提出较早的算法,在2013年大名鼎鼎的DeepMind提出了一种深度增强学习的算法,该算法主要结合的CNN和Q-Learning两种算法,本质利用遗传算法创建神经网络

1、RL:增强学习

奖赏假设 :

 任务的目标可以等价的表示为在某个奖赏函数上的累积最大化
马尔可夫性:当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。

技术分享图片

(2)Q学习

基本迭代:

技术分享图片

2、NEAT算法即通过增强拓扑的进化神经网络(Evolving Neural Networks through Augmenting Topologies),算法不同于我们之前讨论的传统神经网络,它不仅会训练和修改网络的权值,同时会修改网络的拓扑结构,包括新增节点和删除节点等操作。

NEAT算法几个核心的概念是:

  • 基因:网络中的连接
  • 基因组:基因的集合
  • 物种:一批具有相似性基因组的集合
  • Fitness:有点类似于增强学习中的reward函数
  • generation:进行一组训练的基因组集合,每一代训练结束后,会根据fitness淘汰基因组,并且通过无性繁殖和有性繁殖来新增新的基因组
  • 基因变异:发生在新生成基因组的过程中,可能会出现改变网络的权重,增加突出连接或者神经元,也有可能禁用突触或者启用突触

下图我们展示了算法从最一开始简单的神经网络,一直训练到后期的网络

技术分享图片

 

以上是关于NEAT算法的主要内容,如果未能解决你的问题,请参考以下文章

Neat Reader初体验

scss 使用Bourbon Neat和选择器调整网格大小。需要http://bourbon.io和http://neat.bourbon.io

增强拓扑(NEAT)神经网络的神经进化可以在 TensorFlow 中构建吗?

单个 .neat 进程的内存限制为约 2.5 GB

nowcoder106I Neat Tree (单调栈)

使用 Bourbon Neat 删除跨度列上的边距