算法学习(四)——alphago模型

模型推荐看原文:

https://xueshu.baidu.com/usercenter/paper/show?paperid=a7600bdc74f5a07ed65256035cd15c6b&site=xueshu_se

自己的理解:

MCTS解决的是算力分配的问题,alphago主要解决了五个问题:

一是把深度学习和蒙特卡洛法相结合,取得一个准确和速度的平衡,用于评估当前局面。

二是使用监督数据,防止强化学习网络陷入策略循环,然后通过自博弈再提升自己。

三是网络训练方法,在监督学习阶段,将人类数据按照前后步切片,这样一局可以产生大量的训练数据,并且和输赢奖励联系起来,避免奖励稀疏。

四是使用策略网络模拟对手的落子,算是一种对minimax预测对手落子的一种改进吧?

五是工程上使用分布式计算,但是不知道怎么实现的,分布式mcts?

六.特征工程

如上图所示,AlphaGo的策略网络和价值网络用于描述棋局当前局势的49个特征,棋盘上的361个点每个点都可以用这49个特征进行描述,下面将一一进行解读:

1、Stonecolour:

这个点放的黑子、白子还是空点。

2、Ones

赋值为常量1,具体作用不详。

3、Turns since

在周围的八个点中,这一步棋有多少变化。

4、Liberties

环绕这个点的八个点中,有几个空点。

5、Capture size

周围的八个点中,有几个点是对方的死子。

6、Self-atari size

周围的八个点中,有几个点是自己一方的死子。

7、Liberties after move

走过一步棋后,周围八个点有几个空点。

8、Ladder capture

征子是否成功捕获。

9、Ladder escape
征子是否成功逃脱。

10、Sensibleness
下步棋如果下这个点,是否合法(填在对方的眼里,并且没有气,则为不合法),或者有没有填自己的眼。

11、Zeros

和Ones一样,赋值为常量0,具体作用不详。

12、Player color

下一步是否该黑棋下。

 

 

alphago模型实际上并不美观,更多的一种训练网络的工程方法。

 

 

对alphago zero的期待:

zero没有使用监督数据,如何避免的低级策略循环?


http://www.niftyadmin.cn/n/957436.html

相关文章

什么叫回调函数?

什么叫回调函数?

算法学习(五)——alphago Zero模型

论文原文: https://xueshu.baidu.com/usercenter/paper/show?paperid2c541a0965ba18d2f7f835ecdbe4f37d&sitexueshu_se github上的复现,膜拜大神: https://github.com/junxiaosong/AlphaZero_Gomoku alphago Zero模型的理解&#xf…

numpy学习笔记1—ravel() 和 flatten()

numpy的ravel() 和 flatten()函数 简介 首先声明两者所要实现的功能是一致的(将多维数组降位一维)。这点从两个单词的意也可以看出来,ravel(散开,解开),flatten(变平)。两者的区别在于返回拷贝…

promise的创建

const promise new Promise(function(resolve, reject){setTimeout(function(){try {let c 6 / 2 ;resolve(c);console.log(c)}catch(ex) {reject(ex);}}, 1000) });得出答案是3 但是把console.log放在最后一行会报错,说c没被定义 const promise new Promise(f…

Python3之max key参数学习记录

今天用Python写脚本,想要实现这样的功能:对于给定的字典,返回其中Value最大值对应的Key。 搜索后找到了解决方法,同时也学到了max key参数的作用。 例1, testlist [9.2, 10, -20.3, -7.0, 9.999, 20.111] print(ma…

promise的运行

const promise new Promise(function(resolve, reject){setTimeout(function(){try {let c 6 / 2 ;resolve(c);console.log(c)}catch(ex) {reject(ex);}}, 1000) }) promise.then(function(value) {console.log(value) },function(err){console.error(err.message) })运行结果…

说有bug,但是好像没有啊,没看出来哪里可以改

const promise new Promise((resolve, reject) > {setTimeout( () > {let inArray new Array(20);for(let i0; i<20; i) {intArray[i] parseInt(Math.random() * 20, 10);resolve(inArray);}, 1000);console.log("开始生成一个随机的数组")});promise.th…

算法学习(六)——alpha Zero模型

论文&#xff1a; https://xueshu.baidu.com/usercenter/paper/show?paperiddba68ff4f67c98a046754cf804cf1d7e&sitexueshu_se 代码&#xff1a; https://github.com/junxiaosong/AlphaZero_Gomoku 理解&#xff1a; 0.应用领域&#xff1a;完美信息零和博弈&#xf…