1. 程式人生 > >讓強化學習逃離“乏味區域陷阱”,試著加點噪音吧!

讓強化學習逃離“乏味區域陷阱”,試著加點噪音吧!

全文共5013字,預計學習時長10分鐘
在這裡插入圖片描述
來源:南方公園
如果你去諮詢一位投資顧問,肯定首先得問他是如何收費的——是根據投資的回報來收費嗎?

“不是的。”他說,“我對你獲得的回報預測越精確,你付給我的錢就越多。但我的預測只會在你選擇的投資產品上得到驗證。”

這聽起來似乎有些可疑,你開始諮詢其他選擇這位投資顧問的人。結果發現,他向客戶推薦的都是低迴報率、低變化性的政府債券。他甚至告訴所有客戶這是最高的平均收益!

於是,人們都相信這位顧問,紛紛買了政府債券。由於政府債券的特殊性,導致他對於回報的估計自然是十分準確的,誤差很小。所以人們不得不向他支付高昂的諮詢費用。

你是如何看待這位顧問的呢?

事實上,他就是一種“操作型顧問”。

在強化學習中,每個人都在使用這種顧問。

這種例子在強化學習中比比皆是。用於訓練強化學習演算法的環境出現方差差異時,常常會發生奇怪的事情:價值評估網路往往更偏好低方差區域而忽視獎勵,使得它們成為操作型顧問。

那麼該如何解決?先告訴你結論:Q-learning演算法受困於“乏味區域陷阱”,而且因為低方差而無法逃出。獎勵加噪有助於解決這種問題,但一定要謹慎新增。本文是基於論文“Adaptive Symmetric Reward Noising for Reinforcement Learning”進行研究的。

下面,讓我們來分析這個問題吧!

操作型顧問
強化學習(RL)主要有兩大類演算法:Deep Q Networks (DQN) 演算法和 Actor Critic演算法。二者都使用了顧問函式或“價值評估”函式——一種深度神經網路演算法 (DNN) ,用於評估一個狀態和/或一個動作的價值。DQN使用Q-network,Actor Critic則使用Critic network。價值評估函式可以學習off-policy,這意味著它們可以通過觀看其他人操作學習,即使那人並不十分在行——這大致上是一個不錯的決定。它們能夠從使用那些已經廢止的、過去的策略所收集的經驗中學到東西。

然而,這裡有一個陷阱:顧問根據準確性來“獲得酬勞”:就像用於優化網路的損失函式是基於網路的預測誤差。而且網路的執行也是通過其選擇的動作來檢驗的:策略將按照網路的最佳建議行事,這將成為未來唯一的經驗來源。

現在,很多人都在抱怨強化學習並不管用,深化也沒有什麼幫助。確實是這樣。強化學習演算法的訓練非常不穩固:它嚴重依賴於網路和引數的初始化,所以必須要不斷重複同樣的實驗,每一次初始化的方式都不同。演算法不斷改進,然後又迴歸。這令人困惑,因為迴歸時,損失函式不斷顯示效能已改進。在這過程中,可以選擇最佳的臨時網路並結束,但無法通過強化學習來進一步改進結果。

所以,你只是選錯了顧問,或者說至少選錯了支付方式。他選擇了低迴報的行動,並且告訴你其他的選擇會更糟糕,因為其推薦的行動的回報是十分易於預測的,因此他的預測將非常精準。你永遠不會發現他在操縱你,因為你只檢驗他的選擇。

首先來證明這些損失缺口確實存在。以一個簡單的遊戲為例:兩臺老虎機(在強化學習中被稱為“多臂老虎機”),右邊的機器會給一個獎勵,但是方差很高,而左邊的機器壞了,所以沒有獎勵也沒有方差。我們稱之為“斷臂老虎機”。
現在要決定在每一輪遊戲裡使用哪個機器。看起來似乎很簡單吧?對於Q-learning來說不是這樣的。

請看下圖中的兩條細線。這兩條線顯示了當前選擇右柄(綠色細線)的智慧體的Q-table的更新項,以及當前選擇左柄(紅色細線)的智慧體的Q-table的更新項。在DQN演算法中,這更新項為損失函式。從圖表中可以看出選擇左柄的做得更好,帶來的損失也更小。
在這裡插入圖片描述
每個好的強化學習演算法都有其探索方案。這裡使用的是epsilon greedy方案,其中epsilon值不斷減小。還有肯定的是,通過100%的探索,方案檢驗到顧問不推薦的東西,並且每一次的損失基本是一致的。但這只是訓練的開始。隨著epsilon值減小,探索也減少,紅色細線不斷衰減。如果是在真實的訓練中看到這條線,損失在降低,會不會覺得一切都很好?事實上,這是一個從探索的艱辛檢驗中解放出來的惰性網路。

