深度强化学习基本概念-王树森课程笔记

学习资料:
深度强化学习课程-王树森

目录

  • 一、 概率论知识
  • 二、 强化学习专业术语
  • 三、 强化学习的随机性来源
    • 1. action
    • 2. state transition
  • 四、 Rewards, Returns & Value Fuctions
    • 1. Return
    • 2. Value Function
  • 五、 强化学习用AI控制agent
    • 1. Policy-based learning
    • 2. Value-based learning

一、 概率论知识

  • Random Value
    • 随机变量: X X X
    • 随机变量的观测值(没有随机性): x 0 , x 1 , x 2 . . . . . . x_0,x_1,x_2...... x0,x1,x2......
    • X \mathcal X X:随机变量 X X X的定义域
  • Probability Density Function:随机变量在某个确定的取值点附近的可能性
    • 概率密度函数: p ( x ) p(x) p(x)
    • 连续分布: ∫ X p ( x ) d x = 1 \int_\mathcal Xp(x)dx = 1 Xp(x)dx=1
    • 离散分布: ∑ x ∈ X p ( x ) = 1 \sum_{x\in \mathcal X}p(x) = 1 xXp(x)=1
  • Expectation:函数 f ( x ) f(x) f(x)的期望
    • 期望: E [ f ( x ) ] E[f(x)] E[f(x)]
    • 连续分布: E [ f ( x ) ] = ∫ X p ( x ) ⋅ f ( x ) d x E[f(x)]=\int_\mathcal Xp(x)\cdot f(x)dx E[f(x)]=Xp(x)f(x)dx
    • 离散分布: E [ f ( x ) ] = ∑ x ∈ X p ( x ) ⋅ f ( x ) E[f(x)]=\sum_{x\in \mathcal X}p(x)\cdot f(x) E[f(x)]=xXp(x)f(x)
  • Random Sampling
    • 随机抽样

二、 强化学习专业术语

  • state:状态 s s s

深度强化学习基本概念-王树森课程笔记_第1张图片

  • action:动作 a a a

深度强化学习基本概念-王树森课程笔记_第2张图片

  • agent:动作的发出者
  • policy:策略 π \pi π,根据观测到的状态做出决策来控制agent运动
    • 强化学习学的就是policy函数
    • agent动作随机,根据policy来做动作

深度强化学习基本概念-王树森课程笔记_第3张图片

  • reward:奖励 R R R
    • agent做出一个动作后会得到一个奖励,通常需要自己定义
    • 奖励定义的好坏十分影响强化学习的结果
    • 强化学习的目标:获得的奖励总和尽量高
  • state transition:状态转移
    • 当前状态下做出一个动作后转移到新的状态
    • 状态转移可以是确定的也可以是随机的,通常是随机的(随机性来源于环境)
    • 状态转移函数 p ( s ′ ∣ s , a ) = P ( S ′ = s ′ ∣ S = s , A = a ) p(s'|s,a)=P(S'=s'|S=s,A=a) p(ss,a)=P(S=sS=s,A=a)
  • trajectory:轨迹 (state, action, reward)
    • s 1 , a 1 , r 1 , s 2 , a 2 , r 2 , . . . , s T , a T , r T s_1,a_1,r_1,s_2,a_2,r_2,...,s_T,a_T,r_T s1,a1,r1,s2,a2,r2,...,sT,aT,rT

深度强化学习基本概念-王树森课程笔记_第4张图片

  • agent与environment交互
    1. 环境给出当前state s t s_t st
    2. agent根据 s t s_t st做出动作 a t a_t at
    3. 环境更新状态state为 s t + 1 s_{t+1} st+1,并给agent奖励 r t r_t rt
  • 状态、动作奖励等变量如果被观测到了就用小写字母表示,没被观测到就是随机变量用大写字母表示

三、 强化学习的随机性来源

1. action

  • action是由policy函数随机抽样得到的

    P [ A = a ∣ S = s ] = π ( a ∣ s ) P[A=a|S=s]=\pi(a|s) P[A=aS=s]=π(as)

2. state transition

  • 环境用状态转移函数 p ( ⋅ ∣ s , a ) p(\cdot |s,a) p(s,a)算出概率,用概率随机抽样得到下一个状态 S ′ S' S

    P [ S ′ = s ′ ∣ S = s , A = a ] = p ( s ′ ∣ s , a ) P[S'=s'|S=s,A=a]=p(s'|s,a) P[S=sS=s,A=a]=p(ss,a)

四、 Rewards, Returns & Value Fuctions

1. Return

Return:回报(aka cumulative future reward,即未来累计奖励)

  • t t t时刻的回报 U t = R t + R t + 1 + R t + 2 + R t + 3 + ⋯ U_t = R_t+R_{t+1}+R_{t+2}+R_{t+3}+\cdots Ut=Rt+Rt+1+Rt+2+Rt+3+ t t t 时刻的奖励开始一直加到结束
  • 未来的奖励 R t + 1 R_{t+1} Rt+1没有现在的奖励 R t R_t Rt值钱→ R t + 1 R_{t+1} Rt+1的权重应低于 R t R_t Rt

Discounted return:折扣回报(aka cumulative discounted future reward)

  • γ \gamma γ:折扣率, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1],超参数,需要自己调
    • 未来的权重和现在一样: γ = 1 \gamma=1 γ=1
    • 奖励越不重要, γ \gamma γ越小
  • t t t时刻的折扣回报 U t = R t + γ R t + 1 + γ 2 R t + 2 + γ 3 R t + 3 + ⋯ U_t = R_t+\gamma R_{t+1}+\gamma ^2R_{t+2}+\gamma ^3 R_{t+3}+\cdots Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+

2. Value Function

Value Function:价值函数

U t U_t Ut是随机变量,依赖于未来的所有动作 A t , A t + 1 , A t + 2 , ⋯ A_t,A_{t+1},A_{t+2},\cdots At,At+1,At+2,以及未来的所有状 S t , S t + 1 , S t + 2 , ⋯ S_t,S_{t+1},S_{t+2},\cdots St,St+1,St+2,

Action-value Function:动作价值函数

与当前的状态 s t s_t st和动作 a t a_t at以及policy函数 π \pi π有关

Q π ( s t , a t ) = E [ U t ∣ S t = s t , A t = a t ] Q_{\pi}(s_t,a_t)=E[U_t|S_t=s_t,A_t=a_t] Qπ(st,at)=E[UtSt=st,At=at]

直观意义:已知policy函数 π \pi π Q π Q_\pi Qπ给当前状态下所有的动作 a a a打分,从而得知动作的好坏

Optimal action-value function:最优动作价值函数

Q π Q_\pi Qπ关于 π \pi π求最大值,即选择使用让 Q π Q_\pi Qπ值最大的 π \pi π

Q ∗ ( s t , a t ) = m a x π   Q π ( s t , a t ) Q^*(s_t,a_t)=\underset{\pi}{max}\space Q_\pi(s_t,a_t) Q(st,at)=πmax Qπ(st,at)

直观意义:观测到状态 s t s_t st后对动作 a a a做评价,agent可以根据此对动作做出决策

State-value function:状态价值函数

Q π Q_\pi Qπ关于动作 A A A求期望把 A A A消掉,得到的 V π V_\pi Vπ只与 π \pi π和状态 s s s有关

V π ( s t ) = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ) ⋅ Q π ( s t , a ) V_\pi(s_t)=E_A[Q_\pi(s_t,A)]=\sum_a\pi(a|s_t)\cdot Q_\pi (s_t,a) Vπ(st)=EA[Qπ(st,A)]=aπ(ast)Qπ(st,a)

