强化学习——Sarsa

一、什么是Sarsa

在强化学习中 Sarsa 和 Q learning及其类似,这节内容会基于之前所讲的 Q learning。如果还不熟悉 Q learning 可以去看看。我们会对比 Q learning,来看看 Sarsa 是特殊在哪些方面。

Sarsa 的决策部分和 Q learning 一模一样,因为我们使用的是 Q 表的形式决策,所以我们会在 Q 表中挑选值较大的动作值施加在环境中来换取奖惩,但是不同的地方在于 Sarsa 的更新方式是不一样的。

二、Sarsa更新方式

与 Q-learning 一样, 我们会经历状态 s1, 然后再挑选一个带来最大潜在奖励的动作 a2, 这样我们就到达了状态 s2, 而在这一步, 如果你用的是 Q learning, 你会观看一下在 s2 上选取哪一个动作会带来最大的奖励, 但是在真正要做决定时, 却不一定会选取到那个带来最大奖励的动作, Q-learning 在这一步只是估计了一下接下来的动作值. 而 Sarsa 到做到, 在 s2 这一步估算的动作也是接下来要做的动作. 所以 Q(s1, a2) 现实的计算值, 我们也会稍稍改动, 去掉maxQ, 取而代之的是在 s2 上我们实实在在选取的 a2 的 Q 值. 最后像 Q learning 一样, 求出现实和估计的差距 并更新 Q 表里的 Q(s1, a2)。

Sarsa 更新方式

三、Sarsa 与 Q-learning 对比

Sarsa算法(on-policy):

Initialize Q arbitrarily // 随机初始化Q表
Repeat (for each episode): // 每一次从开始到结束是一个episode
    Initialize S // S为初始位置的状态
    Choose a from s using policy derived from Q(ε-greedy) 
    Repeat (for each step of episode):
        Take action a, observe r, s'
        Choose a' from s' using policy derived from Q(ε-greedy) 
        Q(S,A) ← Q(S,A) + α*[R + γ*Q(S',a')-Q(s,a)] //在Q中更新S
        S ← S'; a← a'
    until S is terminal //即到游戏结束为止

处于状态 s 时,根据当前 Q 网络以及一定的策略来选取动作 a,进而观测到下一步状态 s',并再次根据当前 Q 网络及相同的策略选择动作 a',这样就有了一个【 s,a,r,s',a' 】序列。

处于状态 s' 时,就知道了要采取哪个 a',并真的采取了这个动作。动作 a 的选取遵循 ε-greedy 策略,目标 Q 值的计算也是根据策略得到的动作 a' 计算得来。

Q-learning算法(off-policy):

Initialize Q arbitrarily // 随机初始化Q表
Repeat (for each episode): // 每一次游戏,从开始到结束是一个episode
    Initialize S // S为初始位置的状态
    Repeat (for each step of episode):
        Choose a from s using policy derived from Q(ε-greedy) //根据当前Q和位置S,使用一种策略,得到动作A,这个策略可以是ε-greedy等
        Take action a, observe r // 做了动作A,到达新的位置S',并获得奖励R,奖励可以是1,50或者-1000
        Q(S,A) ← Q(S,A) + α*[R + γ*maxQ(S',a))-Q(s,a)] //在Q中更新S
        S ← S'
    until S is terminal //即到游戏结束为止

处于状态 s 时,根据当前 Q 网络以及一定的策略来选取动作 a,进而观测到下一步状态 s' ,并再次根据当前 Q 网络计算出下一步采取哪个动作会得到 max Q 值,用这个 Q 值作为当前状态动作对 Q 值的目标。这样就有了一个【s,a,r,s' 】序列。

处于状态 s' 时,仅计算了 在 s' 时要采取哪个 a' 可以得到更大的 Q 值,并没有真的采取这个动作 a';动作 a 的选取是根据当前 Q 网络以及策略(e-greedy),目标 Q 值的计算是根据 Q 值最大的动作 a' 计算得来。

从算法来看,这就是他们两最大的不同之处了。因为 Sarsa 是说到做到型,所以我们也叫他 On-policy(在线学习),学着自己在做的事情。而 Q learning 是说到但并不一定做到,所以它也叫作 Off-policy(离线学习)。如果你还不清楚 在线学习 和 离线学习,可以参看强化学习

四、什么是 Sarsa(lambda)

之前所说的 Sarsa 是一种单步更新法,在环境中每走一步,更新一次自己的行为准则,我们可以在这样的 Sarsa 后面打一个括号,说他是 Sarsa(0),因为他等走完这一步以后直接更新行为准则。如果延续这种想法,走完这步,再走一步,然后再更新,我们可以叫他 Sarsa(1)。同理,如果等待回合完毕我们一次性再更新呢?比如这回合我们走了 n 步,那我们就叫 Sarsa(n)。为了统一这样的流程,我们就有了一个 lambda 值来代替我们想要选择的步数,这也就是 Sarsa(lambda) 的由来。

简单的说,Sarsa(0) 就是单步更新,Sarsa(n) 就是回合更新,如果你还不清楚什么是单步更新、回合更新,可参看强化学习

其实 lambda 就是一个衰变值,他可以让你知道离奖励越远的步,可能并不是让你最快拿到奖励的步,所以我们想象我们站在宝藏的位置,回头看看我们走过的寻宝之路,离宝藏越近的脚印越看得清,远处的脚印太渺小,我们都很难看清,那我们就索性记下离宝藏越近的脚印越重要,越需要被好好的更新。和之前我们提到过的奖励衰减值 gamma 一样,lambda 是脚步衰减值,都是一个在 0 和 1 之间的数。

以上内容参考莫凡Python

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 一、什么是强化学习 强化学习是一类算法,是让计算机实现从一开始完全随机的进行操作,通过不断地尝试,从错误中学习,最...
    小道萧兮阅读 32,759评论 5 12
  • 一、什么是Q_learning Q_learning是强化学习中的一个决策算法,如果你还不知道什么是强化学习,可以...
    小道萧兮阅读 23,508评论 0 11
  • 一. 增强学习简介 1.1 什么是增强学习? 机器学习的算法可以分为三类:监督学习,非监督学习和增强学习。 增强学...
    阿阿阿阿毛阅读 31,050评论 0 25
  • 以下内容来源于一次部门内部的分享,主要针对AI初学者,介绍包括CNN、Deep Q Network以及Tensor...
    yhthu阅读 31,006评论 36 125
  • 既然从瓜子开了头,写吃就得一直吃下去 如果说回家有什么地方一定要去吃的,除了妈妈外婆的手艺,唯一能算是眷恋不舍的就...
    赤水告之阅读 321评论 0 4