ahni, 另一个HyperNEAT实现

分享于 

7分钟阅读

GitHub

  繁體 雙語
Another HyperNEAT Implementation
  • 源代码名称:ahni
  • 源代码网址:http://www.github.com/OliverColeman/ahni
  • ahni源代码文档
  • ahni源代码下载
  • Git URL:
    git://www.github.com/OliverColeman/ahni.git
    Git Clone代码到本地:
    git clone http://www.github.com/OliverColeman/ahni
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/OliverColeman/ahni
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    AHNI - 另一个HyperNEAT实现

    AHNI实现了 HyperNEAT neuroevolution算法,请参阅 http://eplex.cs.ucf.edu/hyperNEATpage/HyperNEAT.html

    最新版本可用,问题应该发布在 https://github.com/OliverColeman/ahni

    构建和运行

    可以运行的jar 文件可以从以下源文件生成:

    ant runjar

    然后运行实验:

    java -jar ahni.jar <properties file containing parameters for experiment>

    例如:

    java -jar ahni.jar properties/or3.properties

    请参见 properties/bain-test-pass-through-flip.properties 用于描述每个参数的函数和设置的示例属性文件。

    默认情况下,当前进程的简要摘要将发送到日志中的每个生成( 对于大多数 example.properties 文件,到控制台)。 摘要是一个分开的统计表列表,每 20行打印一个标题行。 包括以下值:

    英镑的标签说明
    Gen当前生成数。
    Fittestfittest染色体的ID。
    OvFtns( 整体) 最佳染色体的适应度。
    性能fittest染色体的性能。
    BestPrf具有最高性能的染色体的ID。
    OvFtns( 整体) 具有最高性能的染色体的适应度。
    性能具有最高性能的染色体的性能。
    ZPC零性能计数,染色体数为 0的染色体数。
    ZFC零适应度计数,一个适应度为 0的染色体数。
    SC物种的数量。
    NS这一代新物种的数量。
    ES这一代灭绝的物种数量。
    SCT物种兼容性阈值。
    SS最小/最大物种大小。
    SA最小/最大物种年龄( 以代数为单位)。
    SNBP一种新的最佳表现染色体的数量。
    GSminimum/average/maximum ( CPPN ) 基因组大小( 节点和连接的总数)。
    时间以秒为单位的生成的持续时间。
    ETA估计的运行完成时间( 天 hh:mm:ss )。
    Mem总内存使用率。

    通过将 num.runs 属性设置为值> 1,可以执行多个进化运行,并且每一代均平均适应性/性能结果。 如果只执行一次运行,则大多数输出文件将直接放置在 output.dir 属性指定的目录中。 如果执行多次运行,那么特定运行的输出文件将被放置在这个目录的子目录中,该目录标有运行编号。

    ##Multi-Threading 和计算集群

    基本适应度函数类, com.ojcoleman.ahni.evaluation.BulkFitnessFunctionMT 允许并行评估填充成员。 可以在一台机器上使用多个CPU内核,在集群中可以使用多个机器。

    在集群中,多台机器由AHNI的初始实例控制。 控制器和下属通过套接字进行通信,每个setter实例充当一个服务器,等待来自控制实例的请求。 下属可以手动启动,或者由控制机器通过ssh自动启动。 请参见 properties/bain-test-pass-through-flip.properties 和 java doc com.ojcoleman.ahni.evaluation.BulkFitnessFunctionMT 以获取更多信息。

    插件开发和创建新实验

    要创建自己的实验,你很可能希望扩展 com.ojcoleman.ahni.evaluation.HyperNEATFitnessFunction 或者 com.ojcoleman.ahni.evaluation.HyperNEATTargetFitnessFunction

    有关示例,请参见 com.ojcoleman.ahni.experiments.TestTargetFitnessFunctioncom.ojcoleman.ahni.experiments.objectrecognition

    主要的类是 com.ojcoleman.ahni.hyperneat.Run。 它需要包含参数整洁。HyperNEAT。通常是正在运行的特定实验的.properties 文件,以及各种设置。

    API文档在 http://olivercoleman.github.com/ahni/doc/index.html 提供。

    hyperneat

    AHNI支持中描述的链接表达式输出( 狮子座) 扩展。 Verbancsics和K。O。斯坦利( 2011 ): 约束连接性,以鼓励HyperNEAT中的模块化。 在的遗传和进化计算会议( GECCO 2011 )。

    properties/retina-problem-hyperneat.properties 用 上面 描述的全局局部种子实验重现 hyperneat leo。

    hyperneat

    注意:在检查 sap hyperneat实现的每个方面时花了很多时间,不可以能再现Risi的实验。 Stanley是一种增强的基于超立方体的编码,用于进化神经元的位置。密度和连通性,从而使神经元的实现变得不正常,因此应该假定实现是不正常工作的。

    更新:最近在贝恩NeuralNetwork软件中修复了一个问题,这将阻止hyperneat实现实现( 并符合观察到的行为)。 虽然我还没有测试过,如果hyperneat现在正在工作,那么如果你对hyperneat的实现感兴趣。 : )

    AHNI支持可以进化基底 HyperNEAT ( HyperNEAT ) 扩展( 请参见 http://eplex.cs.ucf.edu/ESHyperNEAT/ )。

    目前只支持转录到贝恩 NeuralNetwork,通过 com.ojcoleman.ahni.hyperneat.ESHyperNEATTranscriberBain 类目前支持 2D 个衬底和pseudo-3D基板。 请参阅第二个属性文件 below,以获得 pseudo-3D。 真正的3D 基板很可能即将到来( 或者让我知道如果你想实现这个


    相关文章