【问题标题】:Can neuroevolution of augmenting topologies (NEAT) neural networks be built in TensorFlow? [closed]增强拓扑(NEAT)神经网络的神经进化可以在 TensorFlow 中构建吗?
【发布时间】:2019-02-16 15:03:23
【问题描述】:

我正在制作一个用于时间序列数据分析的机器学习程序,使用 NEAT 可以帮助完成这项工作。不久前我开始学习 TensorFlow,但似乎 TensorFlow 中的计算图通常是固定的。 TensorFlow 中是否有工具可以帮助构建动态演化的神经网络?或者像 Pytorch 这样的东西会是更好的选择?谢谢。

【问题讨论】:

    标签: python tensorflow pytorch neat


    【解决方案1】:

    由于种群中神经网络的拓扑结构发生变化,因此无法在 TensorFlow 的静态图形模式下实现,除非进行重大权衡。静态图适用于架构在训练期间不会发生变化的模型。但是,它可以在 TensorFlow Eager 或 PyTorch 中完成,因为它们支持动态计算图。

    在 TensorFlow Eager 中检查此实现:https://github.com/crisbodnar/TensorFlow-NEAT

    【讨论】:

      【解决方案2】:

      创建进化的 tensorflow 网络的一种方法是使用 hyperneat 或 es-hyperneat 算法,而不是在物种中的单个网络上运行进化,而是进化出一个“基因组”,实际上是编码表型的 cppn神经网络。对于 cppn,您可以使用前馈 tensorflow 网络,但需要注意的是每个节点都可以使用不同的激活函数,这使得 cppn 能够进化为能够查询“表型”神经网络的结构和权重您可以使用通用的 tensorflow 网络(或您选择的任何网络)

      我会研究整洁的 python 和 peas 库,看看它们使用的网络,并使用 tensorflow 网络复制这些类。

      【讨论】:

        【解决方案3】:

        TensorFlow 支持eager execution,可以支持任意动态网络拓扑。

        【讨论】:

          猜你喜欢
          • 2018-01-05
          • 1970-01-01
          • 1970-01-01
          • 2016-07-13
          • 2019-08-29
          • 2017-10-10
          • 2013-06-30
          • 1970-01-01
          • 2018-03-16
          相关资源
          最近更新 更多