分享好友 最新动态首页 最新动态分类 切换频道
AI人工智能(调包侠)速成之路十一(AlphaZero代码实战3:神经网络实现)
2024-12-27 02:30

        AlphaZero巧妙了使用MCTS搜索树和神经网络一起,通过MCTS搜索树优化神经网络参数,反过来又通过优化的神经网络指导MCTS搜索。两者一主一辅,非常优雅的解决了这类状态完全可见,信息充分的棋类问题。前面结合一个五子棋AI的案例代码实现了蒙特卡洛树搜索,这次我们使用Tensorflow2来实现神经网络的部分。

AI人工智能(调包侠)速成之路十一(AlphaZero代码实战3:神经网络实现)

AI人工智能(调包侠)速成之路十(AlphaZero代码实战2:蒙特卡洛树搜索

 

神经网络输入特征的设计

        神经网络的输入特征设计等同于传统程序设计里面的“数据结构”设计,在Tensorflow2中使用Numpy多维数组作为输入,然后转换为tensor变量再经过不同的网络层逐层变换,最后按我们设计的分类问题或者数值回归问题输出结果。
        输入特征基本上按照解决问题所需要的充分必要信息来设计,如果硬件条件允许也可以多增加输入信息,增加的信息要能帮助到解决问题,否则只是浪费资源和增加消耗的时间。比如我们前面介绍(mnist手写数字识别)输入信息是28*28*1,我们也可以输入彩色图片信息28*28*3,输入信息增加了三倍但是对于识别数字这个问题来说是没有必要的,但是如果我们的问题不但要识别数字还要分辨颜色的话就必须输入彩色图片信息28*28*3,否则分辨颜色的功能就无法实现。

AlphaZero围棋输入的是19×19×17维度的图像栈 ,我们这个五子棋的网络用15×15×4维度已经够用了。

 

为了程序代码方便我们输入用4*15*15的格式,输入后用tf.transpose将格式转换为15*15*4格式。接着使用一个卷积层变换输入信息(mnist手写数字识别3:cnn卷积神经网络实现 卷积层忘记的看这里)。

Batch Normalization

        Batch Normalization,简称BN,来源于《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》,中文叫批量归一化/批量标准化?好像没有很好的翻译。用一个Batch的均值和方差作为对整个数据集均值和方差的估计。随着网络的深度增加,每层特征值分布会逐渐的向激活函数的输出区间的上下两端(激活函数饱和区间)靠近,这样继续下去就会导致梯度消失。BN就是通过方法将该层特征值分布重新拉回标准正态分布,特征值将落在激活函数对于输入较为敏感的区间,输入的小变化可导致损失函数较大的变化,使得梯度变大,避免梯度消失,同时也可加快收敛。

深度神经网络中每一个中间层都是下一层的输入,在输入下一层之前用tf.keras.layers.BatchNormalization做一下变换。

深度残差网络ResNet

        深度残差网络ResNet是2015年何凯明博士(广东省高考状元,进入清华,2011年香港中文大学博士毕业后正式加入微软亚洲研究院MSRA)在MSRA提出的。之前的神经网络超过20层以后就变得很难训练成功,ResNet出来以后网络深度可以达到上千层,深度神经网络取得了质的飞跃。

        深度学习目前进展取决于技巧:初始权值选择,局部感受野,权值共享等等,但使用更深层的网络时,依然要面对反向传播时梯度消失这类传统困难,层数越多,训练错误率与测试错误率反而升高。ResNet相当于将学习目标改变了,不再学习如何完整的输出结果,而是学习输入和输出的差别,即残差。数学上可以证明加入“短接”是对训练参数最好的选择。

 

        目前残差层还需要自己实现,实现代码如上。短接操作使用 tf.add,要注意两个相加的内容维度要保持一致。定义完残差层就可以用一个循环堆叠多层使用,上面代码使用7个残差层串联起来。

网络输出 概率向量P数组输出

 

网络输出 胜率v值输出

 

打印出网络结构

 
 

 

损失函数计算和优化器

        # 定义损失函数
        # 1. P数组损失函数
        #self.policy_loss = tf.keras.losses.CategoricalCrossentropy(from_logits=False)
        # 2. v值损失函数
        #self.value_loss = tf.keras.losses.MeanSquaredError()
        # 3. L2正则项
        #self.l2_penalty = tf.keras.metrics.MeanAbsoluteError()
        # 4. 所有加起来成为损失函数
        #self.loss = self.value_loss + self.policy_loss + self.l2_penalty
        # 训练用的优化器
        self.optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=self.learning_rate_fn, name="optimizer")

        神经网络的输入是局面s,输出是预测的action概率向量p和胜率v,胜率是回归问题,优化自然用MSE损失,概率向量的优化要用softmax交叉熵损失,L2正则项是为了防止过拟合,目标就是最小化这个联合损失。就是让神经网络的预测跟MCTS的搜索结果尽量接近。

