當前位置:
首頁 > 知識 > 親手教的AI總是放心些

親手教的AI總是放心些

版權聲明:本文智能單元首發,本人原創,禁止未授權轉載。

前言:6月12日,DeepMind和OpenAI聯合發布了論文《Deep Reinforcement Learning from Human Preferences》,主要介紹了合作團隊在增強學習領域中,面對那些在「現實世界中,那些無法得到回饋函數的複雜任務」的新思路和相關工作進展,其核心思路就是引入了非專家人類對增強學習個體的學習過程進行了「指導」

有趣的是:雙方在博客中均提到了該研究是在「Technical AI Safty」的長遠研究願景之下產生的,這不能不讓人產生一些聯想:)

內容列表

問題驅動

論文思想

演算法思路

實驗效果

下步研究

AI安全

問題驅動

在我看來,這篇論文是由兩個問題驅動的:

RL演算法面對複雜任務的回饋函數難以設計

從技術層面探索人工智慧安全

其中第一個問題是論文用力著墨的。第二個問題是OpenAI和DeepMind這個合作團隊的遠期研究願景和在官方博客(OpenAI Blog&DeepMind Blog)中關於本次合作成果的介紹中體現出來的。本專欄文章重點介紹第一個問題,在文末簡單談下第二個問題

RL演算法在面對複雜任務時存在問題。增強學習發展良好,這個趨勢目前也良性地保持著。然而歸納一下就可以發現,增強學習演算法目前大放異彩的領域,大都是能夠給出一個良好定義的回饋函數(reward function)的領域。從最初的7個Atari遊戲,到後來的幾乎整個Atari遊戲集合,再到AlphaGo,幾乎都是這樣。這和增強學習演算法本身的世界觀設定是密切相關的:

上圖截取自David Sliver的增強學習課程Lecture 1

對於每個看David Silver的RL課程或者看Introduction進入到增強學習世界的人來說,上面這幅圖簡直是熟悉的不能再熟悉,因為這就是RL的基本世界觀。

有了Gym、Universe和ViZDoom,研究者在這些平台上能夠很方便地調試著自己演算法,讓智能個體(agent)在各種任務中去獲取更多的回報(Return),而每次env.step(action)之後得到的回饋(reward),也成為了一個默認事實。況且,即便是環境給出了回饋,有時還需要做一些回饋塑形(reward shaping)工作才能取得較好的效果,如何改進演算法本身是我們的核心關注,回饋不是本來就該有的嘛?

然而問題在於:現實世界中,有太多的任務,它們的目標不但複雜,而且很難良好地定義,甚至連合理地描述都很困難,這樣的任務如何去設計一個回饋函數?既然無法給出良好的回饋函數,增強學習演算法該如何在這些任務中發揮他們的威力呢?

OpenAI和Deepmind合作團隊說:我們用人的判斷來指導演算法的學習

論文思想

要是我們想用增強學習演算法訓練一個人形機器人,讓它能夠收拾桌子或者說是打個雞蛋什麼的,你說該怎麼構建一個回饋函數函數?一般的思路就是去設計一個,讓它能夠儘可能低去近似想要的動作。然而事實證明這樣經常會讓演算法向著奇怪的方向跑偏。還有,你人形機器人相對來說人還比較能夠「感同身受」一點,但是要是是一個複雜的非人形機器人呢?就更麻煩了。

論文的解決思路是:讓人類對系統的當前動作來做出反饋,然後使用這些人類的反饋信息來定義這個具體的任務。這個思路的可行之處是可以自然地融入到增強學習的流程中,存在的主要問題是如果人類反饋信息的需求量過大,那麼就不切實際了,所以至少需要呈幾個量級地降低演算法對於人類反饋信息的需求。

首先要說的,是人類反饋的具體形式:很簡單,實驗是請了一些不是領域內的專家的志願者,然後演算法選出自己沒什麼把握的訓練過程中的視頻片段(一般1-2秒)讓人類看,人類給出反饋,看那個視頻片段中智能個體(agent)的動作更符合任務的目標定義。志願者們看到的界面如下圖所示:

比如:一個任務的描述是「讓機器人玩Qbert玩得更好」,志願者就看兩個視頻,哪個視頻中的機器人感覺玩得更好,就選擇哪個。具體的原理後文有講解。

根據下圖並比對傳統RL可以看到:傳統增強學習演算法賴以訓練演算法的回饋信息是環境直接給出的,就好比我們在Gym中調用了env.step()函數後,它返回給我們的數據中就包含了回饋(reward),回饋是明明白白寫那裡,可以實際看到的,比如就是1。然而在本文的設定中,這麼一個回饋不是環境直接給出的,而是來自於一個回饋函數預測器(紫色方框)。

上圖截取自OpenAI博客對於論文的介紹博文

