作家
登录

如何用自动机器学习实现神经网络进化

作者: 来源: 2017-07-27 16:19:39 阅读 我要评论

在一个相对较小的(93.66% vs 93.22%)里进化算法的机能较好。而随机种群搜刮似乎生成了一些好的解决筹划,但模型的方差却大年夜大年夜增长了。这就意味着在搜刮次优架构的时刻出现了资本浪费。将这个与进化图比拟较,我们会发明进化确切生成了更多有效的解决筹划,它成功地使那些构造进化了,进而使之达到了更好的机能表示。

  • MNIST是一个相当简单的数据集,即使是单层收集也能达到很高的精确度。

  • 存储库中还包含了一些额外的应用类别,比如工作器类和调剂器类,使GP优化器可以或许自力平行地完成模型练习和评估。

    运行代码

    像ADAM如许的优化器对进修率的敏感度比较低,只有在它们的收集具备足够的参数时,它们才能找到比较好的解决筹划。

  • 在练习过程中,模型只会查看10000个(练习总数据的1/5)样本示例。如不雅我们练习得时光再长一些,好的架构可能会达到更高的精确度。

  • 限制样本数量对于我们进修的层的数量同样异常重要,越深层的模型须要越多样本。为懂得决这个问题,我们还增长了一个移除突变层,使种群调节层的数量。

这个实验的范围还不足以凸起这种办法的优势,这些文┞仿中应用的实验范围更大年夜,数据集也更复杂。

我们方才完成了一个简单的进化算法,这个算法很好地诠释了“物竞天择”的主题。我们的算法只会选择最终成功的解决筹划,然后将其变异来产生更多的后代。接下来,我们须要做的就是应用更先辈的办法,生成和成长筹划群。以下是一些改进的建议:

  • 为通用层从新应用亲本的权重

  • 将来自两个潜在亲本的层归并

  • 架构不必定要持续的,你可以摸索层与层之间更多不一样的接洽(分散或归并等)

  • 在顶部增长额外的层,然落后行微调剂。

以上内容都是人工智能研究范畴的一个课题。个一一个比较受迎接的办法就是NEAT及其扩大。EAT变量应用进化算法在开辟收集的同时,还对收集的权重进行了设置。在一个典范的强化进修场景下,代劳权重的进化是异常有可能实现的。然则,当(x,y)输入对可用时,梯度降低的方轨则表示得更好。

相干文┞仿

Evolino: Hybrid Neuroevolution / Optimal Linear Search for Sequence Learning 

  1. def random_value(space): 
  2.    """Sample  random value from the given space.""" 
  3.    val = None 
  4.    if space[2] == 'int': 
  5.        val = random.randint(space[0], space[1]) 
  6.    if space[2] == 'list': 
  7.        val = random.sample(space[1], 1)[0] 
  8.    if space[2] == 'float': 
  9.        val = ((space[1] - space[0]) * random.random()) + space[0] 
  10.    return {'val': val, 'id': random.randint(0, 2**10)} 
  11.  
  12.  
  13. def randomize_network(bounded=True): 
  14.    """Create a random network.""" 
  15.    global NET_SPACE, LAYER_SPACE 
  16.    net = dict() 
  17.    for k in NET_SPACE.keys(): 
  18.        net[k] = random_value(NET_SPACE[k]) 
  19.     
  20.    if bounded:  
  21.        net['nb_layers']['val'] = min(net['nb_layers']['val'], 1) 
  22.     
  23.    layers = [] 
  24.    for i in range(net['nb_layers']['val']): 
  25.        layer = dict() 
  26.        for k in LAYER_SPACE.keys(): 
  27.            layer[k] = random_value(LAYER_SPACE[k]) 
  28.        layers.append(layer) 
  29.    net['layers'] = layers 
  30.    return net 

Evolving Deep Neural Networks — This is a very interesting approach of co-evolving whole networks and blocks within the network, it’s very similar to the Evolino method but for CNNs.

Large-Scale Evolution of Image Classifiers 

Convolution by Evolution

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

【编辑推荐】

  1. 基于TensorFlow打造强化进修API:TensorForce是如何炼成的?
  2. 开辟者自述:我是如许懂得强化进修的
  3. 深度神经收集的数学基本,对你来说会不会太难?
  4. 基于 boosting 道理练习深层残差神经收集

  5.   推荐阅读

      百度前首席科学家吴恩达:AI短期内不会超越人类

    吴恩达认为,根本收入筹划的目标不该该是让人们持续给打车公司开车,他欲望根本收入筹划可以或许资世人们进修更多的器械,赞助他们找到有意义的工作。 腾讯科技讯 据外媒报道,固然比来有很>>>详细阅读


    本文标题:如何用自动机器学习实现神经网络进化

    地址:http://www.17bianji.com/lsqh/36435.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)