概述
强化学习(Reinforcement Learning)与监督学习的区别:
监督学习目的是构建数据到标签的映射,强化学习目的是构建状态到行为的函数。
在这里,我们假设状态数有限,行为数有限。
马尔科夫假设:t+1时刻的状态只和t时刻有关,跟t以前没有关系,在棋类游戏中很明显。
对于下棋来说,s0是空白的棋盘,p(s0)是初始状态的概率分布。
增强学习中的待优化目标函数是累积奖励,即一段时间内的奖励函数加权平均值:
在这里,GAMMA是一个衰减项。
增强学习中已经知道的的函数是:
需要学习的函数是:
要学习的函数:π(s, a) = p(a|s),s的条件下是a的概率,学会了这个函数,整个过程就会变得自动,st=>at=>st+1=>at+1=> ...
π是由s到a的映射。
根据一个决策机制(Policy),我们可以获得一条路径:
定义1:估值函数(Value Function)是衡量某个状态最终能获得多少累积奖励的函数:
定义2:Q函数是衡量某个状态下采取某个行为后,最终能获得多少累积奖励的函数:
AlphaGo关键的一点在于估值函数,可以直接根据当前棋盘的状态,预言最终输赢的概率。
估值函数和人们常说的,“你这盘棋输定了”,或者“输的概率很大”,差不多。
估值函数和Q函数的关系:
为了更加了解方程中期望的具体形式,可以见下图。
第一层的空心圆代表当前状态(state),向下连接的实心圆代表当前状态可以执行两个动作,第三层代表执行完某个动作后可能到达的状态 s’。
根据上图得出状态价值函数公式:
我们将概率和转换为期望,上式等价于:
定住V算π,然后定住π算V,不断循环,最后结果会收敛。
能让Q(S, a)最大的a,设置π(S, a)为1,其他情况都设为0。
道理是,通过s获得a,一定有最佳策略,比如,下棋的每一步一定有最正确的下法,让最正确的取1,其他地方取0。
这一算法的劣势:
例如:对一个ATARI游戏,状态数是相邻几帧所有像素的取值组合,这是一个天文数字!(ACTION数量从6到20不等)
定义
在s和a确定的情况下,π的最佳策略,导致的Q*。
则有 Bellman Equation:
后面式子是s’确定情况下,遍历所有a’,找到使Q*(s’, a’)最大;在前面再对s’做平均
DQN基本思路:用深度神经网络来模拟Q*(s, a)
θ就是网络里所有的参数
一个打飞机的Atari游戏的DQN设置:
Volodymyr Mnih et al. human-level control through deep reinforcement learning, Nature, 2015.
DQN算法流程:
随机行为的原因是,有些时候会陷入局部极值。比如一个金币后面有一个洞,所以让它不断尝试。
ε-贪心算法:以很小的概率去尝试,以更大的概率取最大值。和理财很像,小部分钱买高风险产品,大部分钱买稳定收益产品。
如果获得好的回报就奖励,如果获得差的结果就惩罚。
问题是,如果两个高手下棋,仅仅下错一步,就能说所有的步骤都是错的吗?
V(s)可以作为预期值,比如巴萨和一个弱队比分是1:0,能说它踢得好吗?所以要把它的表现减去预期值。
Actor 基于概率选行为,Critic 基于 Actor 的行为评判行为的得分, Actor 根据 Critic 的评分修改选行为的概率。