回饋函數預測器一方面能夠預測出回饋信號,並把回饋扔給演算法說:喏,雖然不是環境直接給的回饋,不過我預測回饋還是將就能用的,拿去訓練吧!另一反面,它通過比較自己的預測結果與真實人類的反饋信息,不斷地在學習,讓自己能夠更加接近人類的偏好。總的說來,它即努力揣摩老闆(人類),又給下屬明確的反饋(回饋信息),是個稱職的小伙兒。

演算法思路

看完論文簡介,我給自己提出以下問題:

問題:演算法的回饋預測器具體是什麼結構?

問題:演算法的回饋預測器如何根據人類反饋信號去擬合人類偏好的?

問題:演算法是如何挑選哪些片段應該以視頻的方式呈現給人類讓其判斷的?

問題:人類對於視頻片段的反饋信息數據是如何設計的?

問題:策略網路是如何更新的?

帶著這些疑問去閱讀,往往能夠理解得更深。我發現其實以上問題得到解答,基本上這個演算法也就理解了,所以我就不按照論文的組織,而是按照對以上問題的解答順序去介紹演算法

演算法的基本設定和目標:觀測,動作,個體軌跡的片段是由觀測和動作組成的序列,同時假設人類能夠對個體軌跡的片段表達出自己的偏好。如果人類認為智能個體的動作軌跡片段比更符合目標任務的表述,這種偏好就用來標示。

說的直白一點,智能個體的目標就是兩點

一方面要儘可能產生符合人類偏好期望的動作軌跡

另一方面要儘可能少地去詢問人類(這是為了減少人類成本)。

論文中還定量地分有回饋函數和沒有回饋函數兩種情況討論了目標問題,符合直觀感受,這裡就不贅述。

隨著論文的閱讀,我發現自己提出的問題都被有序地得到了解答:

問題:演算法的回饋預測器具體是什麼結構?

演算法在每個時間點都保持著兩個深度神經網路,一個是策略網路,一個就是回饋函數預測器:。所有回饋函數預測器就是個深度神經網路,那麼它如何去擬合人類偏好的套路基本也就差不多是有監督學習的老套路了。

這些神經網路之間的協作方式還是需要注意一下的:

在策略網路 的指導下,智能個體與環境發生交互,得到了一系列的軌跡集合。策略網路還是採用傳統的增強學習演算法來更新,目的就是得到最大的回報;

從軌跡集合中選取軌跡片段,然後做成視頻扔給人類,讓人類去比較判斷;

回饋函數預測器 的參數更新採用典型的有監督學習方式,使用從人類那兒得到的反饋信息(就是比較結果啦)作為目標讓其學習並擬合。

問題:人類對於視頻片段的反饋信息數據是如何設計的?

人類得到的是動作軌跡片段的可視化樣本,也就是視頻,視頻長度一般1-2秒。然後根據視頻和研究者給出的,對於任務目標的自然語言描述,開始判斷視頻到底哪一個更符合任務目標的期望。演算法使用元組的來記錄人類的反饋,並將其存儲在資料庫中。其中:

自然是指動作兩個軌跡片段;

指的是對於兩個片段的偏好的概率分布;

實際操作時:如果人類判斷片段1優於片段2,那麼就將所有的質量放在1上(具體 的取值論文沒說);如果人類覺得兩個片段一樣好,那麼 就是平均的。如果人類無法判斷,那麼就不放入資料庫。

按照這種數據結構,人類的偏好就記錄了下來。個人猜測的實際是由兩個和為1的構成,當偏好明確的時候,取值為0,1。當偏好均等時,均取0.5。

問題:演算法是如何挑選哪些片段應該以視頻的方式呈現給人類讓其判斷的?

這個問題實際上對應的就是論文作者在開篇提出的:要讓人工反饋的量下降幾個量級才能使得演算法具有實際操作性。思路如下:

基本思想是:回饋函數預測器中存在不確定性,基於對這種不確定性的近似來向人類進行詢問

具體流程是:首先取樣出大量的動作軌跡對,軌跡的長度均為 。然後演算法中其實有多個回饋函數預測器(因為本文是按照自己提問的順序在組織,論文在介紹如何挑選詢問軌跡之前已經介紹有多個回饋函數預測器情況),那麼就用每個回饋函數預測器對所有的動作軌跡對都做出預測。假設有n個回饋函數預測器,那麼每個軌跡對就會得到n個預測的回饋值。其中有些軌跡對的n個預測值的方差大,有的方差小,演算法選擇方差最大的那些軌跡對作為被人類詢問的軌跡對

具體選多少來詢問人類呢?在論文的實驗與結果部分,可以看到它不同的實驗環境(MoJoCo和Atari)用的標籤數不同:在機器人任務MoJoCo的不同任務中,用了750次人類判斷數據來訓練;在Atari的不同遊戲中,用了5500次人類判斷數據來訓練。實際採集的數據可能更多些。

