知识笔记
仅记录我学强化学习的过程,学习到的有关知识记下笔记和自己有关的理解,并不全是专业的解释,大家看看参考一下。
学习视频详情见:wangshusen/DRL: Deep Reinforcement Learning (github.com)
强化学习概念
强化学习概念较多,有一些数学相关,以下列出。
Agent (智能体):动作的执行者
Environment (环境)
State (状态)
Action (动作)
Reward (奖励):强化学习希望得到的奖励尽可能的高,reward可以自己设置。
Policy (策略):,根据当前状态做出决策,做出什么动作,有多大可能性进行随机抽样。
例如
State Transition (状态转移):
例如状态s1执行动作a1到状态s2,
Return (回报),也叫cumulative future reward
从t时刻开始的所有奖励和
discounted return(折扣回报):discount rate折扣率(从0到1)(一个微调的超参数),
,越小的越短视,越大的越长远
Value Functions (价值函数)
action-value function(动作价值函数)
可以看到,与策略有关,在不同的策略中,有一个最佳策略
state-value function(行为价值函数)
trajectory(轨迹)
experience(经验)
多个已有的四元组
——————————————————————————————————————————
强化学习交互过程:
强化学习的随机性:
1.根据当前状态做出动作,这样的策略具有随机性
2.根据当前状态和策略,实际的新状态具有随机性
强化学习学习的内容:
1.policy策略函数的概率值
2.最大动作价值函数
马尔可夫决策过程:不给出公式了,一句话,决策只根据当前情况,与之前的过程无关
价值学习:
TD算法:temporal difference learning
DQN:用一个神经网络来近似Q*
TD算法:
使用td算法条件:(是约等于)
输入:s
输出:对每个a的打分
预测值
执行at后环境更新为st+1并有奖励rt
TD target
loss=
梯度下降更新:
策略学习
算法
求一个策略函数,通过自动控制agent行动
想要求一个策略函数比较困难,将策略函数替换成策略网络,
评估条件
输入:s
更新,注意并不是J对\theta的导数,是策略梯度
策略梯度算法:
如何求
对方法二 演员-评论家方法的具体描述
演员策略网络同价值学习
评论家 价值网络
算法:
使用baseline最后一项qt改为第5条,使用baseline往往效果更好
baseline证明:
b的选择:,因为是的期望,是接近的
蒙特卡洛树搜索
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)
一局具体的游戏做一次参数更新
每次根据观测值做一次近似
对观测后的函数的参数在置信域内求最大值