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

Neural Architecture Search using Deep Neural Networks and Monte Carlo Tree Search
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)不懂。

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

上一篇:applicationContext.xml存放的位置


下一篇:js基础---其余的样式相关的属性/判断滚动条是否到底