淺淺地談 強化學習的爬行之旅(一)

2021-08-21 14:12:37 字數 2076 閱讀 4041

入坑強化學習有一段時間了,對於強化學習的學習理念以及思想也有了一定程度的了解。強化學習的突然火爆源於幾年 之前的alpha go戰勝南韓某位圍棋高手事件(名字不說,都懂)。能夠進行自我學習自我更新,且不受情緒影響,擁有智 能決策的人工智慧體已經開始影響生活的方方面面,而這種特性的起源正是基於一種能夠進行自主環境**的學習方法,這就是rl(reinforcement learning,強化學習)。引一段wiki的表述:

強化學習(英語:reinforcement learning,簡稱rl)是機器學習中的乙個領域,強調如何基於環境而行動,以取得最大化的預期利益。其靈感**於心理學中的行為主義理論,即有機體如何在環境給予的獎勵或懲罰的刺激下,逐步形成對刺激的預期,產生能獲得最大利益的習慣性行為。

假設我們來到了乙個完全陌生的地方,這裡的道路四通八達,很容易迷路,但是我們的手上並沒有地圖和指南針,那麼我們如何能夠到達我們要去的地方呢?

乙個最直觀的想法,我們從起點出發,按照一定的策略進行移動,這個策略是不確定的,可以是隨機(如用拋硬幣決定),也可以是根據一定個人的經驗(如看看路上有沒有前人留下的腳印),然後用這個策略在整個可以移動的空間內進行探索,如果發現死路,就退回到上乙個做出決策的地方重新移動。

這個思路很像演算法中的greedy思想,即選擇當前對自己最有利的方向進行前進,但是這樣做有乙個問題,考慮這樣一種情況,如果在某個a路口,你發現左邊的路上有很多前人的腳印,右邊沒有,所以你可能會選擇左邊(像一棵海草隨風飄搖),也有可能會選擇右邊(我就是我是不一樣的花火),但是這樣並不是可靠的方案,因為左邊的腳印很有可能是前人隨機選出來的,只是因為先驗次數不夠多,從而造成了「因為左邊的路有比較多的人走,那麼它一定是正確的」的問題。而右邊的路就更有問題,既然都沒什麼人走過,那我如何判斷它是不是正確的路呢?

在這個場景中,我們可以把這個問題歸結為:如何在當前狀態下(我正在面對著乙個十字路口),根據已有的策略(我決定拋硬幣決定/我決定跟著大多數人的腳步走),選取下一步的行動(我是該往左走/往右走/直走),才能獲得最大的收益(我的目標是星辰大海)。

ok,前面用了那麼多通俗的說法,下面我們引入一些符號來表示這個問題:

暫時定義這麼多,有了這些符號,我們可以把上面的問題用符號表示:如何建立乙個模型,在t時刻,採取at使得agent從st轉移到st+1,使得在st->st+1過程中獲得的反饋reward最大;

有同學很快發現了,這很像乙個mdp問題。沒錯!mdp問題的中文叫「馬爾科夫決策過程」問題,它用來解決具有馬爾科夫性質的一類問題。馬爾科夫問題的乙個很大的性質就是馬爾可夫性,也叫無後效性。通俗的解釋就是當前要進行的決策和狀態僅與前乙個狀態有關,而與更早之前的狀態無關。為什麼說是「很像」,因為這個問題中,當前的狀態是根據前面的決策和狀態積累而得,所以這個問題並不是乙個很典型的決策過程的問題。在這裡,rl採用了經驗回放的方法解決時效疊加的問題,這裡先留個懸念,放到後邊再討論。

從上面的定義,在某一時刻t,我們可以獲得這樣的乙個四元組(st,at,rt,st+1)。在進行解法設計之前,要明確這樣乙個問題:我們該如何定義rt呢,既然我們想讓這個問題具有馬爾可夫性,那麼這個rt是不是應該是local greedy的呢?實際上並不是這樣的,我們的目標是到達最終的目的地,也就是在移動的過程中收穫盡量多的reward,因此,我們應該計算的是乙個具有global greedy的reward,也就是進行所有動作的過程中獲得的rt的總期望最大。

ok,下面的問題就是如何定義reward了,對所有產生的rt進行直接求和是乙個很直觀的想法,但是這樣計算有乙個問題就是容易放大每乙個action對於全域性的影響。打個比方,如果我們朝著目標邁進了一大步,獲得了乙個很大的reward(80),但是邁完這一步之後我們走了錯誤的道路(比如走了五步,每一步扣除5,總扣除25),那麼在這個過程中我們還可以獲得(55),但是這個時候可能我們已經與目的地相去甚遠了。相反的,我們每一步都走對了,但是只是前進了很小的一步,會獲得乙個比較小的reward(比如走了五步,每一步獲得(5),總獲得(25)),但是這種情況卻會因為reward不足而被認定為是乙個不好的走法。

解決這個問題的方案是在reward的計算過程中加入折扣因子γ,這是乙個在[0,1]區間的因子,加入γ之後,越久遠的reward就會因為前帶係數γ的指數不斷增大而造成它對當前的積累reward的影響減小。

我們把這個積累的reward記為q(s,a),可以開始解決這個問題了。

淺淺地談 強化學習的爬行之旅(三)

上一節中我們介紹了解決問題的動態規劃演算法和蒙特卡洛方法,以及rl的一些需要注意的問題,從這一節開始,我們開始對強化學習的每乙個類族進行比較詳細的介紹。由於本系列的主旨在於 淺淺地談 因此需要參考原理和公式推導的小夥伴們可以參看別的文獻。本人知識有限,因此博文中難免出現失誤,希望有小夥伴可以指出並不...

關於強化學習的一些思考

問1 增強學習的要素是什麼?答1 1 有限狀態集合s 2 有限動作集合a 3 轉移模型t,t s,a,s p s s,a 狀態s採取動作a後,狀態轉移到s 的概率 4 即時獎勵r,r s,a e rt 1 s,a 問2 增強學習的最終結果是什麼?答2 1 最優的policy 2 確定型策略 a s ...

強化學習的另一種策略(一)

強化學習在人工智慧技術中雖然不是十分的突出,但是強化學習也是乙個十分重要的技術,是乙個不容忽視的內容。大家是否知道,其實,強化學習還存在著另外一種策略,那就是反向強化學習,在這篇文章中我們就簡單給大家介紹一下這種反向強化學習的內容。首先我們給大家介紹一下反向強化學習基礎,反向強化學習也稱為模仿學習或...