强化学习——基础概念

文章目录

前言

本文所有概念均摘自《深度强化学习》,如有错误,欢迎指出


基础概念

概率论

  • 随机变量为一个不确定量,通常用大写字母表示,其取值取决于一个随机事件
  • 一次实验,随机变量的取值称为观测值,通常用小写字母表示
  • 离散随机变量的概率可通过概率质量函数获得
  • 连续随机变量的概率可通过概率密度函数求积分获得

蒙特卡洛

  • 简言之,利用观测值来计算目标的近似结果,利用的观测值越多,计算结果越精确,例如随机变量 A A A的期望为 E ( A ) E(A) E(A),我们可以进行m次实验,得到随机变量 A A A的m个观测值,对m个观测值取平均,作为 E ( A ) E(A) E(A)的近似值,m越大,近似值越接近 E ( A ) E(A) E(A)

强化学习基础概念

  • 强化学习的目标:强化学习的目标是找到一个决策规则(策略),使得系统获得最大累积奖励值。

  • 状态:对当前环境的概括,例如围棋游戏,当前棋盘上所有棋子的位置就是状态,状态是做决策的唯一依据

  • 状态空间:所有可能存在状态的集合,状态空间可以是无限的,也可以是有限的

  • 动作:指做出的决策,例如在超级马里奥游戏中,马里奥只能向左、向右、向上,那么动作就是这三者中的一种

  • 动作空间:指所有可能动作的集合,在超级马里奥的例子中,动作空间为{上、左、右}

  • 智能体:指动作的主体,由谁做动作,谁就是智能体,在超级马里奥的例子中,马里奥就是智能体

  • 奖励:智能体执行一个动作后,环境返回给智能体的一个数值,举个例子,小学生(智能体)完成了作业(动作),父母让他打一小时王者荣耀(奖励),奖励依赖于当前的状态 s t s_t st​,智能体执行的动作 a a a,有些情况下也依赖于下一时刻的状态 s t + 1 s_{t+1} st+1​

  • 环境:谁能生成新的状态,谁就是环境

  • 状态转移:给定状态s,智能体执行动作a,环境通过状态转移函数给出下一时刻的状态

  • 智能体与环境交互:观测到当前状态s,AI用策略函数计算出所有动作的概率,接着利用动作的概率做随机抽样,选择一个让智能体执行的动作,智能体执行完动作后,环境依据状态转移函数生成新的状态,并反馈给智能体奖励

  • 回报:从当前时刻开始到结束的所有奖励的总和,也称为累计奖励,设 t t t时刻的回报为随机变量 U t U_t Ut​, t t t时刻的奖励为 R t R_t Rt​,则有
    U t = R t + R t + 1 + R t + 2 + . . . . . . U_t=R_t+R_{t+1}+R_{t+2}+...... Ut​=Rt​+Rt+1​+Rt+2​+......

  • 折扣回报:设折扣率为 γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1],则折扣回报为
    U t = R t + γ R t + 1 + γ 2 R t + 2 + . . . . . . U_t=R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+...... Ut​=Rt​+γRt+1​+γ2Rt+2​+......
    折扣率为超参数

  • 回报 U t U_t Ut​的随机性来源于 t t t时刻的动作以及 t t t时刻后的动作以及状态

