面試總結——強化學習

強化學習和監督式學習的區別:

監督式學習就好比你在學習的時候,有一個導師在旁邊指點,他知道怎麼是對的怎麼是錯的,但在很多實際問題中,例如 chess,go,這種有成千上萬種組合方式的情況,不可能有一個導師知道所有可能的結果。

而這時,強化學習會在沒有任何標籤的情況下,通過先嚐試做出一些行爲得到一個結果,通過這個結果是對還是錯的反饋,調整之前的行爲,就這樣不斷的調整,算法能夠學習到在什麼樣的情況下選擇什麼樣的行爲可以得到最好的結果。

就好比你有一隻還沒有訓練好的小狗,每當它把屋子弄亂後,就減少美味食物的數量(懲罰),每次表現不錯時,就加倍美味食物的數量(獎勵),那麼小狗最終會學到一個知識,就是把客廳弄亂是不好的行爲。

兩種學習方式都會學習出輸入到輸出的一個映射,監督式學習出的是之間的關係,可以告訴算法什麼樣的輸入對應着什麼樣的輸出,強化學習出的是給機器的反饋 reward function,即用來判斷這個行爲是好是壞。

另外強化學習的結果反饋有延時,有時候可能需要走了很多步以後才知道以前的某一步的選擇是好還是壞,而監督學習做了比較壞的選擇會立刻反饋給算法。

而且強化學習面對的輸入總是在變化,每當算法做出一個行爲,它影響下一次決策的輸入,而監督學習的輸入是獨立同分布的。

通過強化學習,一個 agent 可以在探索和利用(exploration and exploitation)之間做權衡,並且選擇一個最大的回報。
exploration 會嘗試很多不同的事情,看它們是否比以前嘗試過的更好,exploitation 會嘗試過去經驗中最有效的行爲。一般的監督學習算法不考慮這種平衡,就只是是 exploitative。

強化學習和非監督式學習的區別:

非監督式不是學習輸入到輸出的映射,而是模式。例如在向用戶推薦新聞文章的任務中,非監督式會找到用戶先前已經閱讀過類似的文章並向他們推薦其一,而強化學習將通過向用戶先推薦少量的新聞,並不斷獲得來自用戶的反饋,最後構建用戶可能會喜歡的文章的“知識圖”。

 

強化學習算法的2大分類

這2個分類的重要差異是:智能體是否能完整了解或學習到所在環境的模型

有模型學習(Model-Based)對環境有提前的認知,可以提前考慮規劃,但是缺點是如果模型跟真實世界不一致,那麼在實際使用場景下會表現的不好。先理解真實世界是怎樣的, 並建立一個模型來模擬現實世界的反饋,通過想象來預判斷接下來將要發生的所有情況,然後選擇這些想象情況中最好的那種,並依據這種情況來採取下一步的策略。它比 Model-free 多出了一個虛擬環境,還有想象力。

免模型學習(Model-Free)放棄了模型學習,在效率上不如前者,但是這種方式更加容易實現,也容易在真實場景下調整到很好的狀態。所以免模型學習方法更受歡迎,得到更加廣泛的開發和測試。不嘗試去理解環境, 環境給什麼就是什麼,一步一步等待真實世界的反饋, 再根據反饋採取下一步行動。

 

強化學習on-policy跟off-policy的區別

on-policy:生成樣本的policy(value function)跟網絡更新參數時使用的policy(value function)相同。典型爲SARAS算法,基於當前的policy直接執行一次動作選擇,然後用這個樣本更新當前的policy,因此生成樣本的policy和學習時的policy相同,算法爲on-policy算法。該方法會遭遇探索-利用的矛盾,光利用目前已知的最優選擇,可能學不到最優解,收斂到局部最優,而加入探索又降低了學習效率。epsilon-greedy 算法是這種矛盾下的折衷。優點是直接了當,速度快,劣勢是不一定找到最優策略。

 

off-policy:生成樣本的policy(value function)跟網絡更新參數時使用的policy(value function)不同。典型爲Q-learning算法,計算下一狀態的預期收益時使用了max操作,直接選擇最優動作,而當前policy並不一定能選擇到最優動作,因此這裏生成樣本的policy和學習時的policy不同,爲off-policy算法。先產生某概率分佈下的大量行爲數據(behavior policy),意在探索。從這些偏離(off)最優策略的數據中尋求target policy。當然這麼做是需要滿足數學條件的:假設π是目標策略, µ是行爲策略,那麼從µ學到π的條件是:π(a|s) > 0 必然有 µ(a|s) > 0成立。兩種學習策略的關係是:on-policy是off-policy 的特殊情形,其target policy 和behavior policy是一個。

劣勢是曲折,收斂慢,但優勢是更爲強大和通用。其強大是因爲它確保了數據全面性,所有行爲都能覆蓋。

 

多臂老虎機和強化學習算法的差別

策略:是強化學習機的核心,代表着決策進行的方式。它可能是一個表格,一個函數或者一個複雜的深度神經網絡。

獎勵信號:一個數值代表着強化學習機採取行動後的即時獎勵。最大化所得獎勵是強化學習機的最終目標,爲了完成這個目標,我們不斷地調整策略。

價值函數:一個函數,用於描述給定狀態下的可能獲得的遠期獎勵。這樣看來,一個較小的但恆定的常數有可能會優於浮動範圍很大的結果。當然,也可能是相反的情況。

相比於目前流行的深度學習以及類似的需要大量訓練數據來生成模型的監督學習方法,強化學習一個重要的不同點是利用訓練的數據去評估下一步的行動(action),而不是僅僅指示(instruct)出正確的行動。 