這是損失中的一個缺口,其中乏味的決策取得了勝利。當通過損失最小化來優化深度網路時,有時它會傾向於選擇乏味決策來解決這個問題。但是如果不使用DNN呢?如果是使用過去帶有Q-table優良的Q-learning呢?

被稱作“乏味區域陷阱”的問題仍然存在……

乏味區域陷阱

假如你擁有一臺自行車,在離家一英里處有人要送你免費的披薩。你有兩種選擇:第一是放棄騎車過去,得到方差為0,均差也為0的披薩。第二是決定騎車去,然後就會得到方差很高,均值為1的披薩。但是有非常小的概率你可能會發生事故,六個月的時間裡都得打著石膏,忍受痛苦,再額外花錢修自行車,而且一口披薩也吃不到。
在這裡插入圖片描述
來源:Lego Grad Student

通常情況下,這個決定不難做出:在這之前你從未經歷過車禍,估計現在發生車禍的機率十分低,因此傾向於拿到披薩的選擇。所以你去了那裡並且得到了披薩。

但如果你運氣不好,只騎了很少的次數就遇到車禍了呢?那麼你對於事故發生機率的估計會比真實的可能性要高得多。從騎車去拿免費披薩中獲得的預計平均收益將成為負數,所以你決定待在家裡。

這裡有一個陷阱:如果再也不騎車,那就永遠不會改變對於騎車的看法。你將始終相信騎車會帶來負的平均收益,而待在家的經歷又會驗證對於待在家所帶來的平均收益的看法,最終不會發生任何改變。

為什麼無論如何都應該出門呢?因為必定會發生輔助性誤差。例如,你待在家裡,一個架子砸到了頭上,又一次遭受了痛苦。而這次不能怪罪任何人,只能怨自己。因此對於待在家的評價也成為負面的了。如果待在家的評價要低於離開家的評價,那你就又會出門去拿披薩。

注意這裡並不涉及到優化:Q-table有一個狀態——飢餓狀態,以及兩個動作——去拿披薩或不去拿披薩。對於均值的衡量直接來自於獎勵,你無法改變其他事物,但最終卻飢腸轆轆困於家中,直到架子把你砸傷,你又選擇出門。

上面的斷臂老虎機可以模擬出來這個現象,但現在可以嘗試通過Q-learning來解決這個問題。

請看這項任務中訓練的10個智慧體:
在這裡插入圖片描述
可以看到,所有的智慧體都在某一時刻達到獲得零獎勵的位置,這意味著它們選擇拉動失靈的手柄。想象一下,它們站成一排拉下壞掉的機器手柄,完全無視右邊那臺亮著燈還在運作的機器。它們看起來是不是很愚蠢?但更好笑的是選擇它們當顧問的人。

注意:為了加快速度,我們選擇了0.1的高學習速度,所以使得通常在幾百萬次迭代後才發生的事能夠更快出現。

現在,以100個智慧體為例,看看有多少選擇了左邊壞掉的機器。紅線為以上智慧體的選擇情況:在這裡插入圖片描述
雖然多花了一些時間,但它們最終還是都選擇了左邊的手柄作為最優選項。

為了搞清楚這一切,我們檢視其中一個智慧體的內部引數——Q-table中Q_left和Q_right的值。解除所有探索以檢視實際情況,並將引數初始化為最優,可以得到一個完成良好訓練的智慧體,至少在開始是這樣。右邊手柄的方差和先前一樣高。而這次我們給了左邊手柄一點方差,所以這是一個常規的帶有不同方差的雙臂老虎機問題:在這裡插入圖片描述
右邊的手柄有較高的方差,所以Q_right也有較高的方差,但因為與過去的獎勵相加,所以要低得多。由於一些集中的負向獎勵,所以Q_right在episode40時比Q_left要低。

從這時起,智慧體就只選擇左邊的手柄,也因此進入了“乏味區域陷阱”。現在,Q_right因為缺少例子不能變動。Q_left也因為低方差幾乎不變。所以,這就是為什麼被稱之為陷阱的原因。

