前言
这两天网络上被Alpha Go和李世石的围棋对决刷屏,目前Alpha Go已经2-0领先。从前年开始关注研发这套系统的DeepMind公司,一直在追终他们最新的论文。深度学习这个词随着这一事件又火了一把,可是我想说的是虽然阿尔法狗确实得益于深层神经网络的发展,但是其能超过以往的围棋AI的原因是他将深度学习和强化学习结合在一起使用,再融合传统围棋AI主要使用的蒙特卡洛树搜索方法。要知道只用深度学习的方法去解决围棋问题在几年前已经有很多人在尝试,其效果却往往还不及当前最好的围棋AI(例如:Zen,Pachi等)
去年这家公司做的最引爆世界的事情是在Arcade Learning Environment中战胜了人类专家并且在nature上也发。这个环境是为了评估各种强化学习(Reinforcement Learning)算法而建立的,其中有超过500个视频游戏,都是类似小时候在小霸王上玩的飞机坦克打砖块这些游戏。类比人来说的话,他们利用深度学习作为人的视觉系统,接收游戏画面转换为大脑需要的信息,强化学习作为大脑接收传来的信息进行决策,输出当前最优策略。
由于我自己研究的方向是强化学习方面,也利用深度学习做过简单应用,个人感觉深度学习和强化学习作为机器学习的最吸引人的两个方向,结合在一起之后很有可能找到人工智能最后的圣杯。下面根据
Mastering the game of Go with deep neural networks and tree search
1.简介
在棋类游戏中,当棋手走得最完美的时候,都有一个最优的值函数(optimal value function)通过棋盘上每个棋子的位置(也可以说是当前棋盘的状态),来计算这盘游戏的收益(outcome)。这些游戏可以在搜索树中递归地计算最优的值函数来解决,搜索树包含几乎有
当前最强的围棋程序都是基于蒙特卡洛树搜索(Monte Carlo tree search),再通过一些能够预测人类专家走法的策略来增强程序。但是这些策略都是很浅显,并且值函数只是基于输入特征的线性组合。
我们使用CNN( convolutional neural networks)从
总的来说一共有三种deep networks:
- 监督学习的策略网络( Supervised learning of policy networks,SL,
pσ )
采用监督学习的方法,用人类专家的下棋走法进行训练。这种方式提供了一个快速高效的学习更新过程。
同时再训练一个快速的策略网络pπ ,这个网络用于在刚开始时进行动作的快速采样。相当于SL的一个补充。 - 强化学习的策略网络( Reinforcement learning of policy networks,RL,
pρ )
RL策略网络能够通过优化自我对弈时的最终收益(outcome)来改进SL策略网络。 - 强化学习的值网络(Reinforcement learning of value networks,
vθ )
他是用来预测RL策略网络与自己对弈时的胜者。
2.三个主要网络以及网络训练的流程
1. 监督学习的策略网络
在训练过程的第一阶段,需要做一个前期工作用来预测人类专家怎么走下一步棋,也就是用监督学习的方法用KGS Go Server上的3千万个棋局,训练建立一个13层的策略网络。其实主要做的是分类工作,最终给训练好的网络一个棋局图片,能够输出下一步棋子所有可能的走法(或者说动作
SL策略网络是用随机的状态-动作
其精度达到了57.0%,如果只使用未处理的棋局和行棋的历史记录作为输入,也能达到55.7%的精度,超过当前44.4%的最好水平。一般来说大规模的网络能实现更好的精度,但是在搜索时的评估速度变慢,所以需要训练一个结构更简单、运行更快速但精度低一些的策略网络(Rollout Policy)
2.强化学习的策略网络
未完待续
有疑问加站长微信联系(非本文作者)