【深度學習】LeCun親授的深度學習入門課:從飛行器的發明到卷積神經網路

產業智慧官發表於2018-03-17
Root 編譯整理
量子位 出品 | 公眾號 QbitAI

深度學習和人腦有什麼關係?計算機是如何識別各種物體的?我們怎樣構建人工大腦?

這是深度學習入門者繞不過的幾個問題。很幸運,這裡有位大牛很樂意為你講解。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

2月6日,UCLA(加州大學洛杉磯分校)與純數學與應用數學研究所(IPAM)跨界組織主辦的論壇上,“卷積神經網路之父”Yann LeCun操著一口濃重的法國口音,給數學界的科學家們介紹了深度學習。

LeCun從鳥類對飛行器發明的影響開始講起,層層遞進、逐步深入到深度學習的本質,可以說非常新手友好了。

機不可失,還不來圍觀這堂由大神親自授課的深度學習入門指南?

快去搬凳搶座!

量子位首先搬運了全程視訊(當然,是生肉):


當然,還整理了講座的主要內容:

今天在座的都是數學大神。

我呢,既不是數學家,也沒拿諾貝爾獎。感覺站這兒份量不太夠。

以前專業是工程學,不過炸過一些東西,後來就轉軟體了(不然世界怎麼樣就不好說了)。

今天來,給大家簡單介紹一下深度學習。

但我們不從AI開始講起,而是從人類發明飛行器開始講

依照達芬奇飛行器草圖做的第一款飛行器,完全照搬了鳥類的外形。那時候根本不知道飛行底層的原理,所以只能從自然界的生物獲得靈感,照葫蘆畫瓢。

640?wx_fmt=jpeg

第一次飛行,只成功離地15公分,還是20公分的樣子,飛行器就掛了。所以我們還是需要更系統的方法,就是後來萊特兄弟造飛行器用到的一套方法,飛行終於成為了現實。

一般來說,理論認知都是在實踐積累之後才有的。

飛行就說這麼多。

那麼問題來了。

人工智慧可以從大自然裡獲得靈感嗎?

很明顯,這個想法很舊啦。我們先看一下生物界的智慧體。

人類的大腦,差不多有850億個神經元。而每個神經元都有上萬個突觸,在一千到十萬個之間不等。人腦相當高效,能耗才25瓦特,是PC的十分之一。

每個有大腦的動物都能學習,不同動物的學習方式可能不同,有些比較簡單。它們並不需要特別好的視覺,或者其他智慧體的教導,就能自己去學。

我們嘗試找出動物學習的機制,然後用來訓練機器學習。

640?wx_fmt=jpeg

慢慢地,從1940年起,就有了打造智慧機器的想法。於是就冒出來了感知機(Perceptron)。

它不是一臺計算機,而是一個計算機模擬器。輸入值是電壓,超過某個閾值,就開啟。低於閾值,就關閉。而權重是可以被訓練的,就像一個可旋轉調節的鈕。

儘管現在我們可以用三行Python程式碼實現它,但在那年代已經算是大型的計算機了。

這個感知機是怎麼運轉起來的呢?

原理是很簡單的,你需要先集齊一堆訓練資料。

比如說任務是影像識別,那麼輸入就是影像的一個個畫素。當每個畫素用0,1表示時,那麼就可以組成一串數字。

你給機器一張圖,字母A,然後輸出應該是1。那麼訓練的時候,就讀取影像中的畫素,調高那些能增強最終結果是1,也就是判定字母是A的畫素的權重,並調低偏離最終結果的畫素的權重。

640?wx_fmt=jpeg

數學上只需要一行Python程式碼就可以搞定。

事實上,雖然這個辦法是直覺上想出來的,但後來幾年發現這個問題可以總結成幾個方程,也是受到了生物學的啟發。

我們回到人的大腦是怎麼學習的。

每個神經元是通過突觸來連線其他神經元,從而傳遞訊號。

640?wx_fmt=jpeg

但數學上,這個概念被簡化了,將感知機裡的權重看成一個個的旋鈕。

