资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,6/1/2018,#,小白的人工智能之路,2018-6,AlphaGo,&,AlphaGo,Zero,在接下来的壹种小時中,你将會,认识“谁”是可愛的 AlphaGo,尚有它的兄弟 AlphaGo Zero,探知 AlphaGo 和 AlphaGo Zero的实現原理,深度神經网络蒙特卡洛树搜索有监督學习,做自已的井字棋 AI/人机對弈程序,易于实現的极大极小树算法,AlphaGo,Human,or,AI,?,AlphaGo,战绩,1月27曰,AlphaGo 以 5:0 完胜欧洲围棋冠軍樊麾,3月9曰到15曰,挑战世界围棋冠軍李世石的AlphaGo 以 4:1 获得胜利,5月23曰到27曰,乌镇围棋峰會,AlphaGo 以 3:0 战胜世界围棋冠軍柯洁,AlphaGo,家族,AlphaGo AlphaGo Zero Alpha Zero,AlphaGo:,于開始由Google DeepMind開发的人工智能围棋软件。,它以人类围棋高手的棋谱作為参照数据。,AlphaGo Zero:,AlphaGo的团体于10月19曰在自然杂志上刊登了壹篇文章,简介了AlphaGo Zero,這是壹种没有用到人类数据的版本(围棋棋盘大小与规则除外),比此前任何击败人类的版本都要强大。,通過跟自已對战,AlphaGo Zero通過3天的學习,以100:0的成绩超越了AlphaGo Lee的实力,21天後到达了AlphaGo Master的水平,并在40天内超過了所有之前的版本。,Alpha Zero:,AlphaZero使用与AlphaGo Zero类似但更壹般性的算法,在不做太多变化的前提下,并将算法從围棋延伸到将棋与国际象棋上。,AlphaGo,家族有多可怕?!,训练第 0 天的 AlphaGo Zero 什么都不懂,训练第 3 天打败 AlphaGo Lee,训练第 21 天打败 AlphaGo Master,训练第 40天超越了此前AlphaGo 系列的所有组员。,AlphaGo,家族有多可怕?!,AlphaZero在短時间训练後能到达其他算法的同等或更高水平,版本,使用规则,硬件,Elo,等级分的理论峰值,战绩,AlphaGo,樊,(v13),中国规则,176,个,GPU,,分布式,3,144,5,比,0,战胜,?,AlphaGo,李,(v18),48,个,TPU,,分布式,3,739,4,比,1,战胜,?,AlphaGo Master,4,个,TPU v2,,单机,4,858,网棋,60,比,0,战胜职业棋手;,3,比,0,战胜柯洁;,1,比,0,战胜人类团队,AlphaGo Zero,川普,-,泰勒规则,4,个,TPU v2,,单机,5185,100:0,战胜,AlphaGo,李,;,与,AlphaGo Master,对战胜率达,90%,AlphaZero,4,个,TPU v2,,单机,N/A,60:40,战胜,AlphaGo Zero,(,3,天版本),AlphaGo,走下神坛,AlphaGo 的胜利意味著AI技术有了突破性的進展?,AlphaGo 的胜利意味著机器打败人脑?,答案与否认的。其实,AlphaGo在算法层面上并没有太多新意,而是通過 Google 强大的团体和计算平台,把已經有的技术整合在壹起,运用大量的训练数据和计算资源来提高精确性。,AlphaGo=蒙特卡洛树搜索算法(MCTS)+深度神經网络,博弈树,把游戏看作壹棵树,每個結點是壹种游戏状态。,名称,棋盘大小,(,位置数,),状态空间复杂度,(,状态数,),状态树复杂度,(,叶子结点数,),平均游戏长度,井字棋,(Tic-Tac-Toe),9,10,3,10,5,9,四子棋,(Connect4),42,10,13,10,21,21,翻转棋,(Reversi/Othello),64,10,28,10,58,58,跳棋,(International draughts/Checkers),50,10,30,10,54,90,中国象棋,90,10,40,10,150,95,国际象棋,(Chess),64,10,47,10,123,70,五子棋,(Gomoku),225,10,105,10,70,30,围棋,(Go),361,10,170,10,360,150,六子棋,(Connect6),361,10,172,10,140,30,常見對弈游戏的状态复杂度對比,围棋的状态复杂度為10170,那么10的170次方意味著什么呢?,21,个,百亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿,這個规模拾分可怕!,由于不能将所有状态都遍历壹次,于是,AlphaGo使用“蒙特卡罗树搜索”算法(MCTS),先從蒙特卡罗措施開始:,假设我們要计算壹种不规则图形的面积。蒙特卡罗措施基于這样的思想:假想你有壹袋豆子,把豆子均匀地朝這個图形上撒,然後数這個图形之中有多少颗豆子,這個豆子的数目就是图形的面积。當你的豆子越小,撒的越多的時候,成果就越精确。,AlphaGo,什么是蒙特卡罗树搜索,(MCTS),?,图:计算机蒙特卡罗措施模拟,借助计算机程序可以生成大量随机的、均匀分布坐標點,记录出图形内的點数,通過它們占总點数的比例和坐標點生成范围的面积就可以求出图形面积。,AlphaGo,什么是蒙特卡罗树搜索,(MCTS),?,怎样让计算机“看懂棋局”:,AlphaGo中壹种游戏状态的大小是19*19*17。不仅要考虑目前棋盘状态,還要考虑前几次下棋的位置。其中19*19是围棋棋盘的大小,17=8+8+1:,1、過去8步的黑棋位置,2、過去8步的白棋位置,3、目前走棋方(黑棋/白棋),AlphaGo,什么是蒙特卡罗树搜索,(MCTS),?,蒙特卡罗树的壹种結點:對应壹种游戏盘面,树节點的子結點:從该状态出发可以产生的後续状态,父結點到子結點的边:落子動作,每個結點還具有信息 N 和 W:,N=結點(動作)被选择的次数,W=所有子結點的价值总和,价值:获胜的期望值,-1為负,0為平,1為胜。,图:壹棵蒙特卡罗树,AlphaGo,什么是蒙特卡罗树搜索,(MCTS),?,蒙特卡罗树搜索的壹次迭代包括四個阶段:,选择、扩展、模拟、反向传播(回溯),蒙特卡罗树搜索的壹次迭代,选择(Selection):從目前結點的子結點的中选择U值最大的壹种。,U=f(N,W),扩展(Expansion):扩展結點,列出所有也許的動作及其游戏状态。,模拟(Simulation):對于壹种节點,多次随机模拟博弈直到决出胜败。用频率替代概率,估算這個子节點的价值 W。,胜:W:=W+1,平:W:=W+0,负:W:=W-1,蒙特卡罗树搜索的壹次迭代,蒙特卡罗树搜索的壹次迭代,進行多次模拟後,可以近似认為W/N就是获胜的期望值。,反向传播(Backpropagation):,回溯更新父节點到子节點的途径上所有結點的(N,W)值。,蒙特卡罗树搜索的壹次迭代,AlphaGo等算法中,不壹样于老式MCTS措施的随机模拟博弈,W/N的值由深度神經网络(後述)估算。,选择子結點時,除了N,W以外還需要考虑落子概率P。,AlphaGo中使用人类专业棋手的棋谱数据训练深度神經网络,落子更靠近于人的思维。,而AlphaGo Zero和Alpha Zero算法中,在進行多次MCTS迭代後,以(子結點N/父結點N)估算落子概率,再以此训练深度神經网络。,AlphaGo,等算法中,MCTS,的创新,注:图中Q=W/N,U正相有关P/(N+1),(不壹样于前述老式MCTS的U),深度神經网络可以用函数f(s)表达,s表达目前游戏状态。,函数f(s)有两個输出:P(落子概率)和W(价值),按下图的方式应用到MCTS的计算中。根据N,W,P的值,深入选择子結點并迭代。,最初使用老式MCTS随机模拟的估算成果来训练深度神經网络。迭代的次数足够後,用深度神經网络的输出替代随机模拟。,用深度神經网络预测落子概率和价值的措施比老式MCTS的随机模拟速度更快,效果更好。,AlphaGo,AlphaGo=深度神經网络+蒙特卡罗树搜索算法,|,估值网络+走棋网络,使得電脑像人类的大脑同样自发學习,使得電脑可以結合树状图進行長遠推断,AlphaGo 什么是深度神經网络?,图:,壹种三层构造的简朴神經网络,神經网络三要素:,输入层,隐藏层,输出层,走棋网络(Policy Network)的输出是19*19+1维向量,表达在19*19的棋盘上每個位置落子的概率,以及目前走棋方(黑棋/白棋)。,估值网络(Value Network)的输出是范围在-1,1的標量。,AlphaGo,的,估值网络和走棋网络是,独立,的,并且没有用到残差层。,AlphaGo Zero,、,Alpha Zero,的估值网络与走棋网络,共享,前面的网络层。,AlphaGo等算法的强化學习流程(Reinforcement Learning),(1)自對弈(Self-Play),目前网络自對弈25000局,保留每壹步的游戏状态、MCTS中的結點概率以及最终的获胜者。,AlphaGo等算法的强化學习流程(Reinforcement Learning),(2)训练(Retrain Network),從500000局游戏中抽取2048個样本。样本包括上述的游戏状态、MCTS的結點概率以及最终获胜者。将游戏状态作為深度神經网络的输入。,然後将预测输出与实际成果對比,得到损失函数的值。最终,反向传播调整深度神經网络中的参数。,AlphaGo等算法的强化學习流程(Reinforcement Learning),(3)评价网络(Evaluate Network),调整後的网络与原网络對弈400局。若调整後的网络能赢下至少55%的對局,则接受调整後的网络,并替代原网络。,实战环节:做自已的井字棋 AI/人机對弈程序,1919 的围棋 AlphaGo 能 hold 住,哈哈,我的電脑可不行!,壹口吃不成胖子,谁叫我們是人工智能小白呢!,不如来看看轻量级的人工智能应用井字棋人机對弈,实战:自已動手做井字棋 AI/人机對弈程序,1,、安装,python3,python3-V,2,、安装,pygame,模块,python3-mpipinstall-i pygame,实战:自已動手做井字棋 AI/人机對弈程序,3、分析极大极小树算法的实現函数,实战:自已動手做井字棋 AI/人机對弈程序,4、将文献“ticky.py”放進 D 盘根目录,在 cmd 中输入 D:回車;,python3 ticky.py,回車;,程序效果,实战:自已動手做井字棋 AI/人机對弈程序,5、點击绿色按键“vs AI”;,點击藍色框内的棋盘;,重新開始請再次點击“vs AI”。,THANKS,
展开阅读全文