V π ( s t ) = E A [ Q π ( s t , A ) ] = ∫ π ( a ∣ s t ) ⋅ Q π ( s t , a )   d a V_\pi(s_t)=E_A[Q_\pi(s_t,A)]=\int\pi(a|s_t)\cdot Q_\pi (s_t,a)\space da Vπ(st)=EA[Qπ(st,A)]=π(ast)Qπ(st,a) da

直观意义:

  • 已知policy函数 π \pi π,可以判断出当前的局势如何(状态越好数值越大)
  • 判断policy函数 π \pi π的好坏。 π \pi π越好, E S [ V π ( S ) ] E_S[V_\pi(S)] ES[Vπ(S)]越大

五、 强化学习用AI控制agent

1. Policy-based learning

策略学习:学习policy函数 π ( a ∣ s ) \pi(a|s) π(as),用 π \pi π控制agent做动作:

  • 每观测到一个状态 s t s_t st,把 s t s_t st作为policy函数的输入, π \pi π函数输出每一个动作的概率
  • 用得到的概率做随机抽样得到 a t ∼ π ( ⋅ ∣ s t ) a_t\sim\pi(\cdot|s_t) atπ(st)
  • agent执行动作 a t a_t at

2. Value-based learning

价值学习:学习最优价值函数 Q ∗ ( s , a ) Q^*(s,a) Q(s,a),用 Q ∗ Q^* Q控制agent做动作:

  • 每观测到一个状态 s t s_t st,把 s t s_t st作为 Q ∗ Q^* Q函数的输入,用 Q ∗ Q^* Q函数对每一个动作做评价,得到每一个动作的Q值

  • 选择让 Q ∗ Q^* Q函数最大化的动作 a a a作为下一个动作 a t a_t at a t = a r g m a x a Q ∗ ( s t , a ) a_t=argmax_aQ^*(s_t,a) at=argmaxaQ(st,a)

  • 强化学习的任务就是学习 π ( a ∣ s ) \pi(a|s) π(as)函数或 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)函数

  • 强化学习的目的是学会怎样控制agent,让agent根据当前的状态 s t s_t st来做出相应的动作 a t a_t at,争取在未来得到尽量多的奖励

  • 常用标准库:OpenAI Gym https://gym.openai.com/

你可能感兴趣的:(机器学习,深度学习)