對於具體的輸入,根據輸出的錯誤再調引數,訓練,重複,直到目標函式的值越來越小(目標函式的值,表示的是你得到的輸出和你想要的輸出的差值)。

這叫做梯度下降(gradient descent),依然是很簡單的數學問題。

舉個稍微複雜一點的例子,我們要做一個圖片分類器,辨識汽車、飛機、椅子等物體。

640?wx_fmt=png

它們的外觀千變萬化,我們怎樣讓計算機認出每一類物體呢?

這需要依賴大量的手動調整。給系統一張車的照片,如果系統將它認成車,紅燈亮起。如果紅燈不亮,就調整這些按鈕,讓紅燈的亮度增強;輸入飛機的圖片,調整按鈕,讓綠燈亮度增強。

輸入足夠多的訓練資料不停調整按鈕,直到機器能夠辨認出來它從來沒見過的相片為止,那麼就算訓練成功了。

你們肯定會問,這個能識別影像的神祕盒子裡到底裝了什麼?

這個答案,在過去的幾十年裡,一直在變。

傳統的模式識別,是給它一張圖,然後過一個特徵提取器。這個特徵提取器是人工搭建的,把這些影像的畫素變成一串數字,然後用簡單的演算法吸收消化,得到這張圖的內容。這種方法在深度學習出現以前一直都在用。

640?wx_fmt=jpeg

而深度學習是把模組分成可以被訓練的好幾層。就像視覺訊號的傳遞一樣,需要多步來提取資訊。

下一個我們要問的問題是,我們應該往這些可訓練的模組箱裡放什麼東西?

“多層”的概念是50年代提出的,到80年代時用的人稍微多了起來。

640?wx_fmt=jpeg

每一層都是由簡單的單元組成,而單元又是基於上一層的輸入,經過不同程度的權重處理得到的。然後如果值超過閾值,就繼續往下走,低於閾值就不取。

那麼,我們要如何訓練機器呢?

這其實是不斷調小偏差的過程。問題的關鍵在於往什麼方向調整引數、調整到什麼程度,才可以拿到我們想要的輸出。

1980年,這個問題才有瞭解決方案。

這個方案是一個複雜的數學概念的實際應用, 叫鏈式法則(Chain rule)。

當你有一個網路的時候, 你有的是連續的功能區塊(Functional block)。

每一個區塊或者做矩陣乘法,或者是給每個輸入做一個非線性的運算。我們來看看系統之中分離出來的一個區塊。

640?wx_fmt=jpeg

你可以簡單地算出來輸出值。比如說這是一個線性的矩陣乘法模組,引數乘以向量,這樣你就能拿到輸出的向量。這兩個區塊有不一樣的維度。

現在假設,對於每個向量中任何元素的調整,我們都知道損失會往什麼方向變化。

損失函式的斜率,表示的是我們得到的輸出和我們想要輸出的差值。通過計算,可以得出圖中綠色的向量,從上到下計算一個遞迴公式,通過反向傳播,就能得到cost和所有模組相關的梯度。

很多現在的平臺,在你寫程式定義網路後,都可以自動執行反向傳播,計算梯度。

這些問題都解決了之後呢,我們就可以建一個人工的大腦了嗎?

要知道,人腦每秒可以做10的17次方的運算,神經元數量達到10的11次方。

我們來看一款運算速度很快的晶片。右下角的英偉達Titan-V,這個GPU每秒可做10的15次方運算,比人腦要慢100倍。

640?wx_fmt=png

所以大家算算,即使晶片的速度翻一倍要18個月的話,那還要多長時間能達到和我們人腦一樣?如果要讓晶片在合理的大小範圍的話,我認為我們還要等多幾十年。

但這個不是主要問題。主要問題是我們不知道怎麼程式設計它們、怎麼訓練它們、訓練原則是什麼。

這個GPU很便宜,才3000刀,但是現在大家都在買來挖礦,所以已經買不到了。

我說過很多次了,如果在我職業生涯中,能夠造一個智慧體,像大鼠一樣具有常識,我會感到很開心很滿足。我們現在也許有相應的算力了,但我們還沒有搞清楚潛在原則。現在是這個底層原理限制住了。

