阅读 111

Neural Architecture Search using Deep Neural Networks and Monte Carlo Tree Search



发表时间:2019(AAAI2020)
文章要点:一篇做NAS的文章,主要想法就是用MCTS来做NAS,相对random,Q-learning,Hill Climbing这些更能平衡探索与利用。主要方法是把NAS的问题定义好,比如动作是什么,就是每次搭建神经网络这一层用什么结构,什么参数。状态是什么,就是当前建成网络的信息。这些东西定义好之后,就可以用MCTS去搜索了。等搜索出一个网络结构,就真正拿去train,train好之后就知道accuracy,就可以做树搜索的backpropagation更新树里的信息了。因为每次真正去train网络很慢,所以作者还做了很多提速的工作。比如把MCTS做成并行搜索,并且用一个meta_DNN来预测一个网络结构测accuracy,在train这个结果还没train好的时候,就先用meta_DNN预测的accuracy来backpropagation,这样并行的MCTS就不用等了。当真正的accuracy train好后,再用这个准确的accuracy再backpropagation一次。就相当于backpropagation由真正的accuracy和meta_DNN共同完成。而meta_DNN的训练就是用之前train过的网络结构和对应的accuracy作为数据。同时,为了减少每个网络结构train的时间,作者还做了一个transfer learning来提速。思路就是,我从树里搜索出一个新的网络结构,就相当于走了一条trajectory,那么这条trajectory在树里肯定有一部分结构在之前的MCTS的过程中就被train过。比如我上次尝试了一个三层的网络,这在树里是一条trajectory,这次我又走到这个trajectory上来了,并且又扩展了一层新的网络。那么前面三层网络我就直接用之前train好的参数,只有最后一层随机初始化,这样就可以加快训练速度。当然里面还有很多细节,比如状态空间动作空间具体怎么设定的,训练的时候数据增强怎么做的(cutout)等等,感觉trick还是不少的。
总结:这篇paper和alphazero已经很像了,meta_DNN就相当于是value network,然后并行的树搜索的方式就有点异步树搜索的味道了,不过异步树搜索是用锁的方式来做,这里是做两遍backpropagation。总体来看很有意思的一个工作,给MCTS找到了一个极其适用的领域。
疑问:Hill Climbing (HC)不懂。

原文:https://www.cnblogs.com/initial-h/p/15233257.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