训练网络

 

 

使用神经网络预测

 

        现在神经网络部分全部完成。我们在下一篇实现一个人机对战的游戏界面,然后结合蒙特卡洛树搜索和神经网络估值实现AI交互。当然没有训练之前(他/她/它)的表现只能像个幼儿,后面就需要花费大量时间精力来刻意培养你的“小孩”了,训练好了就是人工智能,训练不好就变成人工智障了......。

 

 

AlphaZero代码实战系列 源代码打包
下载地址:https://download.csdn.net/download/askmeaskyou/12931806

 

最新文章
手机云电脑哪个好用 玩游戏无需买电脑
现在很多人都喜欢玩大型的电脑游戏,可是有时候在外面不方便开电脑,那么我们就可以通过手机来玩电脑游戏啦,这个主要采用的是云技术,让你不管在哪里都可以轻轻松松体验游戏了。一、极云普惠云电脑格来云电脑 V4.3.0 安卓版类别:系统安全
王者荣耀挚爱玫瑰怎么获得
王者荣耀挚爱玫瑰怎么获得?挚爱玫瑰是王者荣耀中的一个道具,可以送给自己的游戏好友,增加与好友之间的亲密度,不少玩家不是很清楚这个道具要怎么获得,这次就由8495小编来给大家讲讲王者荣耀挚爱玫瑰获取攻略,感兴趣的小伙伴一起来看看吧!
微信广告大事件直播推广解决方案升级-上虞网络公司为你呈现
产品升级PRODUCT PROMOTION越来越多的品牌选择通过直播推广方式做大事件营销,短时间内集中曝光,高效触达目标用户并提升品牌影响。微信广告不断丰富营销触点,打造大事件直播推广解决方案,助力奢侈品、汽车、3C 等行业品牌在大事件营销中
迅捷清理大师 for Android V1.0.1 安卓手机版
迅捷清理大师app是一款专业的手机清理助手,这款软件非常适合用户朋友们管理自己的手机后台,支持清理清理各种垃圾,深度快速释放手机内存,有需要的朋友可以下载使用。  迅捷清理大师app是一款非常实用的工具,用户在这款迅捷清理大师ap
整体裁员超5000人,有人当天离职!理想汽车智驾团队的日子并不好过.....
最近智驾圈最火的莫过于理想汽车的裁员消息,速战速决,当天谈完第二天就走。虽然理想官网迅速回应,但对自动驾驶之心来说,验证并不难。从17级到15级,去年社招进来还没转正的同学也受到很大影响,智
超真实美女写真生成:用AI工具轻松打造你的AI女友
在这个数码化的时代,想必很多家庭和朋友聚会中的照片,都开始增加了不少虚拟元素。不久前,我在社交媒体上刷到一张精致的美女写真,特效、构图都堪比专业摄影师之作,却发现她竟是由AI生成的。想到我自己也能拥有如此美丽的数字形象,心中
网站seo优化软件外包(seo外包服务网站优化)
大家好,今天小编关注到一个比较有意思的话题,就是关于网站seo优化软件外包的问题,于是小编就整理了3个相关介绍网站seo优化软件外包的解答,让我们一起看看吧。一般公司中完整的SEO团队都包括哪些职位?长沙企赢信息技术有限公司介绍?se
华为MatePad Paper初体验
昨天刚收到官网首发的第一款电纸书MatePad Paper,使用了一个晚上,第一时间把个人的使用感受发给大家,供大家购买参考。一、好处:1、护眼,看书感觉像纸张一样的质感。阅读效果确实比我很多年以前买过的6英寸的阅读器效果好多了,尤其是
项目文档管理软件
在当今信息时代,项目文档管理对于企业的运营和项目管理起着至关重要的作用。随着企业越来越依赖项目来推动创新和增长,高效的项目文档管理成为项目成功的关键因素之一。因此,选择一款适合自己企业需求的项目文档管理软件是至关重要的决策
精准策略解码,高效优化百度推广方案,全面提升广告效能
深入解析优化百度推广方案,关键在于精准定位关键词、合理设置出价和创意,定期调整优化策略。通过分析数据,挖掘潜在客户需求,提高广告投放效果。结合百度平台特色,利用智能推广工具,实现高效。优化百度推广方案需持续关注数据变化,灵
相关文章
推荐文章
发表评论
0评