强化学习(David Silver)6:值函数近似

1、简介

1.1、为什么有值函数近似

状态空间太大,基于DP/MC/TD的方法的离散值太多,存储量太大,运行太慢

1.2、值函数近似有两种方法

一个是状态值函数方法;一个是状态动作值方法

1.3、值函数近似的三种类型

类型1:输入状态S,输出v

类型2:输入状态S,action a,输出Q(s,a,w)

类型3:输入状态S,输出Q(s,a1,w),Q(s,a1,w)

2、增量计算方法

2.1、基础

逼近函数:特征的线性组合/神经网络/决策树/最近邻/傅里叶基/小波基

训练方法:可以拥有非平稳,非独立同分布的数据

2.2、状态值函数逼近

使用状态特征函数来表征一个状态, 无需存储状态

MC倾向于一个局部最优解;线性非线性都OK

线性TD(0)倾向于全局最优解

2.3、动作-状态值函数逼近

TD不一定收敛

同策略的非线性TD不一定收敛; 异策略线性/非线性TD都不收敛

GradientTD对于非线性函数也收敛; 但是课程中没有说明为什么以及怎么做

2.4、控制算法的收敛性

MC/Sarsa不收敛, 但是会非常接近最优值; Q-lerning对于线性问题不收敛

MC/Sarsa/Q-learing/Gradient Q-learing对于非线性问题都不收敛

3、批量计算方法

3.1、思想

增量算法没有使用历史信息来逼近; 而因为是用函数逼近值函数, 值函数对于历史的刻画不够(个人理解, 非课程描述)

3.2、使用最小二乘损失来逼近值函数

值函数:

经验回放随机抽样+随机梯度下降,就可以收敛到最小二乘

个人理解: 这里的经验回放和增量算法的不同在于样本顺序的不同, 在增量算法中, 样本按照时序进入算法, 这里是随机顺序进入

状态值函数:

DQN: Deep Q-network+ Q-learing, 需要记住四个值: s, a, r, s', Q-learing步, 最大化的是a'

DQN中有两个NN(个人理解是先批量处理样本, 得出一个NN, 然后在新的一批样本中, 用已有的NN升级另一个NN, 如此往复, 用以保持算法的稳定性)

DQN的核心: 回放+固定Q

这样, 是否回放和是否使用固定Q可以组成四种方法; 回放对于效果的提升最大, 是数量级的提升

使用经验回放可以找到最小二乘解, 使用线性值函数逼近可以直接求得最小二乘解

目标方程: 0= Sigma lambda*(拟合目标 - V(St))*V(St)

收敛性: LSTD/LSMC对于线性拟合函数都收敛 

如果发现文中有问题,敬请联系作者批评指正,真诚欢迎您的指教,谢谢!

微信: legelsr0808

邮箱: legelsr0808@163.com

原文地址:https://www.cnblogs.com/ai1024/p/7385487.html