强化学习了解
基本概念
- 介于监督和无监督学习之间,没有绝对标签,但是有reward判断哪个决策好。关键问题是贡献度分配问题,每一个动作并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,有一定的延时性.
- agent和environment
- 状态、观测
- 行动action,产生状态转移,
#card=math&code=s_%7Bt%2B1%7D%3Df%28s_t%2Ca_t%29)
- 策略policy,agent大脑。通常采用随机策略,包括分类策略(离散动作空间)和对角高斯策略(连续)
- 轨迹,一系列状态,马尔可夫决策过程
- reward和return(累计奖励),
#card=math&code=rt%3DR%28s_t%2Ca_t%2Cs%7Bt%2B1%7D%29)
- RL问题定义:选择一种策略,能最大化return
- reward累计最大->更好的policy->更好的状态转移矩阵(马尔可夫决策过程)
- 深度强化学习,用强化学习定义问题和优化目标,用深度学习解决策略和值函数的建模,BP算法优化。
值函数
- 值函数可以看成是对策略
的评估,根据值函数优化策略。
- 假设在状态
,有一个动作
使得
%3E%F0%9D%91%89%5E%F0%9D%9C%8B(%F0%9D%91%A0)#card=math&code=%F0%9D%91%84%5E%F0%9D%9C%8B%28%F0%9D%91%A0%2C%F0%9D%91%8E%5E%E2%88%97%29%3E%F0%9D%91%89%5E%F0%9D%9C%8B%28%F0%9D%91%A0%29),说明执行动作
的回报比 当前的策略
#card=math&code=%F0%9D%9C%8B%28%F0%9D%91%8E%7C%F0%9D%91%A0%29)要高,我们就可以调整参数使得策略中动作
的概率
#card=math&code=%F0%9D%91%9D%28%F0%9D%91%8E%5E%E2%88%97%7C%F0%9D%91%A0%29)增加.
状态值函数
#card=math&code=V%5E%5Cpi%28s%29)
从状态s开始,执行策略
得到的状态总回报
贝尔曼方程:你起点的价值是你期望从那里得到的回报,加上你下一个着陆点的价值
最优化的状态值函数
#card=math&code=V%5E%2A%28s%29)
状态-动作值函数
#card=math&code=Q%5E%5Cpi%28s%2Ca%29)
- 初始状态s并执行动作a,然后执行策略
得到的状态总回报
#card=math&code=V%5E%5Cpi%28s%29)是
#card=math&code=Q%5E%5Cpi%28s%2Ca%29)关于a的期望
- 贝尔曼方程:
%3Dr(s%2Ca%2Cs’)%2B%7B%5Cgamma%7DQ%5E%5Cpi(s’%2Ca’)#card=math&code=Q%5E%5Cpi%28s%2Ca%29%3Dr%28s%2Ca%2Cs%27%29%2B%7B%5Cgamma%7DQ%5E%5Cpi%28s%27%2Ca%27%29)
- 优势:action之间的相对优势,
%3DQ%5E%5Cpi(s%2Ca)-V%5E%5Cpi(s)#card=math&code=A%5E%5Cpi%28s%29%3DQ%5E%5Cpi%28s%2Ca%29-V%5E%5Cpi%28s%29)
分类
- Model-Free和Model-Based,能否访问(或学习)环境,模型是否已知
学什么:
- 策略(随机或确定)
- 动作价值函数Q Function
- Value Function
- 与或环境模型
基于策略迭代的方法
- 先随机初始化一个策略,计算该策略的值函数,并根据值函数来设置新的策略,然后一直反复迭代直到收敛。
模型已知,动态规划
- 策略评估:根据贝尔曼方程计算
#card=math&code=V%5E%5Cpi%28s%29)
- 策略改进:根据
#card=math&code=V%5E%5Cpi%28s%29)计算
#card=math&code=Q%5E%5Cpi%28s%2Ca%29),然后求
%3Dargmax_aQ%5E%5Cpi(s%2Ca)#card=math&code=%5Cpi%28s%29%3Dargmax_aQ%5E%5Cpi%28s%2Ca%29)
- 策略评估:根据贝尔曼方程计算
模型未知,蒙特卡洛、时序差分(如下)
- 迭代
%2B%3D%7B%5Calpha%7D%2B%7B%5Cbig(%7Dr(s%2Ca%2Cs’)%2B%7B%5Cgamma%7DQ%5E%5Cpi(s’%2Ca’)-Q%5E%5Cpi(s%2Ca)%7B%5Cbig)%7D#card=math&code=Q%5E%5Cpi%28s%2Ca%29%2B%3D%7B%5Calpha%7D%2B%7B%5Cbig%28%7Dr%28s%2Ca%2Cs%27%29%2B%7B%5Cgamma%7DQ%5E%5Cpi%28s%27%2Ca%27%29-Q%5E%5Cpi%28s%2Ca%29%7B%5Cbig%29%7D),然后求
%3Dargmax_aQ%5E%5Cpi(s%2Ca)#card=math&code=%5Cpi%28s%29%3Dargmax_aQ%5E%5Cpi%28s%2Ca%29)
- SARSA:同策略执行,采样和优化的策略不一样,采样的策略是一开始给定的。
- Q-Learning:不同策略执行,即采样策略随优化更新。
- DQN:用Q-Network代替Q表
- 迭代
基于策略梯度的方法
- 在策略空间搜索,策略梯度,使用梯度上升算法优化策略函数的参数使目标函数最大
Reinforce算法,期望通过采样近似。根据当前策略,随机游走采集多轨迹近似策略梯度,每次更新参数。
- 初始化策略
- 根据策略生成轨迹
- 计算每个时刻到终点的return,更新策略参数
- 重复上述两步,直到策略收敛
- 带基准线的Reinforce算法,减小不同路径的方差。学习一个值函数(每次也更新值函数的参数),更新策略参数时用return和学习到的值函数的偏差。
Actor-Critic算法(演员-评论家)
- 与Reinforce的区别是不是生成完整轨迹,而是通过时序差分学习。
- 演员是策略函数,评论家是值函数。借助值函数,可以在迭代时更新参数。
- 估计累计回报时使用
#card=math&code=G%3Dr%7Bt%2B1%7D%2B%7B%5Cgamma%7DQ_w%28s%7Bt%2B1%7D%2Ca_%7Bt%2B1%7D%29),误差
#card=math&code=%3DG-Q_w%28s_t%2Ca_t%29)