在episode320時,出現了輔助性誤差。Q_left變得比Q_right更低。這時走出了陷阱,開始扳下右柄,對於Q_right的評價不斷升高。

是什麼方差差異導致了這個問題?看看下方的等級圖,其中σ_l 和 σ_r取不同值,顯示50個智慧體在10000個episodes後,有多少選擇了右邊的手柄:
在這裡插入圖片描述
右下角有一塊顯示所有智慧體都失敗的深色區域,這是大的方差差異導致的。還有一塊在中間的區域,由於方差差異較小,智慧體在陷阱內外移動。只有當方差差異較低時,Q_learning才有效。更低的學習速度會使得深色區域向右邊移,但更低的學習速度會使得訓練過程十分緩慢。

獎勵加噪

要解決這個問題,方案來自一個關於人類認知能力的實驗。一些科學家進行了一項名為“火星農業”的實驗,這個實驗和雙臂老虎機一樣,但每個動作都移動兩臺機器的均值。他們發現在獎勵中新增一些噪音反而可以幫助人們“排除簡單的假設”,並且鼓勵人們“增加抽樣”,這事實上有助於獲得更多的獎勵!

多臂老虎機也可以使用同樣的方法。在獎勵中新增對稱的噪音,使其不會影響獎勵的均值。

但如果在所有的獎勵中新增等量的噪音,那還是會有偏向左邊機器的損失缺口。增強其適應性意味著只在低方差的行動中新增噪音。

這麼做的話就可以得到之前圖表中的粗線:在這裡插入圖片描述
這張圖表顯示了在所有獎勵中添加了許多噪音,但現在兩臺機器都有大致相同量的噪音。

這就是ASRN(適應性對稱獎勵加噪)所實現的:它估計哪些狀態/行動有低方差,並主要向它們新增噪音。它是如何估計的呢?是利用Q_table的修正。修正得越多,獎勵得就越多,也就得到更少的噪音。

當然,ASRN有其自身的訓練週期,所以上述例子中,在1000個episodes後才發生改變。

在上述斷臂老虎機中檢驗ASRN時,可以發現ASRN幫助智慧體走出乏味區域陷阱。下面是例中的10個智慧體:
在這裡插入圖片描述
其中有一些智慧體進入了乏味區域陷阱,但利用新增的噪音成功逃離了出來。

噪音在駕駛中的應用

在見識了噪音在老虎機中發揮作用後,如果將其運用在實際生活中又會怎麼樣呢?

駕駛就是一個十分合適的例子。就像上述的披薩一樣,有一種策略會帶來低獎勵和低方差,比方說“向左開直到撞車為止”。還有另一個實際駕駛的策略將會給帶來高均值的獎勵,因為“達到目的”拿到了披薩,但它有著高方差——在路途中有諸多危險。我們使用AirSim Neighborhood模擬駕駛訓練了一個智慧體。這是一個很棒的現實駕駛模擬器:在這裡插入圖片描述
這裡已經運用了一個DQN智慧體。所以剩下要做的就是對比插入ASRN(綠色)後和沒有插入ASRN(紅色),以及新增統一獎勵噪音(藍綠色)的駕駛時間均值:在這裡插入圖片描述
是不是變得好多了?

它並不是一個好的駕駛員,但鑑於它只訓練了2750輪遊戲,已經算是很大的成就了。

總而言之:方差差異會使強化學習產生問題。有些是全域性性的,比如乏味區域陷阱,還有一些是針對深度強化學習(DRL)的,比如操作型顧問。獎勵加噪可以帶來一些改善,特別是當新增的噪音是對稱以及適應於實際動作方差時。我們探索了Q-learning和DQN,但它很有可能也適用於Actor Critic和其他演算法。

獎勵加噪顯然不是一個完整的解決方案。許多複雜的探索要求與其他強化學習技巧(如剪裁等)並行完成。操作型顧問和乏味區域陷阱提出的問題不比其解決的問題要少。但在計劃強化學習的策略時,記住這些問題是十分重要的。更重要的是要思考:在這環境中有方差差異嗎?它們將如何對所選擇的演算法造成影響?而這也許將會幫助我們穩固強化學習。
在這裡插入圖片描述
留言 點贊 關注
我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 “讀芯術”
在這裡插入圖片描述
新增小編微信:dxsxbb