好啦,現在我們來跳出來看看生物還有沒有給我們別的啟發。

Hubel & Wiesel 1962這個生物研究工作太有名了,大家都知道的,是70年代拿了諾貝爾獎的。工作本身是在60年代做的,是視覺訊號傳遞的生理結構。

簡單的細胞檢測位置資訊,複雜的細胞整合簡單細胞受到刺激的資訊。

640?wx_fmt=jpeg

所以,如果有一個特殊的動機,稍微移動一點,複雜細胞都會被啟用。

Fukushima 1982年造了一個計算模型,就是描述簡單細胞和複雜細胞之間的層級關係。這個是80年代的工作,那時候還沒有合適的學習演算法。所以用了其他的非監督型演算法。

後來,我受到這個演算法啟發,造了一個含有相似構造的網路,用反向傳播演算法來訓練,就是我們平時說的卷積神經網路(CNN)。

下面是卷積神經網路的示意圖。

影像中的畫素會啟用CNN中的單元。但我不敢稱他們為神經元,不然神經科學家會不爽。因為比起神經元來說,這些單元實在是太簡單了。

640?wx_fmt=jpeg

每個單元,看起來像patch。這些單元會和閾值比,比他們高,就開啟。低的話就關上。

可以看到這個用鐳射筆指出的patch是係數。

左邊這個是輸入patch,把係數向量和輸入向量乘在一起。用係數把整個輸入刷一遍,然後你記錄就能得到右邊的結果。

如果它們能夠匹配的話,就得到高度啟用的結果,不匹配就得到非啟用的結果。

這在數學上就叫做離散型卷積。

經過了層層卷積核的係數處理,最後得到的是最右邊的壓縮過的資訊。

640?wx_fmt=jpeg

我們90年代中期的時候弄了一個很牛的模型。不僅能夠認出來一個字母,還能認出多個字母,還不用先分割開。當時如果用經典數學演算法就必須先分割。

等到無法從影像中分割出物體時,我們模型的重要性就顯現出來了。

這個模型中每一層都是卷積的,同時進行分割和識別。

這是那個時候年輕的我,把一張紙條放在一個攝像頭下面,然後按一下鍵盤。這是1993年的時候(嘴上說的是1992年)。

這是我在新澤西的時候貝爾實驗室那會兒的電話號碼,現在已經不用了。

640?wx_fmt=jpeg

在幾秒鐘之內,就可以處理影像,識別出數字。

訓練資料量不用很多,哪怕是很小的、不同的手寫體,都能識別成這樣,效果很不錯了。

為了以合適的速度跑起來這個程式,我們用了特殊的硬體DSP 32C,速度可到 20 FLOPS。最後,我們用這個造了一個可以識別支票的系統。於1996年左右開始鋪開使用。

到90年代末,這套系統已經在處理10%到20%左右的支票了。如果你夠老的話,也許你的支票被這套系統讀取過。

這麼看,這套系統還是挺成功的。可惜在90年代中期,在機器學習圈裡,大家對神經網路的熱情消失了。

很大一個原因是,這套系統需要大量的計算力投入才軟體系統裡。這樣才有可能跑起來。

這一切都發生在MATLAB、微軟系統、Linux出現之前,AT&T都還沒公開相應的硬體資源。沒有大型計算機,或大型資料集,大家做這個都只能靠直覺。

其實在那個時候,很多東西都很玄學,我們並不能從數學的角度去解釋他們。

不能解釋背後的原理的話,就沒辦法形成一套理論。沒有理論就很混亂,都發不了文章。

哪怕事實上,這些方法是可用的,但是也被拋棄了。

不過我們當中的某些人,知道,這方法最終還是會回來的。因為在某些情況下,這套方法是更好的。

因為它們會自己學習,不僅僅是識別影像,還能夠抽象地表示這個世界。它們能夠找到事物的本質,然後找到不同部分之間的聯絡,然後組裝成以個整體。它們做的事情很強大,所以也需要更多的資料。

在1996年和2002年之間,我幾乎停止了這方面的研究,改做影像壓縮。

