剑客
关注科技互联网

ICLR总结

ICLR2017的投稿时间终于截止。这次投了三篇文章出去,是我个人做研究以来单次会议投稿数最多的一次。

1. 如何用增强学习中的Actor-Critic模型再加上课程学习来训练Doom AI拿到AI比赛冠军:


Training Agent for First-Person Shooter Game with Actor-Critic Curriculum Learning

2. 如何用卷积神经网络让计算机读入一个算法的输入输出,自己写代码:


Unsupervised Program Induction with Hierarchical Generative Convolutional Neural Networks

3. 对于用ReLU作为传递函数的二层非线性神经网络的收敛性分析:


Symmetry-Breaking Convergence Analysis of Certain Two-layered Neural Networks with ReLU nonlinearity

——————–

ICLR这个会议的投稿是即时公开的,上传完文章之后,任何人都可以看到,不存在任何时延。翻阅投稿的论文,你会看到这个领域的迭代之快,世所罕见。我之前在专栏《快速迭代的人工智能》里面提到领域投稿的速度, 等到这次再看看投稿列表,发觉自己可能还低估了。

像“让计算机自己写代码”这个想法,在去年的文章里还出现得不多,并且主要是以构建可微分计算机(比如说DeepMind的神经图灵机,可微分神经计算机)的形式,让神经网络通过端对端的梯度下降的优化方法,学会如求和排序等具体任务。但是这个思路有几个比较大的问题,一个是因为神经网络的黑箱性质,对可微分计算机学习后使用的算法没办法解释;第二个是梯度下降法取决于初值的选取,且优化过程较慢;第三个是扩展性不好,对60个数排序可以,100个数就完全不行,有悖人类的直觉。而让计算机生成代码则没有1和3这两个问题,2也可以通过预先训练神经网络生成代码来克服,不通过优化,而用一遍前向传播就可以了。我们的第二篇投稿(链接)就是基于这个想法,将算法的输入输出的结果抽取特征后,送入卷积神经网络文献中层次式生成图像的经典框架,生成一张二维图,每行就是一行代码,或者更确切地说,是代码的概率分布。有了好的分布,就可以帮助启发式搜索找到正确的程序。而神经网络的训练数据,则由大量的随机代码,随机输入及随机代码执行后得到的输出来提供,所以基本不需要人工干预,算是非监督的办法。

等到今年的ICLR的文章一公布,随便翻一翻就找到了七篇计算机自动生成(或者自动优化)代码的文章。打开一看,引论里全在描述同样的动机。看完之后,我心里暗自庆幸我们及时投了出去,不然等到ICML就要被灭得渣都不剩了。当然方法上来说,大部分使用的还是RNN和Autoencoder,没有像我们这样脑洞大开用卷积神经网络的,而且就算是代码里包含循环和分支,卷积网络也可以给出相对较好(比随机和LSTM的baseline要好挺多)的预测。相比之下,大部分的文章还只是局限于直线式程序(straight-line program),即没有分支和循环的程序。

另外增强学习这个领域目前也是大红大紫。游戏的应用当然是重头戏,这次我们(@吴育昕)的Doom这篇文章用了DeepMind那边最新的A3C训练再加上课程学习(Curriculum Training)的方法,训练出一个比较强的AI,这个AI读取最近的4帧游戏图像,及它们的中心图像(为了瞄准方便),和AI自己的游戏数据(血量和子弹数),然后输出AI应当做的六个动作(向前/左/右,左/右转,开火,注意这里没有后退的选项)。我们自己写了小地图,先在小地图上做了训练,训练时按照AI的成绩去逐渐调节敌人的强弱,以加速训练的进度,然后放进大地图里面再行训练。最后我们还使用了一些人工的规则,先领会AI的意图(比如说想右转),然后用VizDoom里面速度更快的命令取而代之。我们的AI参加了比赛,获得了Track1(已知地图)的冠军。我们没有像第二名那样使用游戏内部数据(比如说敌人是否出现在视野中)进行训练,这让框架通用性较高。当然因为时间所限,目前还没有在Track2(未知地图)上做训练和测试。

而在Track2上拿了冠军的Intel团队的文章则是给定当前图像,当前的各游戏数据(血量,子弹数和分数)及提高这些数据的迫切程度的权值(Goal),对每个动作输出一个提高值f(比如说做这个动作之后,血量提高了多少,或者又杀死了几个敌人),然后用最高的提高值来选下一步动作。这个实际上是Q值网络的变种。他们生成了各种类型的地图做了训练,效果比DQN及A3C都要好些,而且因为迫切程度的权值是一个输入,所以这个模型具有在线改变目标的能力,比如说可以先让它去加血,加完了再去杀敌,当然这个高层逻辑目前还是需要人去控制。

另外增强学习这边还有一些文章值得关注的。比如说有关模拟学习(imitation learning)的一些工作(两篇以上)。增强学习有个问题是奖励函数需要预先设计好,一般通过手工比较麻烦,这两篇模拟学习的核心思想是通过人类的演示来自动习得增强学习中的奖励函数。

理论这边目前还没有看到特别意思的文章。一般来说深度学习的理论相较实践而言,迭代速度要慢很多,主要是门槛比较高,也并非关注的焦点。我这次投了一篇理论,细节请见《长长的旅程》。虽说理论比较冷门,我仍然相信对理论的深入了解是有长期的功用,会在将来指导实践。

目前先看到这里,下次再讲其它的内容。

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址