强化学习介绍

强化学习介绍#

提示

学习强化学习需要具备的先验知识:1)知道怎么搭建神经网络,2)梯度及链式法则

术语介绍#

随机变量(Random Variable)和观测值(Observation)

概率统计中通常用大小写区分随机变量和它的观测值。随机变量用大写,观测值用小写。

概率密度函数(Probability Density Function, PDF)

它表示在某个确定的取值点附近的可能性。概率密度函数在定义域上的积分: 连续的 \(\int_{\mathcal{X}} p(x)dx = 1\),离散的 \(\int_{x \in \mathcal{X}} p(x)dx = 1\)。 期望:连续的 \(\mathbb{E}[f(X)] = \int_{\mathcal{X}} p(x) f(x) dx\), 离散的 \(\mathbb{E}[f(X)] = \int_{x \in \mathcal{X}} p(x) f(x) dx\)

随机变量的域(Domain)

观测值的取值范围就是观测变量的域,用花体表示,参考符号表

随机抽样(Random Sampling)

这一章提到的随机抽样都是又放回的随机抽样。

智能体(Agent)

可以理解为研究对象,比如车、人。

状态(State)

可以理解为当前图像帧。

动作(Action)

智能体能够表现出的行为。

决策函数(Policy Function)

根据 State 判断智能体做出 Action 的可能性,决策函数是一个概率密度函数。

状态转移(State Transition)

根据 Old State 和 Action 判断做出 New State 的可能性,状态转移函数是一个概率密度函数。

奖励和回报(Reward and Return)

回报(Return)也叫累计奖励(Cumulative Future Reward),表示未来获得奖励的总和,记作 \(U_t\)。 数学表达式为 \(U_t = R_t + R_{t+1} + \dots\) 一直加到游戏结束。 由于未来的奖励和现在的奖励通常并不一样吸引人,我们可以给未来的奖励打个折扣,叫做折扣回报,记作 \(U_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \dots\)

动作价值函数(Action Value Function)

数学表达式为 \(Q_\pi(s_t, a_t)=\mathbb{E}[u_t | S_t=s_t, A_t = a_t]\)。因为未来的状态和动作均未知, 可以通过求期望的方式,利用积分把未来的不确定性给积掉,因此 \(s_{t+1}, a_{t+1}, \dots\) 都被积掉了, 剩下了 \(s_t, a_t\)。动作价值函数给动作打分,评价在该决策下,采取这些动作有多大胜算。

最优动作价值函数(Optimal Action Value Function)

数学表达式为 \(Q^{*}(s_t, a_t)=\max\limits_{\pi} Q_\pi(s_t, a_t)\)。根据每个决策函数,比较价值函数的值,挑选出最优的价值函数的值。

状态价值函数(State Value Funciton)

数学表达式为 \(V_\pi(s_t)=\mathbb{E}_A[Q_\pi(s_t, A)]\)。状态价值函数评价当前状态的好坏,快赢了还是快输了。 \(\mathbb{E}_A[V_\pi(s_t)]\) 也能用来评价 \(\pi\) 的好坏: \(\pi\) 越好 \(\mathbb{E}\) 越大。

基本原理#

因为 \(\pi\)\(p\) 都是概率密度函数,我们依靠这种概率模型,在所有可能的取值集合中随机抽样,可以得到强化学习的两个随机性来源:

  1. 下一个动作: \(\mathbb{P}[A=a | S=s] = \pi(a | s)\)。下一个动作是根据决策函数 \(\pi\) 随机抽样得到。

  2. 下一个状态: \(\mathbb{P}[S'=s | S=s, A=a] = p(s' | s, a)\)。下一个状态是根据状态转移函数 \(p\) 随机抽样得到。

备注

因为下一个动作会有一个取值集合,比如上、下、左、右,决策函数的指示根据当前状态,做出每个动作的可能性。 因为下一个状态也会有一个取值集合,比如下雨、晴天,状态转移函数指示在做出当前动作后,分别出现下雨或晴天的可能性。

强化学习的目标是学习决策函数和状态转移函数,从而可以根据这两个函数预测下一个动作和下一个状态,进而使智能体能够做出正确的决策。 因此基本上也就两种基本思路,Policy Based RL 学习 \(\pi\) 和 Value Based RL 学习 \(Q^{*}\)

通过不断地更新智能体的动作和环境的状态,就会得到一个 \((\text{State, Action, Reward})\) 轨迹(Trajectory): \((s_1, a_1, r_1), (s_2, a_2, r_2), ..., (s_t, a_t, r_t)\)

在预测过程中通过累计奖励 \(U_t\) 来判断决策是不是一个好决策, \(U_t\) 越大越好。因为 \(R_i\) 依赖于 \(S_i\)\(A_i\)\(U_t\) 依赖于 \(R_t, R_{t+1}, \dots\),因此 \(U_t\) 依赖于 \(S_t, A_t, S_{t+1}, A_{t+1}, \dots\)

更多细节参考 【金山文档】 深度强化学习, 王树森