2003年的時候我又開始搞回這個了。我們做了一輛有兩個攝像頭小車,讓人來控制它,當距離障礙物2米的時候,我們會控制它向左轉或向右轉來避開障礙物。然後,我們訓練一個CNN來看兩個攝像頭採到的畫面,去預測方向盤轉向的角度。

640?wx_fmt=jpeg

只需要20分鐘的訓練資料,這個CNN就可以自己開車了!遇到障礙物的時候,它會自行轉向避開。

在這套系統的啟發下,DARPA舉辦了LAGR(Learning Applied to Ground Vehicles),一個150萬美元的專案。

640?wx_fmt=png

你可以看到這個機器人有四個攝像頭,內部裝了三臺計算機,可以在自然環境中自動行駛。我們訓練了一個CNN,讓它告訴我們在畫面上,哪些區域是可以順利通過的。

使用傳統的立體視覺成像技術,也能實現這個功能。但是,立體成像很貴,工作範圍也很有限,大概能做到10米的距離。

這就是CNN的一種用途。

很快我們就意識到,不能只是標記一個區域能不能通過,更有意思的是,看圖中的某些畫素屬於哪個物體。(物體識別分類)。

舉個例子來說,這些是天,樹,窗,路等等。

640?wx_fmt=jpeg

這是有人騎著自行車上路拍到的第一人稱視角畫面,這個演算法不能說完美,它認為這裡是沙漠,實際上在曼哈頓不可能有沙漠。

不過,它識別行人等主要目標的能力都不錯,而且即使在普通電腦上跑,也比當時最領先的系統快100倍。這個演算法讓很多人產生了靈感,認為我們能把它用到無人駕駛上。

2014年,有兩個公司很快就把這個技術拿過去用了。一個是MobilEye,另一個是Nvidia。

640?wx_fmt=png

2010年之前,這些研究都在低調地進行著,後來,事情有了變化。

2011年的時候,深度學習在語音識別上有了重大的進展。

在2012年年底,深度學習在ImageNet比賽上一舉成名。ImageNet資料集包含1000類物體的130萬張照片,傳統影像分類演算法在這個資料集上取得的最低錯誤率大約是26%。

2012年,一個多倫多大學做出來的大型CNN,將錯誤率降到了15%。他們是第一個正式用GPU跑這麼大的CNN的團隊。

於是,突然之間,整個計算機視覺領域都開始使用這項技術。我從來沒見過一個研究領域如此快速地從一種技術轉向另一種。

其實就在2011年,我們還提交了一篇論文到CVPR。這篇論文打敗了當時最好的記錄,但是卻被拒了。因為那個時候人們都不相信CNN能取得這麼好的成績。因為大家沒見過,於是,他們就主觀臆斷地認為我們犯規了之類的。

但是3年之後,世道完全反過來了。你不用CNN,文章都不可能被接收。

不過這也不是一件好事。因為這樣會滅殺多樣性。講這件事是想讓大家知道,這在當時是一個多麼重大的革命。

這些網路都特別大,有上百萬個按鈕、單元和權重。網路的第一層檢測的都是一些基本motif,比如邊緣、線條等等。

有的CNN多達50層,甚至更多。為什麼我們需要這麼多層?

640?wx_fmt=png

神經網路的多層架構對應著資料的組成型結構,不同層檢測不同的特徵,比如線條、邊緣等底層特徵,圓圈、弧線、角等中層特徵,更接近圖形的高層特徵。

這個世界的所有事物呈現都是分層的。比如文字,就是從字母,字,詞,從句,句子,段落組成的。

愛因斯坦曾經說過,這個世界最不可思議的事,是所有東西都是可以被理解的。

世界上最令人費解的事情是,世界是可以理解的。

過去幾年大量的公司做了很多努力,讓這些技術落地,並規模化。

開始列舉最近各種研究進展

比如說,我們現在用256個CNN,1小時就能完成在整個ImageNet上的訓練,錯誤率達到23.74。

計算機視覺的最前沿研究Mask R-CNN,可以做物體分割,關鍵點檢測,人體姿態捕捉等等。用Sparse ConvNet還可以做3D語義分割——

