天天看點

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

強化學習煉金術 · 背景介紹(上)

歡迎來到《強化學習煉金術》第一講。手搖芭蕉扇,支起八仙爐,再點上三昧真火。各位煉金術師,你們都準備好了嗎

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈
【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

在這一課裡,我會跟大家說說強化學習的概念和目的,早期功不可沒的宗師泰鬥們,以及了解算法所需要的預備知識。不友善看視訊的朋友們,請下拉閱讀圖文

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈
【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

首先,我們重溫一下,在心有麟熙導讀裡提到的【薄荷大法 MINT】。

Motivation,确定到底要解決什麼樣的問題。

分為三小步,第一個是了解這個算法的精髓insight,然後把insight變成自己的直覺intuition,最後把intuition變成解決未來問題的inspiration。

最後才是technicality技術細節,我們會推一些公式或者看一些簡單的僞代碼。

其次,我們這門課将會從First Principle(第一原則)開始講,意思是我會一步一步告訴大家那些很炫酷的看上去非常複雜的算法是怎麼搭起來的。

再者,我們這門課是Self-contained(自成一體)。當然如果你感興趣的話,可以閱讀更多的材料,我會在以後的圖文中加一些連結。每段視訊控制在五到十分鐘之内,這樣大家聽的話也不會分神。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

我們先提一下聽懂強化學習需要做的一些準備工作。

其實強化學習的數學并不複雜,最多就到大一大二的數學水準就可以了。如果你對以下這三個領域的基本概念很熟悉的話,那麼你可以直接跳過準備階段。

微積分,如果你知道上圖符号是什麼意思就可以pass了(偏微分 partial differentiation、梯度 gradient)。

線性代數,如果你知道上圖符号是什麼意思也可以pass了(逆矩陣 matrix inverse、轉置 matrix transpose)。

基本的機率和統計,你如果熟悉什麼是正态分布,什麼是一個随機變量的期望值(expected value),也就pass了。對那些不是特别熟悉的同學,之後我也會做一些短視訊給大家補一補。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

什麼是強化學習?我們為什麼需要強化學習?

我覺得騎自行車是一個非常好的例子。大家雖然現在騎車的時候都是憑感覺的,你不會去思考每一步在幹什麼,但如果你仔細回想一下,其實駕馭自行車是一個很複雜的過程。比如說你剛騎上去踩那個踏闆,踩踏闆你到底用多大的力度才好呢?太輕的話,速度不夠,你就無法平穩前進。

在轉彎的時候,難道隻是轉一下龍頭就夠了嗎?答案是No,你需要整個身體一起配合,重心要跟着龍頭一起微調,這樣你才能保持平衡。雖然我們不用動腦筋,但騎車是一個需要全身協作的複雜決策過程。

我們再來回想一下,小時候是怎樣學騎自行車的?我記得第一次騎車的時候,年輕氣盛,自信滿滿,在直行還沒學會就想來一個90°大轉彎,結果摔得人仰馬翻,鼻子腫成了聖誕老人。我當時想,如果在每一個時刻都有一個老師可以精确地告訴你,你重心需要偏移多少,身體需要怎樣轉動,那該有多好 

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

如果有這樣一個老師的話,他會在每一個時間點都告訴你正确的踏闆力度F,比如說27牛頓、正确的轉彎角度,比如42.7°,以及身體重心需要左移3.5厘米,等等。但可惜你沒有這樣的老師,即便有也記不住那麼多資料。那你是怎麼學會自行車的呢?

其實很簡單,你用了一個方法叫trial and error(試錯法)。當你摔倒時,你就知道之前的那個騎車方式是不對的,然後下次、再下次不斷調整,直到你能順利地全速前進。

在強化學習裡有這樣一個概念,叫做reward(獎勵)。reward不一定都是好的。正的reward是我們通常意義上的獎勵

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

,而負的reward你可以認為是一種“懲罰”

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

比如說你現在往前騎了三十米,沒有摔跤,那麼你的獎勵就是+30。每摔一跤都減10。你可能騎得特别糟糕,摔得特别慘,就像我小時候摔成了聖誕老人,那麼獎勵就是-100。

你在學習騎車的過程,就是把獎勵的總和最大化的過程。比如你今天騎了100米,摔了兩跤,那你的總分數是+80。你明天根據昨天的經驗調整姿勢,得分+90。後天再改進一下,終于達到了+100,掌握了騎自行車的秘訣 。

