AlphaGo Zero:将树搜索与强化学习相结合
1. 树搜索过程
在树搜索中,选择一个分支后,会对其所有子分支重复相同的计算,以选择下一个分支,如此持续,直到到达没有子分支的节点。以下是相关代码实现:
class ZeroAgent(Agent):
def select_move(self, game_state):
root = self.create_node(game_state)
for i in range(self.num_rounds):
node = root
next_move = self.select_branch(node)
while node.has_child(next_move):
node = node.get_child(next_move)
next_move = self.select_branch(node)
2. 扩展搜索树
当到达树中未扩展的分支时,由于当前没有对应此移动的节点,无法继续搜索。此时需要创建一个新节点并添加到树中。创建新节点的步骤如下:
1. 以之前的游戏状态为基础,应用当前移动,得到新的游戏状态。
2. 将新的游戏状态输入神经网络,获得两个重要信息:一是新状态下所有可能后续移动的先验估计;二是新状态的估计值。
3. 利用这些信息初始化新节点各分支的统计信息。
以下是创建新节点的代码实现: <
超级会员免费看
订阅专栏 解锁全文
30

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



