Sarsa和q-learning的区别

今天看到一道强化学习面试题目,才知道即使自己学了这么多理论,但是肯定是学的倒懂不懂的状态,记录以下。

伪代码介绍

Q-learning: off policy
Sarsa: on policy
在这里插入图片描述
在这里插入图片描述

主要区别

  1. Q-learning: off policy, Sarsa: on policy
    其实主要区别是他们两个更新Q_table的方式:
    Q-Learning:
    Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ max ⁡ a Q ( S t + 1 , a ) − Q ( S t , A t ) ] Q\left(S_{t}, A_{t}\right) \leftarrow Q\left(S_{t}, A_{t}\right)+\alpha\left[R_{t+1}+\gamma \max _{a} Q\left(S_{t+1}, a\right)-Q\left(S_{t}, A_{t}\right)\right] Q(St,At)Q(St,At)+α[Rt+1+γamaxQ(St+1,a)Q(St,At)]
    Sarsa:
    Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ Q ( S t + 1 , A t + 1 ) − Q ( S t , A t ) ] Q\left(S_{t}, A_{t}\right) \leftarrow Q\left(S_{t}, A_{t}\right)+\alpha\left[R_{t+1}+\gamma Q\left(S_{t+1}, A_{t+1}\right)-Q\left(S_{t}, A_{t}\right)\right] Q(St,At)Q(St,At)+α[Rt+1+γQ(St+1,At+1)Q(St,At)]

区别详解

