关于机器学习的三个阶段
693
2022-05-28
第 1 章初识神经网络
本章将以在围棋比赛中战胜人类世界冠军的AlphaGo为例,介绍什么是神经网络,使你初步认识神经网络的强大。本章还介绍人工智能、机器学习、神经网络等热门概念的区别和联系。
1.1 例说神经网络
1.1.1 从围棋和AlphaGo说起
围棋(Go)是一种历史悠久的棋类游戏。如图1-1所示,
围棋的棋盘是一个的网格。下棋时,双方选手轮流每人下一步棋。每下一步棋,棋手可以将一枚自己的棋子放在围棋棋盘的某一个网格上。直接或间接占有最多棋盘网格的选手获胜。长期以来,人们普遍认为在短期内计算机程序不可能在围棋上战胜人类职业选手,所以围棋也被视为人类智慧的瑰宝。谷歌(Google)旗下产品阿尔法狗(AlphaGo)于2016年3月战胜围棋世界冠军李世石,于2017年5月战胜排名世界第一的围棋世界冠军柯洁,引起了全社会的关注。
在AlphaGo诞生之前,就出现过一些围棋程序。最早的棋类程序是根据预定的固定策略来下棋的(如1914年L. Quevedo实现的自动下棋机)。在这类棋类程序的设计过程中,人类根据自己的对弈经验,抽象出一系列明确的对弈策略,并将这些策略用程序实现。这类程序的逻辑是这样的:首先判断当前棋局是不是满足第一种策略的适用条件。如果满足第一种策略的适用条件,则根据第一种策略决定棋子的放置位置;如果不满足,则判断当前棋局是不是满足第二种策略的适用条件。如果满足第二种策略的适用条件,则根据第二种策略决定棋子的放置位置;以此类推,直到棋子的方法被确定。具体流程如图1-2所示。
这种方法能够利用人类已经知道的围棋对弈知识,达到一定的效果。
但是,这些基于预定策略的围棋程序明显弱于人类职业棋手的围棋水平。基于预定策略的围棋程序无法战胜人类职业棋手,主要原因是围棋的最优决策非常复杂。围棋的复杂性具体体现为以下几点。
* 围棋的棋盘网格上共有个交叉点。在围棋进行的某个时刻,每个交叉点都可能有3种情况(交叉点上有黑棋、交叉点上有白棋或交叉点上没有棋子)。这使得围棋对弈中可能遇到的状态非常多。宋代的沈括在《梦溪笔谈》中称:“大约连书万字四十三个,即是局之大数”,即棋局的可能状态数是要通过连续写43个代表的“万”字,即(这可以通过计算得到)。如果扣除一些不满足围棋规则的状态,剩下的状态(约占总状态数的1%)也有约种。这比棋子数目有限的象棋、国际象棋等大得多。
* 在围棋中,很难通过棋子的数量和棋子的绝对位置判断形势的好坏。这与象棋这样的棋子有限的游戏不同。在象棋中,我们可以通过评估各类棋子的数目给出一个形势的简易判断。但是在围棋中,棋子的数量和形势的好坏往往没有特别明显的关系。这会对计算机进行形势判断造成障碍。
* 在围棋进行的过程中,双方交替下棋,每一步可以在某一个网格交叉点上放置一颗自己的棋子,而这361个网格交叉点都有可能是放置的位置。即使在某步确定棋子位置的时候只考虑未来的8步,也大概有种可能组合。按照当今最快的超级计算机之一“天河二号”的理论峰值运算能力计算,也需要4个小时来穷举来这些组合。
* 围棋中的每一步都可能影响未来几百步,在决策某一步时只评估未来的若干步远远不够。而穷举未来所有可能的计算量过大,其必胜记忆法超过。这个数字远远超过了可观测宇宙的原子总数(约)。
围棋程序经过数十年的改进,已经越来越强。目前,AlphaGo等围棋程序已经超过人类顶尖职业高手的水平。那么,为什么AlphaGo能够克服上述的种种困难,达到令人惊叹的围棋水平呢?这其中的关键在于,AlphaGo不再使用人工抽象的诸多规则,而使用了人工神经网络来进行决策。人工神经网络是受生物大脑运作机理的启发而设计的一种数学模型。通过神经网络,可以做出非常复杂的决策。在下面的章节中,我们将从生物的神经系统出发,介绍人工神经网络的基本原理。
pytorch 神经网络
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。