1. foreword
开宗明义。
阿尔法狗原理:深度学习网络 + 蒙特卡罗搜索树
没看论文,直接看别人的讲解,容易遇到很多生词。前后翻了好几篇博客,对比着来看,方才大略知道怎么回事。
2. 蒙特卡罗方法
2.1 蒙特卡罗随机算法
在《西瓜书》特征选择一节,有随机选择特征子集的步骤。周老师说:拉斯维加斯方法和蒙特卡罗方法是两个著名的随机化方法。这俩方法并不是某个具体的方法,而是代表两类随机算法的思想。
蒙特卡罗方法:采样的次数足够多,则越接近于最优解。强调每一步迭代都是当前的最优解。比如1筐苹果要找到最大的,先随机拿出第一个,再随机拿出一个比较,如果比第一个大,则留下,比第一个小则舍弃。每次留下的苹果的大小起码不低于上次的。只要次数足够多,就可以找到最大的。当然次数有限,找的也是次大的。即尽量找最好的,但不保证是最好的。
拉斯维加斯方法:采样的次数足够多,则越有可能找到最优解。强调直接得到最优解。比如有1扇门,100把钥匙,其中只有1把可以打开。每次随机拿出一把开门,开了就找到了,不开则舍弃再随机挑选一把。只要次数足够多,则一定可以找到最优解。
二者区别:有限采样内,拉斯维加斯或者给出最优解,或者不给出解。蒙特卡罗一定会给出解,但不一定是最优解。若无时间限制,则两者都可以给出最优解。
算法名字带有蒙特卡洛的意思在于:其对搜索空间的搜索都是随机给一个方向的。开个玩笑:开头就说了,蒙(特卡洛树)算法主要靠蒙。主要是在随机采样上计算得到近似结果,随着采样的增多,得到的结果是正确结果的概率逐渐加大。
2.2 蒙特卡罗树搜索(MCTS)
阿尔法狗中,蒙特卡罗树搜索主要是用来快速评估棋面位置价值的。
Monte Carlo methods are ways of solving the reinforcement learning problem based on averaging sample returns。
下棋其实就是一个马尔科夫决策过程(MDP):根据当前棋面状态,确定下一步动作。
该下哪步才能保证后续赢棋的概率比较大呢?最直观的想法就是:穷举之后的每一种下法,然后计算每一步赢棋的概率,选择概率最高