《機器學習》筆記-強化學習(16)
來自專欄機器學習筆記
寫在最前面
如今機器學習和深度學習如此火熱,相信很多像我一樣的普通程序猿或者還在大學校園中的同學,一定也想參與其中。不管是出於好奇,還是自身充電,跟上潮流,我覺得都值得試一試。對於自己,經歷了一段時間的系統學習(參考《機器學習/深度學習入門資料匯總》),現在計劃重新閱讀《機器學習》[周志華]和《深度學習》[Goodfellow et al]這兩本書,並在閱讀的過程中進行記錄和總結。這兩本是機器學習和深度學習的入門經典。筆記中除了會對書中核心及重點內容進行記錄,同時,也會增加自己的理解,包括過程中的疑問,並盡量的和實際的工程應用和現實場景進行結合,使得知識不只是停留在理論層面,而是能夠更好的指導實踐。記錄筆記,一方面,是對自己先前學習過程的總結和補充。 另一方面,相信這個系列學習過程的記錄,也能為像我一樣入門機器學習和深度學習同學作為學習參考。
章節目錄
- 任務與獎賞
- K-搖臂賭博機
- 有模型學習
- 免模型學習
- 值函數近似
- 模仿學習
(一)任務與獎賞
以種西瓜為例。種瓜有許多步驟,從一開始的選種,到定期澆水、施肥、除草、殺蟲,經過一段時間才能收穫西瓜。通常要等到收穫後,我們才知道種出的瓜好不好。若將得到好瓜作為辛勤種瓜勞動獎賞,則在種瓜過程中,當我們執行某個操作(例如,施肥)時,並不能立即獲得這個最終獎勵,甚至難以判斷當前操作對最終獎賞的影響,僅能得到一個當前反饋(例如,瓜苗看起來更健壯了)。我們需多次種瓜,在種瓜過程中不斷摸索,然後才能總結出比較好的種瓜策略。這個過程抽象出來,就是「強化學習」(Reinforcement Learning)。
下圖給出了強化學習的一個簡單圖示,- 機器處於環境E中;
- 狀態空間為X,其中,每個狀態x∈X是機器感知環境的描述,如在種瓜任務上,這就是當前瓜苗長勢的描述;
- 機器能採取的動作構成動作空間A,如種瓜過程中有澆水、施不同的肥、使用不同農藥等多種可供選擇的動作;
- 若某個動作a∈A作用在當前狀態x上,則潛在的轉移函數P將使得環境從當前狀態按某種概率轉移到另一個狀態,如瓜苗狀態為缺水,若選擇動作為澆水,則瓜苗長勢會發生變化,瓜苗有一定概率恢復健康,也有一定概率無法恢復;
- 在轉移到另一個狀態的同時,環境會根據潛在的「獎賞」(reward)函數R反饋給機器一個獎賞。
綜合起來,強化學習任務對應了四元組E=。下圖給出了一個簡單的例子,
- 一種是將策略表示為函數π: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 |