常用函数符号

  • 动作价值函数:其数学表达式为
    Q π ( s t , a t ) = E S t + 1 , A t + 1 , . . . , S n , A n [ U t ∣ S t = s t , A t = a t ] Q_{\pi}(s_t,a_t)=E_{S_{t+1},A_{t+1},...,S_n,A_n}[U_t|S_t=s_t,A_t=a_t] Qπ​(st​,at​)=ESt+1​,At+1​,...,Sn​,An​​[Ut​∣St​=st​,At​=at​]
    其含义为在策略 π \pi π下,智能体在状态 s t s_t st​做出动作 a t a_t at​后获得回报的上限(上限不能超过期望,即平均值),其取值依赖于策略 π \pi π以及 t t t时刻的状态 s t s_t st​以及动作 a t a_t at​

  • 最优动作价值函数:其数学表达式为
    Q ∗ ( s t , a t ) = max ⁡ π Q π ( s t , a t ) Q_{*}(s_t,a_t)=\max_{\pi} Q_{\pi}(s_t,a_t) Q∗​(st​,at​)=πmax​Qπ​(st​,at​)
    当策略 π \pi π是最优时,动作价值函数即为最优动作价值函数,其取值依赖于 t t t时刻的状态 s t s_t st​以及动作 a t a_t at​,

  • 状态转移函数:环境利用状态转移函数生成新的状态,状态转移函数通常是一个条件概率密度函数,比如AI与人类下棋,AI下完后,棋盘的后续的状态如何取决于人类会将棋子放在哪里,人类放棋子这个动作是随机的,设当前智能体状态为 S S S,动作为 A A A,则状态转移函数为
    P ( s ′ ∣ s , a ) = P ( S ′ = s ′ ∣ S = s , A = a ) P(s'|s,a)=P(S'=s'|S=s,A=a) P(s′∣s,a)=P(S′=s′∣S=s,A=a)

  • 策略函数:根据观测到的状态做出决策,从而控制智能体,设状态为 S S S,动作为 A A A,策略函数的条件概率密度函数为
    π ( a ∣ s ) = P ( A = a ∣ S = s ) \pi(a|s)=P(A=a|S=s) π(a∣s)=P(A=a∣S=s)
    即已知当前的状态,做出动作a的概率。强化学习的目标是学习策略函数,奖励定义的好坏非常影响强化学习的效果

  • 状态价值函数:用来衡量当前状态的好坏,未来的回报越大,则当前状态越好。其数学表达式为
    V π ( s t ) = E A t , S t + 1 , A t + 1 , . . . , S n , A n [ U t ∣ S t = s t ] V_{\pi}(s_t)=E_{A_t,S_{t+1},A_{t+1},...,S_n,A_n}[U_t|S_t=s_t] Vπ​(st​)=EAt​,St+1​,At+1​,...,Sn​,An​​[Ut​∣St​=st​]
    其与动作价值函数的关系为(~符号显示不出来,用 ∈ \in ∈表示服从某概率分布)
    V π ( s t ) = E A t , S t + 1 , A t + 1 , . . . , S n , A n [ U t ∣ S t = s t ] = E A t ∈ π ( . ∣ s t ) [ E S t + 1 , A t + 1 , . . . , S n , A n [ U t ∣ S t = s t , A t ] ] = E A t ∈ π ( . ∣ s t ) [ Q π ( s t , A t ) ] \begin{aligned} V_{\pi}(s_t)&=E_{A_t,S_{t+1},A_{t+1},...,S_n,A_n}[U_t|S_t=s_t]\\ &=E_{A_t \in \pi(.|s_t)}[E_{S_{t+1},A_{t+1},...,S_n,A_n}[U_t|S_t=s_t,A_t]]\\ &=E_{A_t \in \pi(.|s_t)}[Q_{\pi}(s_t,A_t)] \end{aligned} Vπ​(st​)​=EAt​,St+1​,At+1​,...,Sn​,An​​[Ut​∣St​=st​]=EAt​∈π(.∣st​)​[ESt+1​,At+1​,...,Sn​,An​​[Ut​∣St​=st​,At​]]=EAt​∈π(.∣st​)​[Qπ​(st​,At​)]​

价值学习与策略学习

  • 价值学习:强化学习的目标为学习最优动作价值函数或最优状态价值函数,利用最优动作价值函数或最优状态价值函数控制智能体运动
  • 策略学习:强化学习的目标为学习策略函数,利用策略函数控制智能体的动作
上一篇:Node.js开发指南 - 学习笔记(一)


下一篇:【requireJS源码学习02】data-main加载的实现