强化学习入门

知识笔记

仅记录我学强化学习的过程,学习到的有关知识记下笔记和自己有关的理解,并不全是专业的解释,大家看看参考一下。

学习视频详情见:wangshusen/DRL: Deep Reinforcement Learning (github.com)

强化学习概念

强化学习概念较多,有一些数学相关,以下列出。

Agent (智能体):动作的执行者

Environment (环境)

State (状态)

Action (动作)

Reward (奖励):强化学习希望得到的奖励尽可能的高,reward可以自己设置。

Policy (策略):\pi (a|s),根据当前状态做出决策,做出什么动作,有多大可能性进行随机抽样。\pi (a|s)=P(A=a|S=s)

例如\pi (a1|s1)=0.5,\pi (a2|s1)=0.5,\pi (a3|s1)=0

State Transition (状态转移):p(s2|s1,a1)=P({S}'=s2|S=s1,A=a1)

例如状态s1执行动作a1到状态s2,s1\overset{a1}{\rightarrow}s2

Return (回报),也叫cumulative future reward

U_{t}=R_{t}+R_{t+1}+R_{t+2}+...从t时刻开始的所有奖励和

discounted return(折扣回报):discount rate折扣率\gamma(从0到1)(一个微调的超参数),

U_{t}=R_{t}+\gamma^{}R_{t+1}+\gamma^{2}R_{t+2}+...,越小的\gamma越短视,越大的\gamma越长远

Value Functions (价值函数)

action-value function(动作价值函数)

Q_{\pi}(s_{t},a_{t})=E[U_{t}|S_{t}=s_{t},A_{t}=a_{t}]

可以看到,Q_{\pi}与策略有关,在不同的策略中,有一个最佳策略

Q^{*}(s_{t},a_{t})=\underset{\pi}maxQ_{\pi}(s_{t},a_{t})

state-value function(行为价值函数)

V_{\pi}(s_{t})=E_{A}[Q_{\pi}(s_{t},A)]=\sum _a\pi(a|s_t)*Q_\pi(s_t,a)=\int _a\pi(a|s_t)*Q_\pi(s_t,a) 

trajectory(轨迹)

experience(经验)

多个已有的\{(s_t,a_t,r_t,s_{t+1})\}四元组

——————————————————————————————————————————

强化学习交互过程:

强化学习的随机性:

1.根据当前状态做出动作,这样的策略具有随机性

2.根据当前状态和策略,实际的新状态具有随机性

强化学习学习的内容:

1.policy策略函数的概率值\pi(a|s)

2.最大动作价值函数Q^{*}

马尔可夫决策过程:不给出公式了,一句话,决策只根据当前情况,与之前的过程无关

价值学习:

TD算法:temporal difference learning

Q(s_t,a_t;w_t)

DQN:用一个神经网络来近似Q*

TD算法:

使用td算法条件:Q(s_t,a_t;w)=r_t+\gamma Q(s_{t+1},a_{t+1};w)(是约等于)

输入:s

输出:对每个a的打分

预测值q_t=Q(s_t,a_t;w_t)

dt=\frac{\partial q_t=Q(s_t,a_t;w)}{\partial w}|_{w=w_t}

执行at后环境更新为st+1并有奖励rt

TD target       y_t=r_t+\gamma *\underset{a}maxQ(s_{t+1},a;w_t)

loss=1/2*(Q_w-y)^2

梯度下降更新:w_{t+1}=w_t-\alpha *\frac{\partial L}{\partial w}|_{w=w_t}=w_t-\alpha *(q_t-y_t)*dt

策略学习

算法

求一个策略函数\pi,通过\pi自动控制agent行动

想要求一个策略函数比较困难,将策略函数替换成策略网络,V(s;\theta )=\sum \pi(a|s;\theta )*Q_\pi(s,a)

评估条件J(\theta )=E_s(V(s;\theta ))

输入:s

更新\theta =\theta +\beta \frac{\partial V(s;\theta) }{\partial s},注意并不是J对\theta的导数,\frac{\partial V(s;\theta) }{\partial s}是策略梯度

策略梯度算法:

如何求Q_\pi

对方法二 演员-评论家方法的具体描述

演员\pi策略网络同价值学习

评论家 价值网络

算法:

使用baseline最后一项qt改为第5条\delta t,使用baseline往往效果更好

baseline证明:

b的选择:V_\pi,因为V_\piQ_\pi的期望,是接近Q_\pi

蒙特卡洛树搜索

TD算法:

State-Action-Reward-State-Action (SARSA) 算法

“多步 TD target”,它是对标准的 TD target 的推广。它是训练 DQN 和价值网络的常用技巧,它可以让 Sarsa 和 Q-learning 算法效果更好

Experience Replay (经验回放) 和 Prioritized Experience Replay (优先经验回放)

经验回放有两个好处:1. 重复利用收集到的奖励;2. 打破两条 transitions 之间的相关系

高估问题:

高估原因:

TD算法使DQN高估真实的动作价值

1.求max最大化会导致高估,数学上可证明。Q是dqn神经网络对Q的估计,估计存在误差,在误差均值为0的基础上即无偏估计,E[max(Q预测值)]大于E[max(Q真实值)]

2.bootstraping自举,不断高估

两种解决方案:Target Network 和 Double DQN

Target Network

在DQN的唯一改动在对Q(st+1)上,使用target network,其实就是一个类似于训练过程中的DQN,使用target network计算,一定程度上避免自举

参数w的更新方式

double DQN不同之处

在a*的选择上

target network 缓解自举造成的高估

double DQN缓解自举和最大化造成的高估

置信域策略优化 (Trust Region Policy Optimization, TRPO)

是一种策略学习算法,目的是学到策略网络。TRPO 与策略梯度算法非常相似,目标函数都是 J(θ);两者的区别在于如何求解 max J(θ)。策略梯度算法使用随机梯度上升,而 TRPO 使用置信域算法 (Trust Region Algorithms)

一局具体的游戏做一次参数更新

每次根据观测值做一次近似

对观测后的函数的参数在置信域内求最大值

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值