十分钟看懂AlphaGo的核心算法

本文介绍了AlphaGo的核心算法,包括完全信息博弈的概念、蒙特卡洛树搜索的应用、策略网络和价值网络的训练方法等。文章还详细阐述了如何通过深度学习提升围棋AI的表现。

围棋是一个完全信息博弈问题。而完全信息博弈,通常能被简化为寻找最优值的树搜索问题。它含有 b 的 d 次方个可能分支,在国际象棋中 b≈35,d≈80;而在围棋中 b≈250,d≈150。很显然,对于围棋,用穷举法或简单的寻路算法(heuristics)是行不通的。但有效的方法是存在的:

从策略(policy) P(a|s) 中取样 action,降低搜索广度

通过位置评估降低搜索深度

把策略和值用蒙特卡洛树搜索(MCTS)结合起来。

通常的步骤是:

用一个 13 层的 CNN,直接从人类棋步中训练一个监督学习策略网络 Pσ。输入为 48 x 19 x 19 的图像(比方说,它的组成棋子颜色 是 3 x 19 x 19),输出是使用 softmax 层预测的全部落子的概率。精确度是 55.7%。

训练一个能在运行时快速取样 action 的快速策略 Pπ。这会用一个基于小型模式特征的线性 softmax。精确度是 24.2%,但它计算一次落子只用 2 微秒,而不像 Pσ 需要 3 毫秒。

训练一个增强学习策略网络 Pρ ,通过优化博弈结果来进一步提升监督策略网络。这把策略网络向赢棋优化,而不是优化预测精确度。本质上,Pρ 与 Pσ 的结构是一样的。它们的权重使用相同值 ρ=σ 初始化。对弈的两个选手,是当前策略网络 Pρ 和随机(防止过拟合)选择的此前的策略网络迭代。

训练一个价值网络(value network)Vθ,来预测强化学习策略网络自己和自己下棋的赢家。该网络的架构和策略网络类似,但多出一个特征平面(当前玩家的颜色),并且输出变成了单一预测(回归,均方差损失)。根据完整棋局来预测对弈结果,很容易导致过拟合。这是由于连续落子位置之间高度相关,只有一子之差。因此,这里使用了强化学习策略网络自己与自己对弈新生成的数据。该数据从包含 3000 万个不同位置的独立棋局中抽取。

把策略网络、价值网络、快速策略和蒙特卡洛树搜索结合起来。一个标准的蒙特卡洛树搜索过程包含四步:选择、扩展、评估、备份。为了让大家更容易理解,我们只粗略讲了讲它如何在模拟中选择状态的部分(如对数学感兴趣,请到原始论文中找公式)。

状态分数=价值网络输出+快速运行(fast rollout)的策略结果+监督学习策略网络输出

高状态得分(或者说落子)会被选择。价值网络输出和快速运行策略结果是评估函数,在叶子节点进行评估(注意,为了评估快速运行,需要一直到最后一步)。监督学习策略网络输出是一个当前阶段的 action 概率,充作选取分数的奖励分。该分数会随访问次数而退化,以鼓励探索。注意强化学习策略网络只被用于辅助,来生成价值网络,并没有直接在蒙特卡洛树搜索中使用。

到这就结束了,以上就是战胜了人类的 AlphaGo 算法!

原文:One-PageAlphaGo 十分钟看懂AlphaGo的核心算法
英文论文:Mastering the game of Go with deep neural networks and tree search

### 时序数据库的基础教程 #### 什么是时序数据库? 时序数据库(Time Series Database, TSDB)专门针对时间序列数据进行了优化,这类数据的特点是在特定的时间间隔内记录一系列带有时间戳的数据点。由于物联网设备、监控系统和其他实时应用产生的大量带有时标的观测值或度量结果,使得TSDB成为管理和分析此类数据的理想工具。 #### 核心概念详解 - **测量 (Measurements)** 测量是指一组具有相同模式的时间序列集合,在`InfluxDB`中表现为表的概念。每一个测量都包含了多个字段和标签,并且关联着一个或多个时间戳来描述具体时刻的状态变化[^2]。 - **标签 (Tags)** 标签用来标记每条记录的关键属性,它们通常由少量的键值对组成,主要用于快速过滤查询条件下的数据检索。因为标签会被索引化处理,所以适合保存那些不经常变动但又对于区分不同系列至关重要的信息,比如传感器ID等。 - **字段 (Fields)** 字段则是指具体的数值型或其他类型的测量值,即真正要被存储并可能参与计算的内容。与标签相反的是,字段不会建立索引,因此更适合频繁更新以及占用较大空间的数据项。 - **时间戳 (Timestamps)** 时间戳定义了每个数据点发生的精确瞬间,它在整个体系里起到了定位作用,帮助用户按照发生顺序浏览历史记录或是执行基于时间段的操作。大多数情况下,默认采用UTC标准格式表示法。 ```sql -- 创建一个新的数据库实例 CREATE DATABASE IF NOT EXISTS my_time_series_db KEEP 7 DAYS UPDATE 1; ``` 此命令展示了如何利用SQL语句创建名为`my_time_series_db`的新数据库实例,同时设置了保留策略为七天内的最新版本更新机制[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值