論文的作者認為這個挑選方式還是有點簡單粗暴了,下一步可能會基於詢問信息的期望值來進行挑選,但是這也是後續的工作了。

問題:策略網路是如何更新的?

沒什麼好說的,還是老的RL那一套。MoJoCo任務用的是TRPO,Atari用的是A2C,為啥選擇這倆演算法呢?因為回饋函數預測器 的分布可能是非靜態的,所以演算法最好對回饋信號能夠魯棒一些,於是方法最好選策略梯度類方法咯。還有個細節要注意:回饋函數預測器 的預測回饋數據出來在用來訓練之前,要進行歸一化處理。

【核心問題】:演算法的回饋預測器如何根據人類反饋信號去擬合人類偏好的?

這個問題直接指向了論文演算法的核心了。然而思路也還是比較簡單直接的,肯定還是有監督學習的套路,就是看看是如何構建的了。

首先我們做出如下假設

回饋函數預測器 是解釋人類判斷的潛在因素;

人類對於智能個體的某個動作軌跡片段的偏好的概率是指數級地依賴於這個動作軌跡中的的某種計算方式得出的值;

這種計算方式就是就是對軌跡中整個長度的所有觀測和動作對求出潛在回饋之和,也就是說,求出之和。

如果接受以上假設,那麼就可以把回饋函數預測器 看做是人類偏好的預測器

論文給出了更加偏好於某個動作軌跡的概率的計算方式:

那麼如何構建損失函數呢?使用預測標籤和人類打的標籤,計算它們之間的交叉熵損失,然後讓回饋函數預測器 (也就是一個深度神經網路)來最小化這個損失值即可。典型的有監督套路,夠直接!計算方式如下:

:原論文在求和符號後沒有括弧,我根據自己的理解補充了括弧將兩個式子都包含起來。

為什麼要這麼計算,論文說這是Luce-Shephard選擇規則的一個特例。我暫時還沒有去更細地查看這個選擇規則的細節。

現在,就理清了如何根據人類反饋數據來訓練回饋函數預測器了:利用人類反饋數據中的偏好標籤 、運動軌跡中的觀測與動作對序列和回饋函數預測器,按照Luce-Shephard選擇規則構建回饋函數預測器網路的損失函數,以最小化損失值為目標,最優化訓練網路

在介紹如何擬合回饋函數預測器的時候,論文還介紹了一些細節,分別是:

擬合了好幾個回饋函數預測器;

數據的用來做驗證集,用了正則化,有的任務用了dropout;

假設了10%的人類數據是隨機的,因為人類判斷可能存在錯誤。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 推酷 的精彩文章:

淺析Node與Element
重回中國市場的挪威三文魚,想要這樣拉攏吃貨們
讀Zepto源碼之屬性操作
新加坡企業網路營銷競爭性高於香港3倍
用上古思想寫現代前端

TAG:推酷 |

您可能感興趣

吊打渣男與花心男秘籍《戀愛先生》親手教學!宋寧宇與張銘陽誰是最可恨壞蛋?
包子最好吃的3種做法,大廚親手教你做法配方,隔著屏幕都要流口水!
他搶了偽軍的物資,親手教戰士們縫製棉衣,終於勝利會師
金庸筆下此反派武功配置最好,卻因太善良,親手教主角殺死了自己
親手教你製作美容養顏又瘦身的檸檬水!保證是你從沒有喝過的美味佳品!
小編親手教你做最地道的家常水煮肉片,肉片滑嫩,熱辣鮮香!
菩提老祖親手教出的天神妖怪,完勝孫悟空,卻犯了和悟空一樣的錯
這個穴位每天按一按能瘦腿,還能緩解生理期不適,親手教會你
想吃正宗的啤酒鴨?大廚親手教你怎樣做,鮮香入味好吃到爆
奶奶親手教授的蘿蔔卷,你家還有這道美味嗎?
親手教你刷機,運營商定製機頂盒秒變全網通機頂盒
貝爺河流里抓到兩隻小龍蝦,親手教你怎麼保存下來,原來還能這樣
《偶像練習生》導師小姐姐人美臉小,化妝技術原來是宋茜親手教的?
手鏈收尾打結方法圖解 親手教你做出別緻小飾品
《幕後之王》社會大學開課了,張雨綺姐姐親手教你做個人!
周杰倫親手教林志穎兒子Kimi變魔術,林志穎圍觀比兒子還認真
親手教你製作不一樣的檸檬水!美白效果翻倍增加!
不良人:親手教了八年的徒弟還不如一個偷學的厲害,陽叔子很無奈
江疏影親手教你紅唇該怎麼塗 這顆安利我先吃下了
冬季腦出血複發?專家親手教您如何治療護理!