1. 强化学习

(1)定义
一个智能体(agent)怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。
(2)过程
在这里插入图片描述
1: 智能体获取状态,并根据状态输出动作(决策)
2: 环境根据执行的决策输出下一状态和该决策获得的奖励

(3)强化学习与监督学习的比较
(1)强化学习输入的是序列数据,不满足独立同分布
(2)强化学习无法得到立即反馈
(3)延迟奖励(delayed reward)

通常假设样本空间中全体样本服从一个未知分布,我们获得的每个样本都是独立地从这个分布上采样获得的,即独立同分布(independent and identically distributed,i.i.d.)

(4)强化学习的分类
(1)标准强化学习:手动设置特征 + 强化学习
(2)深度强化学习: 深度强化学习 = 深度学习 + 强化学习。不需要手动设置特征,将学习过程改进为端到端的训练(end-to-end training)。可以用一个神经网络来拟合我们这里的价值函数或策略网络,省去了特征工程(featureengineering)的过程。

2. 序列决策(Sequential decision making)

(1)奖励
奖励是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了智能体在某一步采取了某个策略的表现如何

(2)序列决策
智能体的目的就是选取一系列的动作来极大化它的累积奖励(Cumulative reward)

(3)状态
历史
历史是观测、行为、奖励的序列
H t = O 1 , R 1 , A 1 , O 2 , ⋯   , O t , R t H_t=O_1,R_1,A_1,O_2,\cdots,O_t,R_t Ht=O1,R1,A1,O2,,Ot,Rt

状态
状态是关于历史的函数
S t = f ( H t ) S_t=f(H_t) St=f(Ht)

完全可观测的(fully observed)
通常建模程马尔可夫决策过程(MDP)。其中 O t = S t e = S t a O_t=S^e_t=S^a_t Ot=Ste=Sta,即智能体的状态跟环境的状态等价的时候。

部分可观测的(partially observed)
是智能体得到的观测并不能包含环境运作的所有状态(如:自动驾驶汽车,汽车的状态仅仅是传感器可探查的数据)。其通常采用部分可观测马尔科夫决策过程,

3. 动作空间

定义
在给定的环境中,有效动作的集合

分类
(1)离散动作空间(discrete action space):智能体的动作数量是有限的
(2)连续动作空间(continuos action space):在连续空间中,动作是实值的向量

4. 智能体的组成和类型

强化学习的智能体可能有一个或多个如下的组成成分:

  1. 策略函数(policy function):把输入的状态变成行为
  2. 价值函数(value function):对当前状态进行评估(对后续收益的影响)
  3. 模型(model):表现智能体对环境的理解

4.1 策略

(1)定义
是一个函数,把输入的状态变成行为。

(2)分类
随机性策略(stochastic policy)
π \pi π函数 π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s)=P(A_t=a|S_t=s) π(as)=P(At=aSt=s),表示在状态s下输出动作为a的概率。然后通过采样得到一个动作。

确定性策略(deterministic policy)
采取最有可能的动作,即 a ∗ = a r g max ⁡ a π ( a ∣ s ) a^*=arg \max_a \pi(a|s) a=argmaxaπ(as)

问题:比较随机性策略和确定性策略的优缺点

强化学习一般使用随机性策略,因为
① 随机性能更好的探索环境
② 随机性策略的动作具有多样性(不是唯一确定的)
③ 确定性策略对相同环境做出相同的动作,这会导致很容易被预测

4.2 价值函数

作用
价值函数是未来奖励的一个预测,用来评估状态的好坏。
折扣因子
希望尽可能在短的时间里面得到尽可能多的奖励。

(1)状态价值函数(state-value function)
表示在 π \pi π策略下,状态s的价值函数。
v π ( s ) = E π [ G t ∣ S t = s ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ]   , f o r   a l l   s ∈ S v_\pi(s)=E_\pi[G_t|S_t=s]=E_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s] \ , for \ all \ s \in S vπ(s)=Eπ[GtSt=s]=Eπ[k=0γkRt+k+1St=s] ,for all sS

(2)动作状态价值函数(state-action-value function)
表示采取策略 π \pi π时,在状态s发生动作a下,未来可以获得的奖励
q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] q_\pi(s,a)=E_\pi[G_t|S_t=s,A_t=a]=E_\pi[\sum_{k=0}^{\infty}\gamma^k R_{t+k+1}|S_t=s,A_t=a] qπ(s,a)=Eπ[GtSt=s,At=a]=Eπ[k=0γkRt+k+1St=s,At=a]

(3)Q函数和V函数的关系
v函数表示在状态s下,采取所有可能动作的未来奖励之和。
v π ( s ) = ∑ a ∈ A t q π ( s , a ) v_\pi(s)=\sum_{a \in A_t} q_\pi(s,a) vπ(s)=aAtqπ(s,a)

4.3 模型

模型决定了下一个状态。它由概率和奖励函数两部分组成
(1)状态转移概率
表示在状态s下,采取动作a,下一状态转化为s’的概率
P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] P_{ss'}^a=P[S_{t+1}=s'|S_t=s,A_t=a] Pssa=P[St+1=sSt=s,At=a]

(2)奖励函数
表示在当前状态采取某个行为可以获得的奖励
R s a = E [ R t + 1 ∣ S t = s , A t = a ] R_s^a=E[R_{t+1}|S_t=s,A_t=a] Rsa=E[Rt+1St=s,At=a]

4.4 类型

在这里插入图片描述
(1)基于价值的智能体(value-based agent)
显示的学习价值函数,隐式的学习策略。它维护一个价值表格或价值函数,并以此选取价值最大的动作。
在这里插入图片描述
常用算法

  • Q-Learning
  • Sarsa

(2)基于策略的智能体(policy-based agent)
直接学习策略。当学习好环境以后,在每个状态都会得到一个最佳行为。
在这里插入图片描述
常用算法

  • 策略梯度算法

(3)有模型智能体(model-based agent)
根据环境经验,对环境进行建模构建一个虚拟世界,同时在虚拟世界和现实世界学习。
要求:能对环境建模。即能预测下一步的状态和奖励

(4)免模型智能体(model-free agent)
不对环境进行建模,直接与真实环境交互来学习最优策略。
目前,大部分深度强化学习都采用免模型学习。

5. 学习与规划

(1)学习(learning)
由于环境初始时是未知的,智能体需要不断与环境交互,逐渐改进策略

(2)规划(planning)
获得学习好的模型后,智能体不需要实时与环境交互就能知道未来环境。可以根据当前状态,根据模型寻找最优策略。

(3)解决思路
先学习环境如何工作,建立模型。再利用模型进行规划。

6. 探索和利用

探索:通过试错来理解采取的某个行为能否得到好的奖励。
利用:直接采取已知的可以得到很好奖励的行为。
(探索:看某个行为的奖励,利用:选取已知可以取得最好奖励的行为)
探索和利用窘境(exploration-exploitation dilemma):探索(即估计摇臂的优劣)和利用(即选择当前最优摇臂) 这两者是矛盾的,因为尝试次数(即总投币数)有限,加强了一方则会自然削弱另一方

Reference

https://github.com/datawhalechina/easy-rl

Logo

苏州本地的技术开发者社区,在这里可以交流本地的好吃好玩的,可以交流技术,可以交流招聘等等,没啥限制。

更多推荐