谈起AlphaGo来看其中的强化学习知识点
1. Training and Execution
1.1. training in 3 steps:
- 首先,利用 behavior cloning 模仿学习(是一种监督学习)初始化策略网络
- 接着使用强化学习的 policy gradient 策略梯度,进一步训练策略网络
- 最后,用训练好的策略网络来训练价值网络(Not AC算法)
1.2. execution (actually play Go games)
使用蒙特卡洛树搜索MCTS
2. Policy Network
state: 19 ∗ 19 ∗ 17 19*19*17 19∗19∗17 tensor (AlphaGo Zero中), 19 ∗ 19 ∗ ( 8 + 8 ) 19*19*(8+8) 19∗19∗(8+8)表示当前以及前七次落子时的棋局状态,每一次落子时的棋局都得用2个tensor表示分别用于黑子与白子,最后的 19 ∗ 19 ∗ 1 19*19*1 19∗19∗1 tensor用于表示当前轮到黑子方还是白子方落子(只有全0或全1两种取值)。
2.1. initialize policy network by behavior cloning
behavior cloning: let the policy network imitate human players.
P.S., AlphaGo Zero中没有用behavior cloning.
2.1.1 Behavior Cloning
- 它不是强化学习!
- 它是一种模仿学习。
- 在AlphaGo应用中可看做一种多分类
2.1.2 After Behavior Cloning …
如果
s
t
s_t
st出现在海量training data中,AI会用专家的策略来落子;
而如果
a
t
a_t
at并未出现在训练数据中,那么AI很有可能做出的行为连业余玩家都不会那么落子,从而之后的棋局状态会更大可能并未出现在原有的训练数据中,错误会不断累加,策略网络最终可能输掉比赛。
Behavior cloning+RL beats behavior cloning with 80% chance
2.2. train policy network using policy gradient
AlphaGo中有两个策略网络用来做博弈,名叫Player和Opponent。
AlphaGo Zero 用MCTS来训练(见最后)。
3. Value Network
在AlphaGo Zero中,策略网络与价值网络共享卷积层。策略网络的输出是361个概率值,价值网络是估计
V
(
s
)
V(s)
V(s)。
4. Monte Carlo Tree Search(MCTS)
4.1 Selection
AI假想一个动作
4.2 Expansion
AI假想对手会做什么动作
4.3 Evaluation
从状态
s
t
+
1
s_{t+1}
st+1开始,双方依次落子,即Fast Rollout,以得出
r
T
r_T
rT;
利用价值网络得到
V
(
s
t
+
1
;
w
)
V(s_{t+1};w)
V(st+1;w);
取平均得到Record
V
(
s
t
+
1
)
V(s_{t+1})
V(st+1)。
4.4 Backup
用以计算
Q
(
a
t
)
Q(a_t)
Q(at)。
4.5 Decision Making after MCTS
AlphaGo 每走一步都要模拟以上Four steps成千上万次,从而得到
N
(
a
)
N(a)
N(a)…
真正的比赛过程中,人类对手落完一次子后,AlphaGo又会初始化
N
(
a
)
N(a)
N(a)与
Q
(
a
)
Q(a)
Q(a)为零,重新开始…
In the end,
Complement: