1993年,CNN之父Yann LeCun用一臺486電腦,搭配第一款32位元浮點運算DSP卡和攝影機(圖右黑色鏡頭),來執行LeNet模型,每秒可提供1,250萬次乘積累加運算,能即時辨識出他手寫在卡片上的數字。隔年,ATM設備大廠NCR公司將這個技術應用在支票識別系統,全盛時期,美國10%至20%的支票的判讀,都用到了這個技術。(翻攝自Convolutional Network Demo from 1993 by Yann LeCun:https://www.youtube.com/watch?v=FwFduRA_L6Q)

過氣30年的老理論,能不能變成顛覆世界的新趨勢?CNN之父Yann LeCun一定會說,能!因為他在1989年發表的全球第一個CNN框架LeNet-5,就是源自1950、1960年代的理論,但是,採取了全新的視野,反而掀起了現代深度學習的新革命。

約1970年晚期,當時在巴黎高等電子工程師學校就讀大二的Yann LeCun,偶然讀到一本書,提到了皮亞傑(Jean Piaget)研究的機器學習模式「感知器」(Perceptron),「這是我第一次接觸到機器學習的概念。」他回憶。

這類機器學習理論起源,可以追溯到1950年代。當時,Frank Rosenblatt運用mcCulloch-Pitts人造神經元(Artificial neuron),仿效人類大腦的生物結構,在1957年創造出感知器神經網路。由於人腦是由神經元連結構成的大型網絡,感知器模型也是立基於這個概念,以人造神經元來建構類神經網絡,透過相對簡單的運算單元,來計算輸入(input)的權重總和,並且通過修改神經元之間的連結來進行機器學習。

Yann LeCun比較,傳統機器學習的典範是建立一個特徵提取器(Feature Extractor)抽取特徵,再建立可訓練的分類器(Trainable Classifier),比如感知器模型,「這是一種單層神經網路的模式。」

後來,機器學習的典範改變了,從單層神經網路,發展到了多層神經網路架構(multi-layer)的深度學習。深度學習的多層神經網路設計中,可以指定每一層神經網路學習不同的特徵,如第一層負責從圖像的單個像素學習線條的走向、第二層結合第一層來學習識別簡單形狀,每提高一層就學習更多特徵。

Yann LeCun表示,因為感知世界的本質,就是由多個細節元件組合而成,比如物體可拆分為數個主要部分,主要部分由次要部分所組成,次要部分又能解構為多個基本物件,基本物件由邊緣組成,邊緣又包含許多像素。因此,如果想要辨識影像中的汽車,可以先偵測是否有圓形物體,推論出可能有輪胎或類似的東西,一層層判斷特徵再做決策,「這就是所謂的深度學習。」

「但,為何多層神經網路的概念早就出現,卻沒有發展?」Yann LeCun自己的答案是,人們選錯了「神經元」來發展神經網路,早期的二元神經元(binary neuron)因為不需用到乘法而容易執行運算,但也阻止人們聯想到運用梯度模式來發展多層神經網路的訓練方法。直到1986年,深度學習之父Geoffrey Hinton等人提出「反向傳播算法」(Backpropagation)來訓練多層神經網路,才讓深度學習的研究重新復甦。

但是,當還是大學生的Yann LeCun對此產生興趣,開始尋找些文獻來閱讀時,機器學習迎來了第一次寒冬。

鑽研多層神經網路,在1989年提出首個CNN框架LeNet-5

「機器學習重新受到關注後,看著那些舊論文,我最感興趣的是,如何訓練多層的神經網路?所以,我開始朝這個面向研究。」Yann LeCun在多倫多大學擔任博士後研究生時,直接拜師Hinton,從事深度神經網路的研究,接著在1988年,進入了貝爾實驗室的自適應系統研究部門,不久後就發表了經過反向傳播訓練的首個CNN框架LeNet-5,不僅是深度學習最基礎的框架之一,也驗證了CNN架構的可行性。

Yann LeCun提出的CNN框架LeNet-5,運用了大腦視覺皮層神經元結構,以及K.Fukushima在1980年代提出的神經網路Neocognitron的概念。LeNet-5在不含輸入與輸出層的前提下,總層數有6層,分別為C1卷積層、S2池化層、C3卷積層、S4池化層、C5卷積層、F6全連接層,再輸出結果。儘管層數不多,但其中的卷積(Convolution)、池化或子採樣(Pooling or Sub Sampling)、全連接層(Fully connection),都是現今CNN模型的基本元素。

當年,Yann LeCun將LeNet-5框架用來建立了一個能辨識手寫文字的技術。這個技術在1994年被NCR公司(ATM設備大廠之一)應用在支票識別系統中,全盛時期,美國10%至20%的支票的判讀,都用到了這個技術。

Yann LeCun屢屢提到當年深度學習如何走出第一次寒冬的關鍵,他認為,實證經驗可以證明新科技的有效性。例如,深度學習的神經元觀念就來自生物學對大腦研究的實證經驗,但是,實證經驗往往發展太慢又太昂貴,「建立理論,可以讓我們修剪經驗的摸索空間,避免遙不可及的目標(例如永動機),有時理論甚至可以幫我們預測現象。」

可是,一度成為全球金融交易的關鍵技術、死灰復燃的深度學習,卻又再次碰壁!到了1990年代末期,深度學習的研究再次沒落。

Yann LeCun認為,造成機器學習進入寒冬有4大因素。首先,是硬體資源難以進行浮點運算,光是訓練一個字符辨識模型就要花費兩周時間;再者,是缺乏訓練資料,除了字符和語音資料之外,沒有其他的大型數據集;第三,則是沒有實用的軟體開發工具,都必須從頭開始建立;最後,則是沒有開放資料、開源框架的概念,導致研究進程緩慢。

甚至,Yann LeCun自己跳下來,開始設計AI專用的加速晶片硬體,從1986年發表的12x12陣列處理晶片,到1992年的ANNA晶片,已經可以加速運算64x64層網路的CNN訓練。不過,深度學習研究的進展依然緩慢,學界也不看好。

堅持深度學習研究,用十年寒冬奠定影像辨識基礎

在其後十年間,Yann LeCun仍不放棄,持續研究CNN的框架,從理論和實證來尋找新的突破點。在1993年到2005年間,Yann LeCun用CNN模型來偵測影像中的多個人臉或行人;而在2000年代中期,也用來開發能偵測障礙物的自駕小車,不僅標註出攝影機畫面的每個像素可否行駛,來訓練模型,也運用立體視覺系統,來標記更大範圍的影像,藉此來規劃長途行進路線,在閃避障礙物的同時,也維持大方向行進路線不變。

約在2009、2010年時,Yann LeCun將CNN模型部署到硬體設備FPGA晶片中,在訓練資料中標註出道路、人行道、建築物、樹木、汽車、行人等所有物體,以每秒20幀的速度進行影像辨識,並在紐約大學中測試,初步實現了自駕車的技術架構。「當時運用的技術,與現今許多自動駕駛系統使用的技術,本質上很相似,都透過量測與障礙物的距離來閃避。」

最終讓深度學習重獲大眾目光的轉折,發生在2012年,Yann LeCun的同門師弟Alex Krizhevsky、Ilya Sutskever在Hinton帶領下,使用Nvidia的GPU,來訓練同為CNN架構的AlexNet影像辨識模型,一舉拿下ImageNet的冠軍,正確率更超過第二名將近10%。因為硬體的進步與技術的成熟,深度學習再次復甦,應用也更趨多元,「比如語音辨識系統,從原先完全不使用神經網絡,在短短幾年內就幾乎都已經採用。」

在這之後,研究者也開始增加CNN框架的層數,來增加辨識準確率。若以ImageNet資料集,來測試運用不同框架所訓練的模型的誤判率,可以發現8層架構AlexNet所訓練的模型,影像辨識的誤判率有16.4%,但用19層架構的VGGNet來訓練,誤判率只剩7.3%,22層的GoogleNet則是6.7%,而層數急遽上升到152層的ResNet,誤判率更是降至3.6%,說明了層數越多,可能達到更高的正確率。

接下來的故事,大家都很清楚了,現在不只百層,結合了雲端運算和各種AI專用晶片,上千層的運算都做得到。舉凡醫療影像分析、自駕車、臉部辨識、語言翻譯、語音助理、遊戲、資安、科學研究等領域的各式AI應用大量出現。

但是,如此威力強大的深度學習,距離具有常識能力的「AI」有多遠?這就是Yann LeCun在ICIP開講要揭露的事。


Advertisement

更多 iThome相關內容