资源下载地址:https://download.csdn.net/download/sheziqiong/85656335
资源下载地址:https://download.csdn.net/download/sheziqiong/85656335

一、Alpha-go原理初探

通过阅读论文,我们可以简单理解alpha-go的基本原理。大致分为四个版块,获得初始rollout,policy,自我博弈获得更好的policy network,根据已有数据训练value network用于非终止情况下的棋局评估,最终使用MCTS进行游戏。

首先,基于大量人类专家棋谱,使用监督学习(SL)训练得到policy network,这一步的目的在于减少每一个状态下可行操作的数量,通过计算每一个可行操作的可能性排序来得到。此外,使用任意一种较为简单的能快速获得动作返回的算法,作为rollout policy,用于进行之后的蒙特卡洛树搜索以及自我博弈学习。

接着使用强化学习(RL)来提升policy network的强度。在自我对弈过程中,通过不断与自己的历史版本博弈,来最大化自身对于某历史版本的胜率,以此达到更好的效果。

在完成以上两个网络的训练后,额外训练一个value network,用来基于当前棋局判断局势好坏情况。它的作用是降低蒙特卡洛树的搜索深度,这样在某些情况下可以不需要走到最终状态判断输赢,而是对当前状态直接用value network获得value值来进行判断为一次正尝试还是一次负尝试。

最终,通过蒙特卡洛树将上述三个网络加以结合使用。在每一步可行空间的选择上使用policy-network来缩减状态空间,在向后探索的过程中,以一定概率使用rollout-network来快速选择出一条走到终态的路径并计算胜负,或者以一定概率直接用value-network来近似判断胜负。如此不断展开蒙特卡洛树,与其它agent进行对弈。

二、实现Alpha-go

最后一步使用蒙特卡洛树与随机模型对抗在文件alpha_go/MCTS_with_trained_models中实现,执行它将进行已有网络与随机模型的对抗实验。用于生成它所需的数个网络以及蒙特卡洛树的关键部分如下所述。

2.1 Rollout 与 policy 两个网络的初值

实现在/alpha_go/generate_policy_rollout.py。参考网页要求,我们分别使用两个不同参数的DQN模型来和随机agent进行对弈,其中较为复杂且胜率相应较高的一个作为我们的policy-network初值,而较为简单的一个作为今后的rollout-policy。其分别存储在saved_model/important/下的policy_final和rollout_final模型中。



2.2 用对手池方法训练policy-network

实现在/alpha_go/self_rival.py。在每一轮训练中首先将self _ 与rival的初值设为上一次保存的模型,接着维持rival不变,将self_优化对rival胜率训练,并把训练完成后的self_保存,以备下一轮对手训练。


2.3 MCTS的实现

蒙特卡洛树的实现参考中的calss MCTS, 并对我们所需要的接口进行了重新封装得到基于蒙特卡洛树的Agent类MCTSAgent,其实现代码在原agent.py后续。

蒙特卡洛agent接收一个policy,一个rollout,一个value三个网络用于蒙特卡洛过程,并会在step的过程中动态更新蒙特卡洛树节点保存的成功率与总次数等值。

三、修改参数与性能分析

由于时间有限,暂时未进行参数调整。最终用MCTS于随机Agent对弈的结果如下。

资源下载地址:https://download.csdn.net/download/sheziqiong/85656335
资源下载地址:https://download.csdn.net/download/sheziqiong/85656335