多臂老虎機本質上是一類簡化的強化學習問題,這類問題具有非關聯的狀態(每次只從一種情況輸或贏中學習),而且只研究可評估的反饋。假設有一臺N個搖臂老虎機,每拉一個搖臂都會有一定的概率獲得回報,這樣我們有了N種可能的行動(每個搖臂對應一種action),並且每次行動的結果只和當前的狀態關聯而不受歷史行動的結果影響(每次拉搖臂的回報只和老虎機設置的概率相關,之前輸贏的結果不會影響本次行動)。定義這種問題是具有單一狀態的馬爾科夫決策過程

單步強化學習任務對應了一個理論模型,即" K-搖臂賭博機"K-搖臂賭博機有K 個搖臂,賭徒在投入一個硬幣後可選擇按下其中一個搖臂,每個搖臂以一定的概率吐出硬幣?但這個概率賭徒並不知道.賭徒的目標是通過一定的策略最大化自己的獎賞,即獲得最多的硬幣.

對於離散狀態空間、離散動作空間上的多步強化學習任務,一種直接的辦法是將每個狀態上動作的選擇看作-個K-搖臂賭博機問題,用強化學習任務的累積獎賞來代替K-搖臂賭博機算法中的獎賞數,即可將賭博機算法用於每個狀態:對每個狀態分別記錄各動作的嘗試次數、當前平均累積獎賞等信息?基於賭博機算法選擇要嘗試的動作.然而這樣的做法有很多侷限,因爲它沒有考慮強化學習任務馬爾可夫決策過程的結構,若能有效考慮馬爾可夫決策過程的特性,則可有更聰明的辦法.

 

多臂老虎機算法的分類

有一個賭博機,一共有 k 個搖臂,玩家每次投一個遊戲幣後可以按一個搖臂,每個搖臂按下後都有可能吐出硬幣作爲獎勵,但是每個搖臂吐出硬幣的概率分佈是未知的,玩家的目標是獲得最大化的累積獎賞。

有選擇的去調整策略: MAB 中的每個搖臂都是一個選項,因此它是一個有條件的選擇問題,目標是獲得最大化的累積獎賞,限制是已有的選擇分支。

Bandit算法

Bandit算法是指一類算法。 要比較不同Bandit算法的優劣, 可以用累積遺憾這個概念來衡量。

                                            

它顧名思義, 是指T次選擇, 將每次選擇的實際收益 WB_i與此次選擇如果選擇最好的策略帶來的最大收益之差, 將T次差的加總就得到了累積遺憾。假設用最簡單的伯努利實驗來模擬這個過程:我們有K個選擇, 其中每次選擇時最優收益是1, 其餘非優收益爲0. 我們進行了T次選擇, 則最差的情況下我們的累積遺憾就是T,而最好情況是每次選擇都是1, 遺憾爲0.

幾種Bandit算法:

1、Epsilon-Greedy算法
初始化選擇一個(0, 1)之間 較小的正數, epsilon。

每次以 (0, epsilon )均分分佈產生一個比epsilon小的數, 選擇所有臂中隨機選一個, 否則選擇截止當前平均收益最大的那個臂。每次嘗試時,以ε 的概率進行探索,即以均勻概率隨機選取一個搖臂;以1-ε 的概率進行利用,即選擇當前平均獎賞最高的搖臂(若有多個,則隨機選取一個).

Epsilon-Greedy 是看上去非常簡單直接的算法。 通過控制epsilon的值控制對 Exploit和Explore的偏好程度。

越接近0, 越保守, 反之越激進。

2、Softmax

基於當前已知的搖臂平均獎賞來對探索和利用進行折中。若各搖臂的平均獎賞相當,則選取各搖臂的概率也相當;若某些搖臂的平均獎賞明顯高於其他搖臂,則它們被選取的概率也明顯更高。

總結ϵ-greedy算法和softmax算法的共有屬性:

(1)兩種算法在每一輪選擇時,默認都是選擇到目前爲止最好的臂;

(2)除此之外,算法會嘗試去探索一些目前看起來不是最好的臂:
      - ϵ-greedy算法探索的時候完全是隨機的。
      - softmax算法探索是基於到當前時刻臂的收益概率。收益概率越高,選擇的概率越高。

(3)兩種算法都能夠通過隨着時間動態修改基本參數來實現更好的性能。

這種隨機性,或者僅僅考慮收益回報的算法有一個很明顯的缺點就是健壯性比較差,很容易受噪音數據影響。


3、UCB算法 (Upper Confidence Bound)

UCB算法,是一種完全不同的算法。首先,它是完全不使用隨機性的;其次,它除了要考慮收益回報外,還要考慮一點,這個收益回報的置信度有多高。
     問題來了,怎麼來定義這個置信度呢?這是UCB算法的核心(UCB實Upper Confidence Bounds的首字母縮寫)。實際UCB算法包括很多種。本文介紹的只是其中一種。現在,讓我們來正式定義這個置信度以及整個UCB算法。
首先,考慮置信後定義的收益回報爲: 
                      

                      

4、Thompson sampling

原理: 假設每個臂是否產生收益,服從概率分佈, 產生收益的概率爲p。

不斷試驗,得到一個置信度較高的概率p的概率分佈, 就能近似解決這個問題了。

如何估計概率p的概率分佈?

答案是假設概率p的分佈符合 beta分佈 ~~ beta(wins, loses) 參數wins, loses

每個臂都對應着一組beta分佈的參數。 每次試驗後, 選中一個搖臂, 有收益則該臂的wins+1, 否則 loses+1。

選擇搖臂的方式是: 用每個臂現有beta分佈產生一個隨機數b, 選擇所有臂產生的隨機數中最大的搖臂去展開策略。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章