這整個過程并沒有一個廣大神通的老師參與,告訴你每一步應該轉幾度,重心應該偏移多少。從頭到尾,你都是用trial an error,不斷嘗試,在每一次嘗試中總結經驗,然後再提高下一次的reward。這就是強化學習的精髓。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

我們來追溯一下強化學習的源頭。強化學習英語叫Reinforcement Learning(簡稱RL)。RL的曆史幾乎和人工智能本身的曆史一樣長。早在1948年的時候,現代計算機之父Alan Turing(圖靈)提出了一個叫pleasure-pain system的概念。Pleasure是享樂,pain是痛苦:如果一個系統能夠把享樂值最大化,把痛苦值最小化,那它就相當于從經驗中不斷“學習”。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

第二個要為大家介紹的曆史人物是大名鼎鼎的Claude Shannon(香侬)。他在1948年寫了一篇劃時代意義的論文“Mathematical Theory of Communication”,創立了現代資訊學(Information Theory)。

當然香侬的履歷還有更牛逼的亮點。1937年,他二十一歲,在MIT攻讀碩士學位。他的碩士畢業論文(對,你沒聽錯,是碩士畢業

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

)奠定了電路設計的基礎。毫不為過地說,香侬是一個富有傳奇色彩的天才。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

1952年,那是個計算機還處于“黑魔法”階段的年代。香侬設計了一個機械裝置(右圖的箱子)。箱子下面有很多複雜的電路,上面是一個帶磁鐵的小老鼠模型。在這個電路裡,他實作了最最基本的強化學習算法。這個小老鼠會用我們剛才說到的trial and error(試錯法),自己學會如何走出這個迷宮。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

第三位泰鬥級的人物是Marvin Minsky。Minsky是現代人工智能先驅之一。他奠定了深度學習的基礎,因為他當年做了好多早期的關于神經網絡的研究。後來他去MIT創立了人工智能實驗室CSAIL。

1961年,他寫了一篇論文《走向人工智能之路》。論文裡他就提到了trial an error這種學習方式,以及一個新的概念 “credit assignment”。比如你連續三天吃了三種藥:A、B和C。然後第四天你的病好了。請問到底哪個藥對你痊愈的貢獻最大?是A?是B?還是A+C?還是ABC同等重要,缺一不可?

Credit assignment是強化學習的核心問題之一,我們之後會仔細講解。

Minsky大師在2016年逝世,精确地說是2016年1月份。2016年3月,AlphaGo以4比1擊敗了世界圍棋冠軍李世乭。非常可惜的是,這位人工智能的泰鬥沒有活着看到強化學習走向世界之巅的那一天。命運女神就是喜歡玩黑色幽默 。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

下一位大師Arthur Samuel,他是IBM的研究員。他最著名的成就就是引入了Machine Learning(機器學習)的概念。其實“Machine Learning”這個詞組就是他首創的。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

Samuel在IBM設計了一台能下跳棋的電腦。這台機器的“大腦”叫TD Learning,是強化學習的一個重要算法,之後我們會仔細談到。是以說Samuel也是最早的幾位加入強化學習陣營的科學家。

強化學習煉金術 · 背景介紹(下)

歡迎來到《強化學習煉金術》Introduction第二講,大家元旦快樂!2018,讓我們共築AI的燈塔,照亮人類前行的道路 

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈
【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈
【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

在這一課裡,我會跟各位煉金術師們從仿生學和心理學的角度聊聊強化學習的曆史背景。不友善看視訊的朋友們,請下拉閱讀圖文

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈
【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈
【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

說起強化式學習在動物界的靈感,我們不得不提到俄羅斯著名的心理學家Ivan Petrovich Pavlov。巴普洛夫被公認為是二十世紀最偉大的心理學家之一,他提出的最重要的概念就是Classical Conditioning(條件反射),我今天這一課可以用一條狗和一隻貓來概括。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

這條狗就是巴普洛夫的。圖左這套裝置可以檢測狗分泌唾液的多少,右邊則是實驗的示意圖。比如,狗看到食物時會流口水,但一般情況下狗聽到鈴铛并沒有任何反應。但當你把鈴铛和食物配對很多次後,哪怕沒有食物,隻響一下鈴铛,你也會看到狗在分泌唾液,這就是經典條件反射。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

有這樣一個笑話,巴普洛夫在觀察狗的時候,其實狗也同時在觀察人的反應。在這幅漫畫裡,狗狗是這樣說的:“你看,每次我流口水時,對面那個老頭他就會微笑,然後在小本子上記點東西。”

