https://github.com/joeddav/devol
基于遗传算法,对于任意一个神经网络搜索任务,只要能把能够代表搜索空间中所有神经网络的染色体序列(即super graph)给写出来,就能基于这个代码来延申到自己想要构造的神经网络。
Deep Neural Network Evolution的代码理解;通过代码理解该遗传算法比较简单,网络结构基本固定,先是卷积再全连接(整体顺序固定),只不过卷积的次数或全连接的次数会变化,卷积层和全连接层后会随机消除或增加batchnorm,dropout,max pooling;其他的常规操作就是换换激活函数,卷积核数目,优化器;有两步变异的步骤,第一步是取最好的5%的网络,剩余的95%由把任意两个网络随机拼接在一起得到第二步是再把第一步所有的网络再做随机网络层数目的网络层基本变化(第二步感觉还是有点缺陷,因为经过第二步变异后,第一步中的原始最好的5%的网络可能会变差);