其实区别我们可以从伪代码就可以看出来。

  1. 对于Q-Learning来说,在状态 S t S_t St下,根据某个策略( ϵ − g r e e d y \epsilon-greedy ϵgreedy)执行 S t + 1 S_{t+1} St+1 之后,利用在状态 S t + 1 S_{t+1} St+1 下采取所有动作中最大的那个 Q ( S t + 1 , a ) , Q\left(S_{t+1}, a\right), Q(St+1,a), 来更新 Q ( S t , a ) , Q\left(S_{t}, a\right), Q(St,a), 但是其实不真正采取 ( S t + 1 , a ) \left(S_{t+1}, a\right) (St+1,a) 。对于在状态 S t + 1 S_{t+1} St+1 出选择要执行的动作可以理解为 S t = S t + 1 , S_{t}=S_{t+1}, St=St+1, 即在状态 S t + 1 S_{t+1} St+1 下选择要执行的动作依然要使用相同的某策略(如 ϵ − g r e e d y \epsilon-g r e e d y ϵgreedy 策略)。

  2. 对于Sarsa来说:在状态 S t S_{t} St 下,根据某策略 (如 ϵ − g r e e d y \epsilon-g r e e d y ϵgreedy 策略)执行动作 A t A_{t} At 到达状态 S t + 1 S_{t+1} St+1 之 后,此时用来更新 ( S t , a ) \left(S_{t}, a\right) (St,a) Q Q Q 值的方法依然采用某策略 ( ( ( ϵ − g r e e d y \epsilon-g r e e d y ϵgreedy 策略 ) , ), ), 并且真正采取 ( S t + 1 , a ) \left(S_{t+1}, a\right) (St+1,a)

  3. 我们要把选取动作和更新 Q Q Q 表值区分开来,对于两个算法来说,选择动作都是采用某策略 ( ( ( ϵ \epsilon ϵ greedy策略) , 区别就在于 Q − Q- Q learning更新 Q Q Q 值的方式为贪婪策略,即直接选择最大的 Q ( S t + 1 , a ) , Q\left(S_{t+1}, a\right), Q(St+1,a), S a r s a S a r s a Sarsa 更新 Q Q Q 值的方式依然为某策略 ( ( ( ϵ − g r e e d y \epsilon-g r e e d y ϵgreedy 策略).

  4. Q − Q- Q learning选取动作和更新 Q Q Q 表值的方法不同,而 S a r s a S a r s a Sarsa 选取动作和更新 Q Q Q 表值的方法相同。
    (5) Q − Q- Q learning每次选取动作和更新 Q Q Q table后就会生成一个 < s , a , r , s ′ > <s, a, r, s^{\prime}> <s,a,r,s> 序列,成为一个 sample 。 。 同理, S a r s a S a r s a Sarsa 每次选取动作和更新 Q Q Q table后会生成另一个 < s , a , r , s ′ > <s, a, r, s^{\prime}> <s,a,r,s> 序列,成为 另一个sample。

图解

Sarsa
在这里插入图片描述
Q-Learning
在这里插入图片描述
环境的部分我就不细说了,下面说一说Q-learning和Sarsa在解决这个问题的区别在哪里。

区别在于选择action(当前动作和下一个状态采取的动作)

Q-learning每次使用epsilon-greedy的方法,选择当前状态的action,

在更新Q[state][action]的时候,是使用Q[next_state][next_acion],其中next_action是使Q[next_state][next_action]最大的动作。
然后state=next_state,动作再重新选择,next_acion值用于更新Q值。

Sarsa则不同。使用epsilon-greedy选择next_state的next_action,然后用Q[next_state][next_acion]来更新Q[state][action],更新的时候:
state=next_state, action=next_action

从中就可以看出两个算法的区别,Sarsa是一种on-policy算法,Q-learning是一种off-policy算法。
Sarsa选取的是一种保守的策略,他在更新Q值的时候已经为未来规划好了动作,对错误和死亡比较敏感。而Q-learning每次在更新的时候选取的是最大化Q的方向,而当下一个状态时,再重新选择动作,Q-learning是一种鲁莽、大胆、贪婪的算法,对于死亡和错误并不在乎。
在实际中,如果你比较在乎机器的损害就用一种保守的算法,在训练时,可以减少机器损害的次数。
可以看一下代码的运行结果:

Sarsa:选择的是一条最安全的道路,远离陷阱。
————————————————
版权声明:本文为CSDN博主「赵YN的csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39004117/article/details/81705845

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Salsa Lipsync Suite是一款广泛用于动画制作和游戏开发的工具,它的主要功能是为二维或三维角色进行嘴唇同步。 这款软件使用了高级的语音识别技术和算法,能够将输入的语音转化为准确的嘴唇动画。它提供了一个直观的界面,让用户可以轻松地导入角色模型和声音文件,然后对嘴唇动画进行精确的调整。用户可以根据不同的语速、语调和情感需求,自由地调整角色的表情和嘴唇形状。 Salsa Lipsync Suite还支持多语种的嘴唇同步。用户可以选择不同的语言和口音,然后在软件中进行调整和校准,以确保嘴唇动画与语音完美匹配。这个功能非常有用,特别是在多语种项目的开发中。 除了嘴唇同步功能,Salsa Lipsync Suite还提供了其他有用的功能。用户可以在软件中添加表情、手势、眼睛动画等,以进一步增强角色的表现力。此外,软件还支持自定义动画曲线和参数控制,使用户可以更精确地控制角色的动作。 总之,Salsa Lipsync Suite是一款功能强大、易于使用的嘴唇同步工具,为动画制作和游戏开发人员提供了更方便快捷的方式来实现准确的嘴唇动画。它的多语种支持和其他附加功能使其成为一个不可或缺的工具,在提高角色表现力和用户体验方面发挥了重要作用。 ### 回答2: Salsa Lipsync Suite是一款专门用于实现卡通角色嘴部同步的软件。这个软件的设计初衷是为了帮助制作人员更加方便地给动画人物添加生动的嘴型表情。 Salsa Lipsync Suite具有多个主要功能。首先,它可以根据输入的声音轨道自动分析语音的频率和音调,并将其转化为相应的嘴部动画数据。这样,制作人员只需要提供一个声音文件,软件就能自动帮助他们生成逼真的嘴部动画。 此外,Salsa Lipsync Suite还提供了一个用户友好的界面,使得制作人员可以通过简单的拖拽和调整来改变嘴型的动画效果。他们可以根据角色的不同说话风格和情绪,定制不同的嘴型表情,并实时预览所做出的更改。 除了自动化的语音分析和嘴部动画生成外,Salsa Lipsync Suite还具有多语言支持和多种输出选项,使得制作人员可以根据需要轻松将嘴部动画应用于不同的动画平台和场景。 总的来说,Salsa Lipsync Suite是一款功能强大且易于使用的软件,可以帮助制作人员快速高效地实现卡通角色的嘴部同步。无论是制作动画电影、电视剧,还是制作游戏角色,使用Salsa Lipsync Suite都能够为角色注入更多的生动和细节,提升整体的观赏体验。 ### 回答3: Salsa Lipsync Suite是一个用于处理舞蹈表演节目的软件套件。这个套件可以帮助舞者和表演者轻松地与音乐进行配合,并实现完美的嘴唇同步。 Salsa舞蹈是一种富有活力和激情的舞蹈形式,需要与音乐的节奏和旋律紧密配合。不仅要有身体的控制和协调能力,还需要对音乐的感觉和理解能力。Salsa Lipsync Suite可以通过分析音频文件的节奏和声音波动,帮助舞者更好地理解音乐的节奏和旋律,并将其应用到舞蹈表演中。 该套件还可以实现嘴唇的同步。在一些需要嘴唇与音乐的歌词同步的舞蹈节目中,这个功能非常有用。软件可以分析音频文件中的歌词,并在表演者进行舞蹈时自动调整嘴唇的动作,使其与歌曲的歌词同步。这样,观众就能更好地感受到舞者真实地演绎和表达,舞蹈表演的效果也更加出色。 除了这些基本的功能,Salsa Lipsync Suite还提供了许多其他有用的特性。它可以根据舞蹈选择合适的音频文件,并自动调整音频的音量和音调,以更好地适应舞者的动作和舞蹈风格。此外,它还提供了一个简洁易用的界面,使用户可以轻松地进行操作和处理音频文件。 总之,Salsa Lipsync Suite是一个功能强大,易于使用的软件套件,可以帮助舞者和表演者实现与音乐的完美配合和嘴唇同步。无论是在舞台上还是在舞蹈比赛中,使用这个套件都能提高表演的质量和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值