Value Function Approximation
如何将强化学习应用到大的数据集
- 希望使用value function进行归纳法,因为表格记录函数值收到状态数量限制。
-
学习这种总结归纳法,使用有效方法估计函数值。
- 建立新的函数逼近value function,包含自己设定的权重w,同时可以估计所有位置的状态。
-
采用MC或者TD方法,更新逼近函数。
-
类似一个黑盒子,输入s和a,调整w,训练逼近函数,类似于神经网络。
-
内部是什么样的呢,索性用机器学习思想设计逼近函数。
- 逼近函数需要知道梯度来进行更新。
-
独立同分布训练数据在这里并不适用。
Incremental Methods
-
从梯度下降开始,下图介绍梯度下降法。
- 使用梯度下降法逼近value function。
- 假设这是一个监督学习,我们能够得到真实的value function,则可以通过减小误差的方法进行梯度下降,从而更新参数。
-
假设我们有一个特质向量,每一个维度表示某一特征表示。
- 使用神经网络的黑盒子模型进行非线性逼近来估计value function。
- 线性value function逼近,即假设value function和特征向量是线性关系。
-
同样的,使用梯度下降的方式更新参数w。(这页ppt最后一行)
-
上节课讲的表格查找法其实是线性value function逼近的一种特殊形式。也是状态矩阵乘权重向量,得到Q-table
实际怎么做的
- 实际上我们没有监督者告诉我们实际,所以我们用MC或者TD方法估计实际的value function,同样的使用梯度下降方式进行参数更新。
-
用MC方法进行value function 逼近。
- 同样的,使用TD方法进行vlaue function逼近。是TD error。
- 为什么只做目标函数的梯度,因为实际上没有做真的TD运算,只是直接信任,并没有反过来估计真实样本。
value function的逼近控制
- 同样的,只评估部分样本节约时间。
-
上节课提到的,我们需要做policy Iteration,如果我们估计直接估计Q,我们就没有模型的限制,同时还可以做贪心行为。
- 所以我们想要构造函数逼近实际的从而使用梯度下降方法更新梯度。
-
还是从最简单的线性假设入手。
- 同样的可以使用TD算法估计,利用梯段下降进行更新。
-
像小车车游戏就更适合用TD方法更新。
3如果非线性,需要很多辅助函数,会造成离散,无法收敛。
-
括号表示因为使用了贪婪策略,会震荡。
Batch Methods
- 目前我们只是简单地使用的梯度下降的方法,但并没有最大化的使用,找到了最好的但不是最合适的函数值,所以我们期望找到最合适的函数值。
-
所以我们用Batch methods的方法,学习已经建立的经验库 。
-
最小二乘法,学习经验数据库。
- 经验回放 把训练过的东西保留在训练资料库中,然后类似监督学习标准的学习。
-
进行梯度下降,直到找到最小均方误差。
DQN
- TD不适用于神经网络。
- 经验回放能够稳定你的神经网络,打破了混合之间的联系,消除之间潜在的关联,让出现顺序随机化,反而能够更加稳定的更新。
-
运用两套不同的参数向量,冻结下老的神经网络,试图储存下所有看过的信息,之后用目标对冻结的神经网络进行参数给与,获得更加稳定的参数更新。