《神经网络与PyTorch实战》——1初识神经网络

举报
华章计算机 发表于 2019/06/05 18:08:12 2019/06/05
【摘要】 本书摘自《神经网络与PyTorch实战》——书中第1章,第1.1.1节,作者是肖智清。

第 1 章初识神经网络

  本章将以在围棋比赛中战胜人类世界冠军的AlphaGo为例,介绍什么是神经网络,使你初步认识神经网络的强大。本章还介绍人工智能、机器学习、神经网络等热门概念的区别和联系。

1.1 例说神经网络

1.1.1 从围棋和AlphaGo说起

  围棋(Go)是一种历史悠久的棋类游戏。如图1-1所示,

image.png

围棋的棋盘是一个的网格。下棋时,双方选手轮流每人下一步棋。每下一步棋,棋手可以将一枚自己的棋子放在围棋棋盘的某一个网格上。直接或间接占有最多棋盘网格的选手获胜。长期以来,人们普遍认为在短期内计算机程序不可能在围棋上战胜人类职业选手,所以围棋也被视为人类智慧的瑰宝。谷歌(Google)旗下产品阿尔法狗(AlphaGo)于2016年3月战胜围棋世界冠军李世石,于2017年5月战胜排名世界第一的围棋世界冠军柯洁,引起了全社会的关注。

  在AlphaGo诞生之前,就出现过一些围棋程序。最早的棋类程序是根据预定的固定策略来下棋的(如1914年L. Quevedo实现的自动下棋机)。在这类棋类程序的设计过程中,人类根据自己的对弈经验,抽象出一系列明确的对弈策略,并将这些策略用程序实现。这类程序的逻辑是这样的:首先判断当前棋局是不是满足第一种策略的适用条件。如果满足第一种策略的适用条件,则根据第一种策略决定棋子的放置位置;如果不满足,则判断当前棋局是不是满足第二种策略的适用条件。如果满足第二种策略的适用条件,则根据第二种策略决定棋子的放置位置;以此类推,直到棋子的方法被确定。具体流程如图1-2所示。

image.png

这种方法能够利用人类已经知道的围棋对弈知识,达到一定的效果。

  但是,这些基于预定策略的围棋程序明显弱于人类职业棋手的围棋水平。基于预定策略的围棋程序无法战胜人类职业棋手,主要原因是围棋的最优决策非常复杂。围棋的复杂性具体体现为以下几点。

* 围棋的棋盘网格上共有个交叉点。在围棋进行的某个时刻,每个交叉点都可能有3种情况(交叉点上有黑棋、交叉点上有白棋或交叉点上没有棋子)。这使得围棋对弈中可能遇到的状态非常多。宋代的沈括在《梦溪笔谈》中称:“大约连书万字四十三个,即是局之大数”,即棋局的可能状态数是要通过连续写43个代表的“万”字,即(这可以通过计算得到)。如果扣除一些不满足围棋规则的状态,剩下的状态(约占总状态数的1%)也有约种。这比棋子数目有限的象棋、国际象棋等大得多。

* 在围棋中,很难通过棋子的数量和棋子的绝对位置判断形势的好坏。这与象棋这样的棋子有限的游戏不同。在象棋中,我们可以通过评估各类棋子的数目给出一个形势的简易判断。但是在围棋中,棋子的数量和形势的好坏往往没有特别明显的关系。这会对计算机进行形势判断造成障碍。

* 在围棋进行的过程中,双方交替下棋,每一步可以在某一个网格交叉点上放置一颗自己的棋子,而这361个网格交叉点都有可能是放置的位置。即使在某步确定棋子位置的时候只考虑未来的8步,也大概有种可能组合。按照当今最快的超级计算机之一“天河二号”的理论峰值运算能力计算,也需要4个小时来穷举来这些组合。

* 围棋中的每一步都可能影响未来几百步,在决策某一步时只评估未来的若干步远远不够。而穷举未来所有可能的计算量过大,其必胜记忆法超过。这个数字远远超过了可观测宇宙的原子总数(约)。

  围棋程序经过数十年的改进,已经越来越强。目前,AlphaGo等围棋程序已经超过人类顶尖职业高手的水平。那么,为什么AlphaGo能够克服上述的种种困难,达到令人惊叹的围棋水平呢?这其中的关键在于,AlphaGo不再使用人工抽象的诸多规则,而使用了人工神经网络来进行决策。人工神经网络是受生物大脑运作机理的启发而设计的一种数学模型。通过神经网络,可以做出非常复杂的决策。在下面的章节中,我们将从生物的神经系统出发,介绍人工神经网络的基本原理。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。