(十一)模仿学习
??從之前的討論看,都是有獎勵的。哪怕是上一章的稀疏獎勵,其實也有獎勵。==假如任何獎勵都沒有怎么辦?==本章介紹的就是這種情況的解決辦法。
什么時候任何獎勵都沒有。其實還挺常見的,以聊天機器人為例,聊的好不好很難定義獎勵。解決這種情況的方法就是模仿學習
??模仿學習(imitation learning),有時也叫示范學習或者學徒學習。指有一些專家的示范,通過模仿這些專家來達到目的。專家的示范含義很廣,比如在自動駕駛中,一個司機的行為就可以被稱為專家的示范。
??模仿學習中主要有兩個方法:行為克隆和逆強化學習
??1.行為克隆
??其實行為克隆和監(jiān)督學習一樣的。它的思路就是完全復制專家的行為(克隆),專家怎么干它就怎么干。
??這種方法大多數(shù)情況下沒有問題,但行為克隆會有問題。
??問題一:特殊情況
??但專家的觀測也是有限的。舉個例子就是司機不會在能拐彎的時候去撞墻,所以對于撞墻下面的狀態(tài)就沒有示范了。但有的時候機器學習的時候會隨機進入這種狀態(tài),無法處理。所以只觀察專家行為是不夠的,需要招數(shù)處理這種特殊情況。這個招數(shù)就叫做數(shù)據(jù)集聚合。
??希望收集更多樣化的數(shù)據(jù),并且包含最極端的情況。數(shù)據(jù)集聚合的思想很野蠻,就是讓專家也處于這種極端的情況(我感覺說了和沒說一樣),有了這樣的數(shù)據(jù)就能夠進行處理了。
??問題二:會跑偏
??除了上面的問題,行為克隆還有一個問題就是可能學不到點子上。比如專家有多種形式的知識,本來想學習知識1,但實際學了知識2,而且內(nèi)存空間有限,學完了知識2滿了。這就徹底跑偏了。
??問題三:有誤差
??在學習過程中,很難和專家一摸一樣。但RL中是前面狀態(tài)會影響到后面狀態(tài)的。監(jiān)督學習中獨立分布沒有問題,但這個里面可能就會越走越偏。
所以行為克隆并不能完全解決模仿學習的事情,就需要下面的方法
??2.逆強化學習
??之前介紹過需要模仿學習的原因就是因為獲得不了獎勵。而常規(guī)RL是從獎勵函數(shù)出發(fā)去推導動作。逆強化學習的思路是先推導出一個獎勵函數(shù),再接著常規(guī)RL學習。
??最大的問題就是:怎么利用專家行為推導獎勵函數(shù)呢?
??首先專家和環(huán)境互動,會得到很多軌跡。從這些軌跡中推導獎勵函數(shù)。要定一個獎勵函數(shù),這個獎勵函數(shù)的原則就是專家得到的分數(shù)比演員分高。然后再修改獎勵函數(shù),最后使專家和智能體的得分一致,這個時候就認為是最佳的獎勵函數(shù)。一個直觀的問題是:怎么讓專家得到獎勵大過演員呢?
??實現(xiàn)手段是把獎勵函數(shù)作為一個神經(jīng)網(wǎng)絡(luò)。訓練的時候希望專家的輸出的獎勵越大越好,希望智能體輸出的獎勵越小越好。逆強化學習的框架如下:
??還有一種第三人稱視角模仿學習,在這里簡單提一下。之前介紹的都是第一人稱,機器人是參與主體。我們希望它在旁邊看人類做就能自己學會做,這對它來說是第三人稱。把第三人稱變成第一人稱然后再學習的技術(shù)就叫做第三人稱視角模仿學習。它的框架圖如下:
??模仿學習over!
??課后題如下:
因作者水平有限,如有錯誤之處,請在下方評論區(qū)指正,謝謝!
總結(jié)
- 上一篇: python subprocess阻塞
- 下一篇: Qt:Qt实现Winsock网络编程—T