是以,我們可以認為,在強化學習裡,經典條件反射,對應的就是Prediction(預測)。當你看到一個信号(比如鈴铛)時,你會預測将獲得怎樣的獎勵,然後再根據這個預測來采取行動。當然,經典條件反射是一個相對被動的過程,之後我們會談到一個主動的過程。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

下一位心理學大師是Edward Thorndike(桑代克)。 Thorndike是我們哥大的校友,他在Teacher's College,即哥大主校園對面的一片樓。那片樓非常漂亮,我記得第一次看到時,還以為是哈利波特的一個拍攝場景呢。

Thorndike提出了Law of Effect(效果律),維基百科上的定義是,在一個特定的情景下可以得到滿意的效果的反應,在該情景下重複出現的機率會上升,而得到不滿意的效果的反應重複出現的機率則會下降。

這句話非常拗口,簡而言之就是:當你做一件事,如果你發現獎勵很多,你就會多做這件事;反之亦然,如果你做的事得到了不好的回報,你就會少做這件事。這就是效果律的概念。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

大家都知道薛定谔的貓,其實還有一隻貓也特别有名:Thorndike's Cat。為了驗證效果律,Thorndike設計了一個裝置。在這個籠子裡,如果按了踩闆,那麼籠子的門就會打開。實驗發現,開始時,貓咪會在籠子裡不停地打轉,一點頭緒都沒有,但是偶爾會随機地踏到踩闆,然後籠子就打開了。之後第二次,貓咪再被放到籠子裡時,它就會直接去踏踩闆,而不會再像無頭蒼蠅一樣浪費時間。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

如果說巴普洛夫的狗是一種非自願的條件反射,那麼上述Thorndike的貓就是一種自願的條件反射。這種自願的行為,在後來被心理學巨匠B. F. Skinner總結為Operant Conditioning(操控反射)。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

在研究操控反射時,Skinner設計了一個動物實驗裝置 ── Skinner Box。在這個盒子裡,設有一隻老鼠,和一個它能夠操控的裝置。如果按下杠杆,就會有食物從管中掉落;亦或是在另一種實驗中,如果小鼠按下杠杆,盒子就會發出很大響聲讓小鼠受到驚吓。

Skinner就用這樣一種裝置來研究動物行為,和動物與環境的互動,即獲得獎勵(食物)或是懲罰(響聲)。Skinner觀察到,當獲得獎勵時,小鼠會非常頻繁地按動杠杆;而當獲得懲罰時,小鼠則會盡力避免觸動杠杆。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

在強化學習的語言裡,Skinner的Operant Conditioning(操控反射)對應的概念是Control,即能夠根據對環境的認識,來操控環境,進而使對自己的獎勵最大化。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

至此,我們一直說,Trial & Error(試錯法)是強化學習的核心思想,但它并不是唯一的思想。Trial & Error 及其對應的一套算法,稱為Model-free Reinforcement Learning,即沒有模型的強化學習。這可認為是,人們在不斷試錯的過程中,養成的一種習慣。如上圖,老鼠看到奶酪會撲上去,但看到奶酪旁的老鼠夾時,就會避免這個陷阱。

【強化學習煉金術】李飛飛高徒帶你一文讀懂RL來龍去脈

第二種是與Trial & Error有一定差別的強化學習,可以用1929年美國心理學家做的小鼠實驗來概括。在這個實驗中有兩組,第一組老鼠被置于迷宮裡,迷宮中央設有食物。小鼠會順着氣味行動,最後取得食物,假設這組老鼠獲得食物花了10分鐘。這就是我們說的Trial & Error,通過不斷試錯(在迷宮中走到死路就往另外一邊走)來達成目的。

第二組老鼠,一開始時被放置在同樣的迷宮裡,但這個迷宮中央并沒有食物,也就是說,這個環境中并無任何獎勵,小鼠在迷宮中完全是想怎麼打轉就怎麼打轉。這一階段并不存在Trial & Error,因為小鼠沒有試圖去獲得某種獎勵。

實驗人員發現,如果緊接着把這組小鼠放在相同的但是有食物的迷宮裡,那麼這些小鼠就能夠在短短3分鐘内就找到食物。這個實驗結果表明,雖然在第一階段沒有任何獎勵機制,但是小鼠腦子裡已經建立起了一個“環境模型” ── Cognitive Map,也就是這個迷宮的地圖。接着在第二階段中設定了獎勵時,小老鼠就能利用它們存在腦海裡的地圖,快速地找到食物。

原文釋出時間為:2018-01-07

本文作者:Jim 範麟熙

本文來自雲栖社群合作夥伴新智元,了解相關資訊可以關注“AI_era”微信公衆号

繼續閱讀