《機器學習》筆記-強化學習(16)

《機器學習》筆記-強化學習(16)

來自專欄機器學習筆記

寫在最前面

如今機器學習和深度學習如此火熱,相信很多像我一樣的普通程序猿或者還在大學校園中的同學,一定也想參與其中。不管是出於好奇,還是自身充電,跟上潮流,我覺得都值得試一試。對於自己,經歷了一段時間的系統學習(參考《機器學習/深度學習入門資料匯總》),現在計劃重新閱讀《機器學習》[周志華]和《深度學習》[Goodfellow et al]這兩本書,並在閱讀的過程中進行記錄和總結。這兩本是機器學習和深度學習的入門經典。筆記中除了會對書中核心及重點內容進行記錄,同時,也會增加自己的理解,包括過程中的疑問,並盡量的和實際的工程應用和現實場景進行結合,使得知識不只是停留在理論層面,而是能夠更好的指導實踐。記錄筆記,一方面,是對自己先前學習過程的總結和補充。 另一方面,相信這個系列學習過程的記錄,也能為像我一樣入門機器學習和深度學習同學作為學習參考。

章節目錄

  • 任務與獎賞
  • K-搖臂賭博機
  • 有模型學習
  • 免模型學習
  • 值函數近似
  • 模仿學習

(一)任務與獎賞

以種西瓜為例。種瓜有許多步驟,從一開始的選種,到定期澆水、施肥、除草、殺蟲,經過一段時間才能收穫西瓜。通常要等到收穫後,我們才知道種出的瓜好不好。若將得到好瓜作為辛勤種瓜勞動獎賞,則在種瓜過程中,當我們執行某個操作(例如,施肥)時,並不能立即獲得這個最終獎勵,甚至難以判斷當前操作對最終獎賞的影響,僅能得到一個當前反饋(例如,瓜苗看起來更健壯了)。我們需多次種瓜,在種瓜過程中不斷摸索,然後才能總結出比較好的種瓜策略。這個過程抽象出來,就是「強化學習」(Reinforcement Learning)。

下圖給出了強化學習的一個簡單圖示,

強化學習任務通常用馬爾科夫決策過程(Markov Decision Process,簡稱MDP)來描述:

  • 機器處於環境E中;
  • 狀態空間為X,其中,每個狀態x∈X是機器感知環境的描述,如在種瓜任務上,這就是當前瓜苗長勢的描述;
  • 機器能採取的動作構成動作空間A,如種瓜過程中有澆水、施不同的肥、使用不同農藥等多種可供選擇的動作;
  • 若某個動作a∈A作用在當前狀態x上,則潛在的轉移函數P將使得環境從當前狀態按某種概率轉移到另一個狀態,如瓜苗狀態為缺水,若選擇動作為澆水,則瓜苗長勢會發生變化,瓜苗有一定概率恢復健康,也有一定概率無法恢復;
  • 在轉移到另一個狀態的同時,環境會根據潛在的「獎賞」(reward)函數R反饋給機器一個獎賞。

綜合起來,強化學習任務對應了四元組E=。下圖給出了一個簡單的例子,

需要注意「機器」與「環境」的界限,例如,在種西瓜任務中,環境是西瓜生長的自然世界;在下棋對弈中,環境是棋盤與對手;在機器人控制中,環境是機器人的軀體與物理世界。總之,在環境中的狀態的轉移、獎賞的返回是不受機器控制的,機器只能通過選擇要執行的動作來影響環境,也只能通過觀察轉移後的狀態和返回的獎賞來感知環境。

機器要做的是通過在環境中不斷的嘗試而學得一個「策略」(policy)π,根據這個策略,在狀態x下就能得知要執行的動作a=π(x),例如看到瓜苗狀態是缺水時,能返回動作「澆水」。

策略有兩種表示方法:

  • 一種是將策略表示為函數π:X->A,確定性策略常用這種表示;
  • 另一種是概率表示π:XxA->R,隨機性策略常用這種表示,π(x, a)為狀態x下選擇動作a的概率,這裡必須有∑π(x,a)=1;

策略的優劣取決於長期執行這一策略後得到的累積獎賞,例如某個策略使得瓜苗枯死,它的累積獎賞會很小,另一個策略種出了好瓜,他的累積獎賞會很大。在強化學習任務中,學習的目標是要找到能使長期累積獎賞最大化的策略。

大家也許已經感覺到強化學習與監督學習的差別。若將這裡的「狀態」對應為監督學習中的「示例」、「動作」對應「標記」,則可看出,強化學習中的「策略」實際上就相當於監督學習中的「分類器」(當動作是離散的)或「回歸器」(當動作是連續的),模型的形式並無差別。但不同的是,在強化學習中並沒有監督學習中的有標記樣本(即「示例-標記」對),換言之,沒有人直接告訴機器在什麼狀態下該做什麼動作,只有等到最終結果揭曉,才能通過「反思」之前的動作是否正確來進行學習。因此,強化學習在某種意義上可看做具有「延遲標記信息」的監督學習問題。