640?wx_fmt=png

另外,CNN還能用在和視覺沒什麼關係的領域,比如做翻譯。這對於Facebook來說很有用,幫助使用者翻譯短篇的文章。

今天分享提到的很多資料,都是開源的。

卷積神經網路可以應用在很多領域,比如在無人駕駛上,可以幫機器用視覺感知環境。在醫學影像、基因學、物理學等等各種領域都有應用,而且幾乎每天都有新的落地領域出現。

深度學習不僅能感知,還能推理。

比如說,我們可以根據一張圖片,提出問題,

下圖中方塊的數量比黃色的物體多嗎?

640?wx_fmt=png

如果是人類來回答這個問題,需要分別數一數方塊和黃色物體的數量,然後比較這兩個數量的大小。

對於神經網路來說,就需要一個模組來分類出方塊和黃色物體,另一個模組來數數,還需要一個模組比較大小給出答案。

這個神經網路是動態的會隨著輸入的變化而變化,輸入會決定神經網路的架構。

另外,用記憶模組來增強神經網路也是一個很有意思的研究方向。

在講座中,立昆老師又提到了他最近推崇的可微分程式設計。感興趣的同學可以閱讀之前的文章,以及自行看視訊。

最後,立昆老師還強調了一點:目前,機器並沒有通用的智慧,也沒有嘗常識。

640?wx_fmt=png

  

640?wx_fmt=png

人工智慧賽博物理作業系統

AI-CPS OS

人工智慧賽博物理作業系統新一代技術+商業作業系統“AI-CPS OS:雲端計算+大資料+物聯網+區塊鏈+人工智慧)分支用來的今天,企業領導者必須瞭解如何將“技術”全面滲入整個公司、產品等“商業”場景中,利用AI-CPS OS形成數字化+智慧化力量,實現行業的重新佈局、企業的重新構建和自我的煥然新生。


AI-CPS OS的真正價值並不來自構成技術或功能,而是要以一種傳遞獨特競爭優勢的方式將自動化+資訊化、智造+產品+服務資料+分析一體化,這種整合方式能夠釋放新的業務和運營模式。如果不能實現跨功能的更大規模融合,沒有顛覆現狀的意願,這些將不可能實現。


領導者無法依靠某種單一戰略方法來應對多維度的數字化變革。面對新一代技術+商業作業系統AI-CPS OS顛覆性的數字化+智慧化力量,領導者必須在行業、企業與個人這三個層面都保持領先地位:

  1. 重新行業佈局:你的世界觀要怎樣改變才算足夠?你必須對行業典範進行怎樣的反思?

  2. 重新構建企業:你的企業需要做出什麼樣的變化?你準備如何重新定義你的公司?

  3. 重新打造自己:你需要成為怎樣的人?要重塑自己並在數字化+智慧化時代保有領先地位,你必須如何去做?

AI-CPS OS是數字化智慧化創新平臺,設計思路是將大資料、物聯網、區塊鏈和人工智慧等無縫整合在雲端,可以幫助企業將創新成果融入自身業務體系,實現各個前沿技術在雲端的優勢協同。AI-CPS OS形成的字化+智慧化力量與行業、企業及個人三個層面的交叉,形成了領導力模式,使數字化融入到領導者所在企業與領導方式的核心位置:

  1. 精細種力量能夠使人在更加真實、細緻的層面觀察與感知現實世界和數字化世界正在發生的一切,進而理解和更加精細地進行產品個性化控制、微觀業務場景事件和結果控制。

  2. 智慧:模型隨著時間(資料)的變化而變化,整個系統就具備了智慧(自學習)的能力。

  3. 高效:企業需要建立實時或者準實時的資料採集傳輸、模型預測和響應決策能力,這樣智慧就從批量性、階段性的行為變成一個可以實時觸達的行為。

  4. 不確定性:數字化變更顛覆和改變了領導者曾經仰仗的思維方式、結構和實踐經驗,其結果就是形成了複合不確定性這種顛覆性力量。主要的不確定性蘊含於三個領域:技術、文化、制度。

  5. 邊界模糊:數字世界與現實世界的不斷融合成CPS不僅讓人們所知行業的核心產品、經濟學定理和可能性都產生了變化,還模糊了不同行業間的界限。這種效應正在向生態系統、企業、客戶、產品快速蔓延。

