Sarsa
Sarsa的學習過程和Q-Learning基本一樣,不同的地方是Q-Learning在走下一步的時候是先看下一步應(yīng)該走哪蝙眶,但是最后不一定走,而Sarsa是決定完要走的步之后一定會去走那一步。換句話說芬为,Q-Learning在更新當前位置的Q值的時候會參考表中收益最大的那個值派近,但下一步不一定會走到那個位置攀唯,而Sarsa是先選取下一步要走的位置的Q值來更新當前位置的Q值,當然渴丸,選完它下一步一定會去走那一步侯嘀。
Sarsa雖然說是說到做到,但是由于它選取下一步的位置是嚴格按照已有學習到的經(jīng)驗來選擇谱轨,所以它探索未知位置的能力就會很差戒幔,相對于說了不一定算的Q-Learning來說,反而Q-Learning更勇敢一些土童,由于跟Q-Learning很像诗茎,就不詳細介紹了,主要介紹Sarsa-lambda的學習步驟献汗。
Sarsa lambda
Sarsa lambda在Sarsa的基礎(chǔ)上增加了一個概念敢订,就是它到終點后會再反過來看一下自己曾經(jīng)走過的路。
整體來說還是Sarsa的框框罢吃,只是增加一個指標楚午,只是這樣可以使學習效率變高,能更快速的達到目的Q表刃麸。
這個指標就是在獲取到最終獎勵時醒叁,也可以說是到達最終目的地時,各個位置的不可或缺性
。表示方法:
先定義一個E表把沼,用來記錄經(jīng)過的位置(State)啊易,每走一步,如果這個點不在E表中饮睬,則添加這個點到E表中租谈,并將這個E(s,a)的值改為+1(還可以優(yōu)化,下面說)捆愁,如果表中存在這個位置割去,則直接更新這個位置的值,然后在走下一步之前對E表進行整體衰減昼丑。也就是說每走一步呻逆,就要對E表的當前位置的值進行刷新,然后再進行衰減菩帝。衰減的意義就在于如果一旦到達終點咖城,就可以體現(xiàn)出來E表中各個位置對到達終點的不可或缺性
。如果衰減比例為0呼奢,也就是每次都給E表里的值乘0宜雀,就意味著表里最后就剩下一個離終點最近的位置了,如果為1呢握础,則E表里的重復的越多的位置收益越大(so辐董,這不合理,需要優(yōu)化)禀综,所以简烘,衰減比例應(yīng)該取一個0~1之間的數(shù)比較合理。
E表的用法就是在Sarsa的基礎(chǔ)上定枷,每次更新的時候加上這個E表里對應(yīng)位置的值就可以了夸研。這就是傳說中的Sarsa lambda了,是不是沒這么嚇人依鸥。下面說一下如何優(yōu)化:
前面我們說每次經(jīng)過這個某個位置,都把E表里對應(yīng)值+1悼沈,這樣對有些位置會很不公平贱迟,可能會出現(xiàn)離終點最近的那個位置的E值比中間的某個點的E值還要低,這很不科學絮供。優(yōu)化辦法就是給E里的值定個上限衣吠,比如就是1,每次走到這個位置壤靶,就把他重新定為1缚俏,然后從1開始衰減,這樣就不會出現(xiàn)上述的bug了。ok忧换,再盜一張圖來形象說一下優(yōu)化的路子:
簡單介紹一下圖里的內(nèi)容恬惯,第一行說的是某個位置出現(xiàn)和時間的關(guān)系;第二行說的是E值+1那個情況亚茬;第三行說的是定個上限為1的規(guī)矩酪耳。
好了,Sarsa到目前為止就告一段落了刹缝,乍一看還真挺不好理解的碗暗,仔細想想其實原理也不是很復雜。晚安~