(二)K-搖臂賭博機

與一般監督學習不同,強化學習任務的最終獎賞是在多步動作之後才能觀察到,這裡我們不妨先考慮比較簡單的情形:最大化單步獎賞,即僅考慮一步操作。需要注意的是,即便在這樣的簡化情形下,強化學習仍與監督學習有明顯不同,因為機器需要通過嘗試來發現各個動作產生的結果,而沒有訓練數據告訴機器應該做哪個動作。

欲最大化單步獎賞需考慮兩個方面,

  • 一是需要知道每個動作帶來的獎賞;
  • 二是要執行獎賞最大的動作;

若每個動作對應的獎賞是一個確定值,那麼嘗試一遍所有的動作便能找出獎賞最大的動作。然而,更一般的情形是,一個動作的獎賞來自於一個概率分布,僅通過一次嘗試並不能確切的獲得平均獎賞。

實際上,單步強化學習任務對應了一個理論模型,即「K-搖臂賭博機」(K-armed bandit),如下圖所示,

K-搖臂賭博機有K個搖臂,賭徒在投入一個硬幣後可選擇按下其中一個搖臂,每個搖臂以一定概率吐出硬幣,但這個概率賭徒並不知道。賭徒的目標是通過一定的策略最大化自己的獎賞,即獲得最多的硬幣。

  • 若僅為獲知每個搖臂的期望獎賞,則可採用「僅探索」(exploration-only)法:將所有嘗試機會平均分配給每個搖臂(即輪流按下每個搖臂),最後以每個搖臂各自的平均吐幣概率作為其獎賞期望的近似估計;
  • 若僅為執行獎賞最大的動作,則可採用「僅利用」(exploitation-only)法:按下目前最優的(即到目前為止平均獎賞最大的)搖臂,若有多個搖臂同為最優,則從中隨機選取一個。

顯然,「僅探索」法能很好的估計每個搖臂的獎賞,卻會失去很多選擇最優搖臂的機會;「僅利用」法則相反,它沒有很好的估計搖臂期望獎賞,很可能經常選不到最優搖臂。因此,這兩種方法都難以使最終的累計獎賞最大化。

事實上,「探索」(即估計搖臂的優劣)和「利用」(即選擇當前最優搖臂)是矛盾的,因為嘗試次數(即總投幣數)有限,加強了一方面則會削弱另一方,這就是強化學習所面臨的「探索-利用窘境」(Exploration-Exploitation dilemma)。顯然,欲累計獎賞最大,則必須在探索與利用之間達成較好的折中。

ε -貪心

ε -貪心基於一個概率來對探索和利用進行折中。

Softmax

Softmax演算法基於當前已知的搖臂平均獎賞來對探索和利用進行折中。

(三)有模型學習

考慮多步強化學習任務,暫且先假定任務對應的馬爾科夫決策過程四元組E=均為已知,這種情形稱為「模型已知」,即機器已對環境進行了建模,能在機器內部模擬出與環境相同或相近的情況。在已知模型的環境中學習稱為「有模型學習」(model-based Learning)。

(四)免模型學習

在現實的強化學習任務中,環境的轉移概率、獎勵函數往往很難得知,甚至很難知道環境中一共有多少狀態。若學習演算法不依賴於環境建模,則稱為「免模型學習」(model-free learning),這比有模型學習要困難得多。

(五)值函數近似

前面我們一直假定強化學習任務是在有限狀態空間上進行,每個狀態可用一個編號來指代。然而,現實強化學習任務所面臨的狀態空間往往是連續的,有無窮多個狀態。這該怎麼辦呢?

一個直接的想法是對狀態空間進行離散化,將連續狀態空間轉化為有限離散狀態空間,然後就能使用前面介紹的方法求解。遺憾的是,如何有效的對狀態空間進行離散化是一個難題,尤其是在對狀態空間進行搜索之前。

實際上,我們不妨直接對連續狀態空間的值函數進行學習。

(六)模仿學習

在強化學習的經典任務設置中,機器所能獲得的反饋信息僅有多步決策後的累積獎賞,但現實任務中,往往能得到人類專家的決策過程範例。例如在種瓜任務上得到農業專家的種植過程範例。從這樣的範例中學習,稱為「模仿學習」(imitation learning)。


推薦閱讀:

【機器學習】監督學習技巧整理概述
2018AI學習清單丨150個最好的機器學習和Python教程
吳恩達機器學習第六周課後感
周志華四問大學人工智慧教育:不應在現有學科框架下修修補補

TAG:機器學習 | 深度學習DeepLearning |