Sarsa算法

得到等式如下:

用这个公式推导TD target:

依赖于St,At,St+1。而状态价值函数求期望,所以将的转换公式代入得到两项期望相加。

上面的式子可以得到下面这个式子:

由于直接求期望比较困难,所以这里用了蒙特卡洛近似。将近似成,将近似成,则该等式左边是该时刻的价值,右边是期望,我们把期望近似成TDtarget (yt)。yt部分基于真实观测到的奖励,部分基于做出的预测。

TD learing的想法是将动作价值去接近yt。这是因为完全是估计,而yt一部分是基于真实的奖励,所以认为yt更可靠,把yt当作是观测到的值,即把yt固定住,当成常数,改变动作价值,让其更接近yt。

表格形式的Sarsa算法:

我们想要学习动作价值,输入是状态s和动作a,假设动作和状态的数量都是有限的,那么可以设计图中的表格,表中的每一个元素对应一个动作价值,我们要做的就是用Sarsa算法来更新表格,每次更新一个元素。

1.每次观察一个四元组,每一个四元组称为一个transition;

2.用策略函数来计算下一个动作,把动作记为

3.计算TD target,一部分是观测到的奖励,另一部分是价值函数给下一个动作打的分数,可以查询表格得到;

4.计算TD error,通过查表,也可以知道的值,与yt做差,即可得到TD error;

5.最后更新表中的,α是学习率。

即Sarsa的名字的由来:

 神经网络形式的Sarsa:

当动作和状态很多时,表格已经不再适用,所以用神经网络来模拟Sarsa算法。

可以用神经网络来近似动作价值函数,记作,参数是w,即为价值网络,两者都跟策略π有关,都受π的影响。的输入是状态s,输出是所有动作的价值,如果有n个动作,输出就是n维向量。

在Actor-critic方法中用过,其相当于critic,作用是评价actor的动作,即裁判作用。其参数w一开始是随机初始化的,我们要用观测到的奖励来更新w。

1.计算TD target,一部分是真实观测到的奖励,另一部分是价值网络对t+1时刻的价值估计;

2.计算TD error,我们希望TD error越小越好;

3.将作为损失函数,我们希望通过更新价值网络中的w来减小损失函数;

4.对损失函数关于w求梯度;

5.做梯度下降更新参数w,α是学习率。

总结:

 

 

Sarsa算法是一种基于Q-learning的强化学习算法,用于解决马尔可夫决策过程(MDP)中的问题。Sarsa是State-Action-Reward-State-Action的缩写,它是一种在线学习算法,能够逐步更新Q值函数来寻找最优的动作策略。 Sarsa算法的基本思想是通过不断地与环境进行交互来学习最优的行动策略。在每个时间步骤中,算法会根据当前的状态选择一个行动,并观察到下一个状态和获得的奖励。然后,它会根据这些信息来更新Q值函数,以改进行动策略。 具体来说,Sarsa算法的更新规则如下: 1. 在当前状态s,选择一个行动a,可以使用ε-greedy策略来进行行动选择,即以ε的概率选择一个随机行动,以1-ε的概率选择具有最大Q值的行动。 2. 执行行动a,观察到下一个状态s'和获得的奖励r。 3. 根据新的状态s'和选择的行动a',使用Sarsa的更新规则来更新Q值函数: Q(s, a) = Q(s, a) + α * (r + γ * Q(s', a') - Q(s, a)) 其中,α是学习率,γ是折扣因子,用于衡量当前状态与下一个状态之间的重要性。 通过不断地迭代和更新Q值函数,Sarsa算法能够逐步收敛到最优的Q值函数,从而得到最优的行动策略。 总结起来,Sarsa算法是一种基于Q-learning的在线强化学习算法,通过与环境的交互和不断的Q值函数更新来学习最优的行动策略。它适用于解决马尔可夫决策过程中的问题,并可以在各种应用领域中得到有效的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值