讓強化學習逃離「乏味區域陷阱」,試着加點噪音吧!

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

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

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

因而,人們都相信這位顧問,紛紛買了政府債券。因爲政府債券的特殊性,致使他對於回報的估計天然是十分準確的,偏差很小。因此人們不得不向他支付高昂的諮詢費用。函數

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

事實上,他就是一種「操做型顧問」。學習

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

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

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

下面,讓咱們來分析這個問題吧!遊戲

操做型顧問
強化學習(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 便可進微信交流羣

相關文章
相關標籤/搜索