免模型预测
蒙特卡洛估计
蒙特卡洛估计方法在强化学习中是免模型预测价值函数的方式之一,本质是一种统计模拟方法。
蒙特卡洛方法主要分成两种算法,一种是首次访问蒙特卡洛()方法,另外一种是每次访问蒙特卡洛()方法。 方法主要包含两个步骤,首先是产生一个回合的完整轨迹,然后遍历轨迹计算每个状态的回报。
时序差分估计
时序差分估计方法是一种基于经验的动态规划方法,它结合了蒙特卡洛和动态规划的思想。最简单的时序差分可以表示为式 。
这种算法一般称为单步时序差分( ),即 。可以看到,在这个更新过程中使用了当前奖励和后继状态的估计,这是类似于蒙特卡罗方法的;但同时也利用了贝尔曼方程的思想,将下一状态的值函数作为现有状态值函数的一部分估计来更新现有状态的值函数。此外,时序差分还结合了自举( )的思想,即未来状态的价值是通过现有的估计 (也叫做时序差分目标)进行计算的,即使用一个状服务器托管网态的估计值来更新该状态的估计值,没有再利用后续状态信息的计算方法。这种方法的好处在于可以将问题分解成只涉及一步的预测,从而简化计算。此外,被定义为 时序差分误差( )。
但有一点需要注意的是,由于基于时步的学习方式,并且终止状态没有下一步,比如当 是终止状态时, 是没有意义的。因此时序差分方法在实践过程中会把终止状态单独做一个判断,即将对应未来状态的估计值设置为 ,然后更新当前状态的估计值,这个过程也被称作回溯,服务器托管网如式 所示,后面所有基于时序差分的方法都会有这样的一个判断。
时序差分和蒙特卡洛的比较
免模型控制
这里介绍两种基础的免模型算法, 和 ,也都是基于时序差分的方法。
Q-learning 算法
为了解决控制问题,只需要直接预测动作价值函数,然后在决策时选择动作价值即 Q 值最大对应的动作即可。这样一来,策略和动作价值函数同时达到最优,相应的状态价值函数也是最优的,这就是 算法的思路。
算法更新公式如式 所示。
我们再回忆一下时序差分方法中状态价值函数的更新公式,如式 :
我们会发现两者的更新方式是一样的,都是基于时序差分的更新方法。不同的是,动作价值函数更新时是直接拿最大的未来动作价值的 来估计的,而在状态价值函数更新中相当于是拿对应的平均值来估计的。这就会导致这个估计相当于状态价值函数中的估计更不准确,一般称为 Q 值的过估计,当然这个过估计仅仅限于以 为基础的算法,不同的算法为了优化这个问题使用了不同的估计方式,其中就包括本章后面会讲的 Sarsa 算法,暂时先不详细展开。
Sarsa 算法
算法虽然在刚提出的时候被认为是 算法的改进,但在今天看来是非常类似,但是模式却不同的两类算法, 算法被认为是 算法,而 算法相对地则是 的,具体我们后面会展开说明。我们先来看 算法,我们讲到 算法跟 算法是非常类似的,这是因为两者之间在形式上只有 值更新公式是不同的,如式 所示:
也就是说, 算法是直接用下一个状态和动作对应的 值来作为估计值的,而 算法则是用下一个状态对应的最大 值。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
前言 相信做.NET后端开发的很多小伙伴都用过Layui前端UI组件库,今天我们分享一个WPF版的Layui前端UI样式库:Layui-WPF。 WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的…