深入理解AlphaGo:策略与价值网络的高效搜索及实现
1. 策略与价值网络的优化搜索
在使用树搜索模拟总共 n 场游戏以最终选择一步棋时,需要在模拟结束后更新访问计数和 Q 值。更新访问计数很简单,若节点在搜索中被遍历,其计数加 1。更新 Q 值时,需对所有访问过的叶节点 l 的 V(l) 求和,再除以访问计数。
整个过程可总结为对树搜索四步流程的修改:
1. 选择 :通过选择使 Q(s,a) + u(s,a) 最大化的动作来遍历游戏树。
2. 扩展 :扩展新叶节点时,使用强策略网络获取每个子节点的先验概率。
3. 评估 :模拟结束时,通过价值网络输出和快速策略的推演结果的平均值来评估叶节点。
4. 更新 :所有模拟完成后,更新模拟中遍历的节点的访问计数和 Q 值。
模拟完成后,选择访问次数最多的节点作为下一步棋。随着模拟次数增加,节点的 Q 值会不断改善,访问计数能很好地反映一步棋的相对价值。
2. 实现AlphaGo的搜索算法
2.1 定义AlphaGo树节点
以下是用 Python 定义的 AlphaGo 树节点:
import numpy as np
from dlgo.agent.base import Agent
from dlgo.goboard_fast import Move
from dlgo import kerasut
超级会员免费看
订阅专栏 解锁全文
23

被折叠的 条评论
为什么被折叠?



