“进化算法”看起来异常简单,对吗?没错!这个算法可以异常成功,尤其是当你为个别定义了好的变异或跨界功能时。
按照上述步调操作运行。
- """Tournament play experiment."""
- from __future__ import absolute_import
- import net_builder
- import gp
- import cPickle
- # Use cuda ?
- CUDA_ = True
- if __name__=='__main__':
- # setup a tournament!
- nb_evolution_steps = 10
- tournament = \
- gp.TournamentOptimizer(
- population_sz=50,
- init_fn=net_builder.randomize_network,
- mutate_fn=net_builder.mutate_net,
- nb_workers=3,
- use_cuda=True)
- for i in range(nb_evolution_steps):
- print('\nEvolution step:{}'.format(i))
- print('================')
- tournament.step()
- # keep track of the experiment results & corresponding architectures
- name = "tourney_{}".format(i)
- cPickle.dump(tournament.stats, open(name + '.stats','wb'))
- cPickle.dump(tournament.history, open(name +'.pop','wb'))
这是50个解决筹划的得分结不雅,比赛范围为3。这些模型仅接收了10000个样本的练习,然后就被评估了。乍一看,进化算法似乎并没有起到太大年夜的感化,因为解决筹划在第一次进化中就已经接近最佳状况了;而在第七阶段,解决筹划达到了它的最佳表示。鄙人图中,我们用了一个盒式图来依次描述这些解决筹划的四分之一。我们发明,大年夜多半筹划都表示的很好,但在筹划进化的同时,这个盒式图也随之紧缩了。
图中的┞封个盒子展示了筹划的四分之一,而其盒须则延长展示了残剩四分之三的筹划分布。个中的黑点代表着筹划的平均值,大年夜图中我们会发明平均值的上升趋势。
为了进一步懂得这一办法的机能和表示,我们最好将其与一个完全随机的种群搜做比拟较。每个阶段之间都不须要进化,每个解决筹划都要被从新设置为一个随机的状况。
推荐阅读
吴恩达认为,根本收入筹划的目标不该该是让人们持续给打车公司开车,他欲望根本收入筹划可以或许资世人们进修更多的器械,赞助他们找到有意义的工作。 腾讯科技讯 据外媒报道,固然比来有很>>>详细阅读
本文标题:如何用自动机器学习实现神经网络进化
地址:http://www.17bianji.com/lsqh/36435.html
1/2 1