AI-CPS OS形成的數字化+智慧化力量通過三個方式激發經濟增長:

  1. 創造虛擬勞動力,承擔需要適應性和敏捷性的複雜任務,即“智慧自動化”,以區別於傳統的自動化解決方案;

  2. 對現有勞動力和實物資產進行有利的補充和提升,提高資本效率

  3. 人工智慧的普及,將推動多行業的相關創新,開闢嶄新的經濟增長空間


給決策制定者和商業領袖的建議:

  1. 超越自動化,開啟新創新模式:利用具有自主學習和自我控制能力的動態機器智慧,為企業創造新商機;

  2. 迎接新一代資訊科技,迎接人工智慧:無縫整合人類智慧與機器智慧,重新

    評估未來的知識和技能型別;

  3. 制定道德規範:切實為人工智慧生態系統制定道德準則,並在智慧機器的開

    發過程中確定更加明晰的標準和最佳實踐;

  4. 重視再分配效應:對人工智慧可能帶來的衝擊做好準備,制定戰略幫助面臨

    較高失業風險的人群;

  5. 開發數字化+智慧化企業所需新能力:員工團隊需要積極掌握判斷、溝通及想象力和創造力等人類所特有的重要能力。對於中國企業來說,創造兼具包容性和多樣性的文化也非常重要。


子曰:“君子和而不同,小人同而不和。”  《論語·子路》雲端計算、大資料、物聯網、區塊鏈和 人工智慧,像君子一般融合,一起體現科技就是生產力。


如果說上一次哥倫布地理大發現,擴充的是人類的物理空間。那麼這一次地理大發現,擴充的就是人們的數字空間。在數學空間,建立新的商業文明,從而發現新的創富模式,為人類社會帶來新的財富空間。雲端計算,大資料、物聯網和區塊鏈,是進入這個數字空間的船,而人工智慧就是那船上的帆,哥倫布之帆!


新一代技術+商業的人工智慧賽博物理作業系統AI-CPS OS作為新一輪產業變革的核心驅動力,將進一步釋放歷次科技革命和產業變革積蓄的巨大能量,並創造新的強大引擎。重構生產、分配、交換、消費等經濟活動各環節,形成從巨集觀到微觀各領域的智慧化新需求,催生新技術、新產品、新產業、新業態、新模式。引發經濟結構重大變革,深刻改變人類生產生活方式和思維模式,實現社會生產力的整體躍升。



產業智慧官  AI-CPS


用“人工智慧賽博物理作業系統新一代技術+商業作業系統“AI-CPS OS”:雲端計算+大資料+物聯網+區塊鏈+人工智慧)在場景中構建狀態感知-實時分析-自主決策-精準執行-學習提升的認知計算和機器智慧;實現產業轉型升級、DT驅動業務、價值創新創造的產業互聯生態鏈


640?wx_fmt=png

640?wx_fmt=png

長按上方二維碼關注微信公眾號: AI-CPS,更多資訊回覆:


新技術“雲端計算”、“大資料”、“物聯網”、“區塊鏈”、“人工智慧新產業:智慧製造”、智慧金融”、“智慧零售”、“智慧駕駛”、智慧城市新模式:“財富空間“工業網際網路”、“資料科學家”、“賽博物理系統CPS”、“供應鏈金融”


官方網站:AI-CPS.NET


本文系“產業智慧官”(公眾號ID:AI-CPS)收集整理,轉載請註明出處!



版權宣告產業智慧官(公眾號ID:AI-CPS推薦的文章,除非確實無法確認,我們都會註明作者和來源。部分文章推送時未能與原作者取得聯絡。若涉及版權問題,煩請原作者聯絡我們,與您共同協商解決。聯絡、投稿郵箱:erp_vip@hotmail.com




相關文章