【从RL到DRL】深度强化学习基础(一)——基本概念、价值学习(DQN与TD算法)、策略学习与策略梯度

强化学习基本

概率论知识回顾

随机变量 :一个变量,其值取决于随机事件的结果。大写字母X代表随机变量。小写字母x表示一个观测值
概率密度函数(PDF) :意味着随机变量在某个确定的取值点附近取值的可能性。对于连续分布,随机变量的概率密度函数积分等于1,如果是离散分布,随机变量的离散概率值求和等于1。
期望 :对于连续分布与离散分布的变量,其期望表达式分别为:在这里插入图片描述
随机抽样 :在python中,可以通过numpy库中的函数实现快速抽样:

from numpy.random import choice
samples = choice(['R','G','B'],size = 100,p = [0.2,0.5,0.3])
print(samples)

专用术语

  • 状态(State)动作(action)在这里插入图片描述
  • 策略函数π(Policy)奖励(Reward):在这里插入图片描述
  • 状态转移(State transition): old state -- action --> new state,状态转移可以是随机的,随机性来自于环境(environment)
  • Agent与环境:在这里插入图片描述
  • Return(U) & Reward(R):return是未来回报的加和在这里插入图片描述
  • 理解价值函数(Value Functions):
    • 动作价值函数:对于策略π,动作价值函数评估了当agent处在状态s时,去执行动作a的优劣在这里插入图片描述
    • 状态价值函数(State - value Function):对于给定的策略π,状态价值函数可以评估当前的状态是不是好的,而如果将状态s视为随机变量,对状态价值函数求期望,便可以评估策略函数π的优劣性(π越好则状态价值函数的期望值越高)在这里插入图片描述

价值学习Deep Q-Network(DQN)

如何理解最优价值函数?
Q*函数可以预见,当智能体处于状态s时,执行动作a是否是利于最终取胜的在这里插入图片描述

DQN方法就是一种近似求解Q函数的方法,使用神经网络Q(s,a;w)去近似Q(s,a)
在这里插入图片描述

使用DQN来play game
在这里插入图片描述

TD算法(Temporal Difference Learning)

算法流程(举例)

  • 如果使用函数模型Q(w)来评估执行一个动作所需要的时间
  • 在动作执行前首先做出预测q = Q(w)
  • 命令Agent实际地完成这一动作,得到一次真实的时间y
  • 并由此得到误差 L=0.5×(q-y)2
  • 进一步,误差L对w求偏导,并使用梯度下降算法迭代w值。α为学习率:在这里插入图片描述在这里插入图片描述

但是其实也可以不必要求Agent执行完整个动作,在动作的执行中,Agent以及走过的路程可以认为是真实的时间,可以对这一信息加以利用
在这里插入图片描述

将TD算法应用于DQN

前文的“动作执行”情景下,从时间角度来看:

等于
T NYC→ATL
T NYC→DC
c
Model's estimate
Actual time

而在DRQ中,也有类似的关系式形式:
在这里插入图片描述

类似的,对于折扣回报
在这里插入图片描述可以得到,Ut = Rt + r*Ut+1,而又因为Q() = E[U()],因此根据这一式子可以得到:
在这里插入图片描述

价值学习的目标就是学得一个函数来近似Q*

策略学习

策略函数 π(a|s;θ) 表征在状态s时执行动作a的概率,对于状态信息较为复杂的场景,我们无法直接得到所有状态概率的具体值,往往采用近似的方式趋近一个策略函数。下图是采用神经网络的结构:
在这里插入图片描述

Softmax函数可以保证输出的结果为整数且加和为1

关系整合与回顾
在这里插入图片描述

  • Ut的随机性来自于之后的所有状态以及动作
  • Qπ(st,at)函数则将状态与动作的随机性全部通过期望的方式积分处理掉了,但Qπ的取值依赖于策略函数π
  • 状态价值函数将动作完全依照策略函数来选取,进一步拿掉了动作的随机性

梯度上升算法(Policy gradient ascent)

根据前文的思想,将状态价值函数中加入神经网络参数θ,使得V()函数变为与s和θ相关的函数:在这里插入图片描述
那么后续地,对状态价值函数关于s求期望,就可以得到仅与θ有关的函数:在这里插入图片描述
进而可以通过梯度上升算法得到使J函数最大的θ值:在这里插入图片描述

策略梯度(Policy Gradient)

针对有限的离散动作集,可以将求期望转化为累加求和。根据求导与累加的可交换性,可将梯度求解公式变形如下:
在这里插入图片描述
如果假设Qπ与θ无关,则可以将Qπ从偏导式中移出,也即:在这里插入图片描述
进一步利用链式求导法则:在这里插入图片描述
即:在这里插入图片描述
至此可以汇总得到策略梯度的两种表达形式:
在这里插入图片描述

计算梯度

对于离散情况
如果动作空间是连续的,那么可以利用Form1,通过枚举的方式计算出所有的梯度求和:在这里插入图片描述
对于连续的动作集:
如A=[0,1],则使用Form2形式求梯度,常规来讲需要使用定积分求解,但是π函数是一个非常复杂的神经网络函数,无法通过积分求解。只能通过蒙特卡洛近似 来求解:

  • 根据策略函数随机在动作集中取一动作结果
  • 计算在这里插入图片描述显然在这里插入图片描述此时g函数是梯度的无偏估计
  • 最终就可以以g()函数来近似作为状态价值函数的梯度值(蒙特卡洛近似)

总结·策略学习

在t时刻观测到状态s t
使用策略函数π得到一个动作a t
计算价值函数的值,记为q t≈Q π(s t,a t)
如何计算Q π?
Reinforce算法
使用神经网络来近似(AC算法)
对价值函数求导,算出logπ对θ的导数d θ,t
近似计算策略梯度g(a tt)=q t·d θ,t
θ t+1t + β·g(a tt)
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值