使用python与tensorflow实现的简易alpha-go相关推荐

  1. word2vec python实现_教程 | 在Python和TensorFlow上构建Word2Vec词嵌入模型

    原标题:教程 | 在Python和TensorFlow上构建Word2Vec词嵌入模型 选自adventuresinmachinelearning 参与:李诗萌.刘晓坤 本文详细介绍了 word2ve ...

  2. python语言视频-Python语言之Python3 实现简易局域网视频聊天工具

    本文主要向大家介绍了Python语言之Python3 实现简易局域网视频聊天工具,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 操作系统为 Ubuntu 16.04,OpenCV ...

  3. 掌握python编程语言tensorflow_手把手教你eclipse集成Python语言+Tensorflow环境

    本文主要向大家介绍了手把手教你eclipse集成Python语言+Tensorflow环境,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.安装Eclipse 百度Eclips ...

  4. Python:Tensorflow中两个稀疏张量相乘

    Python:Tensorflow中两个稀疏张量相乘 博主在想让两个稀疏张量进行相乘时,发现不能用tf.matmul.tf.sparse_matmul.tf.sparse_tensor_dense_m ...

  5. python图像识别数字_使用python和tensorflow从Image中识别数字

    详细信息:Ubuntu 14.04(LTS),OpenCV 2.4.13,Spyder 2.3.9(Python 2.7),Tensorflow r0.10 我想认识来自 the image使用Pyt ...

  6. [python] 安装TensorFlow问题 解决Cannot uninstall ‘wrapt‘. It is a distutils installed project

    [python] 安装TensorFlow问题 解决Cannot uninstall 'wrapt'. It is a distutils installed project 参考文章: (1)[py ...

  7. 【已解决】Python安装TensorFlow报错“Consider adding this directory to PATH or, if you prefer to suppress this

    [已解决]Python安装TensorFlow报错"Consider adding this directory to PATH or, if you prefer to suppress ...

  8. python 查tensorflow版本_查看已安装tensorflow版本

    由于tensorflow版本不同,可能一些函数的调用也有变换,这时候可能需要查看tensorflow版本,可以在终端输入查询命令如下: python import tensorflow as tf t ...

  9. Python 安装 tensorflow

    Python 安装 tensorflow 1. 安装 1. pip安装 2. conda 安装 2 测试 3. Pycharm 环境配置tensorflow 推荐两个帖子: Conda命令 + 安装t ...

最新文章

  1. 将baidu地图中的baidu logo去掉
  2. 2021年速卖通828年中大促活动报名攻略
  3. connection refused_ERR_CONNECTION_REFUSED
  4. yum安装mysql和mysql源,配置mysql(亲测)
  5. 多线程 - 你知道线程栈吗
  6. python常用的开发环境包括_Python语言主要包括哪些集成开发环境?_学小易找答案...
  7. libevent evhttp学习——http客户端
  8. SQL实战之查找最晚入职员工的所有信息
  9. 使用中控指纹采集器开发指纹识别案例V1.0
  10. 卸载ps显示无法连接adobe服务器,Solved: photoshop无法卸载 - Adobe Support Community - 7692384...
  11. 一次看过瘾!中国摩博会的“钢铁怪兽”你最爱哪辆?
  12. 解决“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xd0 in position 493: illegal multibyte sequen“
  13. Latex数学公式-矩阵中省略号的表示
  14. Python数据挖掘学习——鸢尾花分类、OneR算法
  15. 《AngularJS深度剖析与最佳实践》一2.9 服务
  16. python获取excel数据制作有文字和图表的报告_如何用Python绘制学术报告图表?
  17. 微信小程序开发分析总结
  18. c语言习题集-----收藏归纳版
  19. 挂件巡检机器人_最近DIY的室内巡检机器人
  20. 共建通往天堂的巴别塔

热门文章

  1. 软件测试5why分析,轻松搞定根因分析 -- “5WHY”分析法其实很简单
  2. web前端面试题最全版总结
  3. PageAdmin个性化建站心得——图片处理
  4. soar SQL分析工具与soar-web可视化
  5. C语言游戏项目——贪吃蛇游戏
  6. 03_Software_Delegated_Exception_Interface (SDEI)
  7. Qt笔记——Qt初探、PyQt5和Qt5
  8. FastReport处理打印空项问题
  9. c语言如何编写头文件,如何编写自己的C语言头文件
  10. STC32G单片机驱动1.8寸TFT LCD128X160 ST7735S SPI串口驱动示例