1. 初探强化学习
1.什么是强化学习?
- 强化学习维基百科定义: 受到行为心理学的启发, 强化学习主要关注智能体如何在环境中采取不同的动作, 以最大限度地提高累积奖励。
- 强化学习的目标是给定一个马尔可夫决策过程, 寻找最优策略。
- 试错和 延迟收益是强化学习两个最重要最显著的特征。
2.强化学习可以解决什么问题?强化学习如何解决这些问题?
- 强化学习可以归结为智能决策问题(序贯决策问题), 即找到一个决策序列, 使得目标函数最优. 序贯决策问题是连续不断地做出决策, 才能实现最终目标的问题.
- 强化学习的方式:通过与环境的不断交互来学习状态到动作的映射关系, 以期获得最大化累积回报.
2. 强化学习、监督学习和非监督学习
- 强化学习又称为再励学习、增强学习, 是一类基于动物心理学的“试错”机制的机器学习方法(学习思路与人类相似,在实践中学习), 与监督学习和无监督学习并称为机器学习三大方法。
- 强化学习:与环境交互寻找最优策略。
- 监督学习:学习带标签数据中的固有规则。
- 无监督学习: 寻找无标签数据中的隐藏模式。
1.监督学习解决的是什么问题?监督学习如何解决这些问题?
- 监督学习解决的是智能感知的问题, 智能感知必不可少的前提是需要大量差异化的输入及其标签。
- 监督学习解决问题的方法是输入大量带有标签的数据, 让智能体从中学习到输入的抽象特征并分类。
2.强化学习与监督学习的差异:
- 两者所需要的数据类型不同,监督学习需要的是多样化的标签数据, 强化学习需要的是带有回报的交互数据。
- 监督学习带标签 (事先给出) 而强化学习只有奖励值 (延后给出) 。
- 强化学习的每一步与时间关联紧密,而监督学习的训练数据间一般都是相互独立的,无前后依赖关系。
3.强化学习与非监督学习的差异:
- 非监督学习无标签无奖励值,只有数据特征 。
- 非监督学习的训练数据间一般都是相互独立的,无前后依赖关系。
3. 强化学习基础理论
3.1. 强化学习模型强化学习主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)和奖励(Reward)组成。图中的大脑表示执行个体,我们操作个体进行决策,选择一个合适的动作 A t A_t At;图中地球代表环境,它有自己的状态模型,我们选择了动作 A t A_t At 后,环境的状态由 S t S_t St 变为 S t + 1 S_{t+1} St+1, 同时我们得到采取动作 A t A_t At 的延时奖励 R t + 1 R_{t+1} Rt+1。然后个体继续选择下一个合适的动作,环境的状态随之改变,我们将得到新的奖励值。
3.2 强化学习要素
- 智能体(Agent):强化学习主体,学习者或决策者。
- 环境:Agent 外的一切,主要由状态集组成。
- 状态 S S S, t t t 时刻的环境状态 S t S_t St 是它环境状态集中的某一个状态;
- 动作 A A A, t t t 时刻 Agent 选择的动作 A t A_t At 是它的动作集中某一个动作;
- 奖励 R R R (正/负奖励信号), t t t 时刻个体在状态 S t S_t St 采取的动作 A t A_t At 对应的奖励 R t + 1 R_{t+1} Rt+1 会在 (t+1) 时刻得到;
- 策略(policy) π π π, 状态到动作的映射,即 Agent 会依据策略 π π π 来选择动作。可用条件概率分布 π ( a ∣ s ) π(a|s) π(a∣s) 表示, 即在状态 s s s 时采取动作 a a a 的概率,即 π ( a ∣ s ) = P ( A t = a ∣ S t = s ) π(a|s)=P(A_t=a|S_t=s) π(a∣s)=P(At=a∣St=s)。 此时概率大的动作被选择的机会大;
- 价值函数 v π ( s ) v_π(s) vπ(s), 即个体状态 s s s 时依照策略 π π π 采取行动后的价值(value)。这个价值一般使用累积回报的期望来描述(累积回报是个随机变量,无法作为价值函数的定义)。虽然当前环境会反馈一个即时奖励 R t + 1 R_{t+1} Rt+1, 但是光看这个延时奖励是不行的,因为当前奖励值高并不代表后续的奖励值也高,因此我们需要综合考虑当前奖励和后续奖励。价值函数 v π ( s ) v_π(s) vπ(s) 的一般表达式为:
v π ( s ) = E π ( R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ) = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] v_π(s)=\mathbb{E}_π(R_{t+1}+γR_{t+2}+γ^2R_{t+3}+... |S_t=s)=\mathbb{E}_π[\sum^{\infty}_{k=0}\gamma^k R_{t+k+1}|S_t=s] vπ(s)=Eπ(Rt+1+γRt+2+γ2Rt+3+...∣St=s)=Eπ[k=0∑∞γkRt+k+1∣St=s]- 奖励衰减因子 γ ∈ [ 0 , 1 ] γ \in [0, 1] γ∈[0,1]。如果为0,则是贪婪法,即价值只由当前奖励决定。如果是1,则后续所有状态的奖励和当前奖励一视同仁。一般取值在0到1之间,即当前奖励所占权重大于后续奖励所占权重。
- 环境的状态转化模型 P s s ′ a P^a_{ss′} Pss′a,即在状态 s s s 下采取动作 a a a 转到下一个状态 s ′ s′ s′ 的概率;
- 探索率 ϵ ϵ ϵ,其主要用在强化学习训练迭代过程中,用来平衡探索和利用。如果我们一直选择使当前轮迭代价值最大的动作,那么一些较好的但我们没有执行过的动作将被错过。因此,我们可以以 ϵ ϵ ϵ 的概率选择使当前轮迭代价值最大的动作,而以 ( 1 − ϵ ) (1-ϵ) (1−ϵ) 的概率随机选择一个动作。
4. 强化学习发展历史
1.两个关键时间节点:1998年和 2013年
- 1998年之前:表格型强化学习算法;
- 1998年:强化学习导论第一版出版, 系统总结了之前强化学习算法的各种进展;
- 1998年至2013年:发展出各种直接策略搜索的方法;
- 2013年:DQN(Deep Q Network)的提出;
- 2013年之后:深度强化学习。
2.三条主线
主线1:试错学习
模仿心理学上动物的学习方式。
主线2:最优控制
动态规划法:通过求解贝尔曼方程来间接解决最优控制问题, 存在“维数灾难”问题。
主线3:时间差分法 (第一次研究热潮)
- Q学习算法:成功将最优控制与时间差分法结合;
- DQN算法:首次将深度学习与强化学习结合,开创了深度强化学习这一机器学习新的研究分支(第二次研究热潮,当前)。
5. 扩展实列:井字棋 (Tic-Tac-Toe)
1.游戏描述:这是一个简单的游戏,在一个 3x3 的九宫格里,两个人轮流下棋,直到有个人的棋子满足三个一横一竖或者一斜,赢得比赛游戏结束,或者九宫格填满也没有人赢,则和棋。
2. 井字棋github源码
3. 代码分析
【相关参考】
[1] 《强化学习》, Sutton\Barto 著;
[2] 《深入浅出强化学习原理入门》, 郭宪\方勇纯 著;
[3] 《深度强化学习原理与实践》, 陈仲铭\何明 著;
[4] 刘建平强化学习系列博客.