人工智慧在深度學習領域的前世今生

rokia_xmu發表於2017-01-09

http://www.leiphone.com/news/201608/Rlq2Vq5v8peap07S.html


這兩年人工智慧熱鬧非凡,不僅科技巨頭髮力AI取得技術與產品的突破,還有眾多初創企業獲得風險資本的青睞,幾乎每週都可以看到相關領域初創公司獲得投資的報導,而最近的一次春雷毫無疑問是Google旗下Deepmind開發的人工智慧AlphaGo與南韓李世石的圍棋之戰,AiphaGo大比分的獲勝讓人們對AI刮目相看的同時也引發了對AI將如何改變我們生活的思考。其實,人工智慧從上世紀40年代誕生至今,經歷了一次又一次的繁榮與低谷,首先我們來回顧下過去半個世紀里人工智慧的各個發展歷程。

|人工智慧發展的七大篇章

人工智慧的起源人工智慧真正誕生於20世紀的40 - 50年代,這段時間裡數學類、工程類、計算機等領域的科學家探討著人工大腦的可能性,試圖去定義什麼是機器的智慧。在這個背景下,1950年Alan Turing發表了題為“機器能思考嗎”的論文,成為劃時代之作,提出了著名的圖靈測試去定義何為機器具有智慧,他說只要有30%的人類測試者在5分鐘內無法分辨出被測試物件,就可以認為機器通過了圖靈測試。

人工智慧在深度學習領域的前世今生                                      

圖1:圖靈測試;Alan Turing本人

人工智慧的第一次黃金時期現在公認的人工智慧起源是1956年的達特矛斯會議,在會議上電腦科學家John McCarthy說服了參會者接受“人工智慧(Artificial Intelligence)”。達特矛斯會議之後的十幾年是人工智慧的第一次黃金時代,大批研究者撲向這一新領域,計算機被應用於代數應用題、幾何定理證明,一些頂尖高校建立的人工智慧專案獲得了ARPA等機構的大筆經費,甚至有研究者認為機器很快就能替代人類做到一切工作。

人工智慧的第一次低谷到了70年代,由於計算機效能的瓶頸、計算複雜性的增長以及資料量的不足,很多專案的承諾無法兌現,比如現在常見的計算機視覺根本找不到足夠的資料庫去支撐演算法去訓練,智慧也就無從談起。後來學界將人工智慧分為兩種:難以實現的強人工智慧和可以嘗試的弱人工智慧。強人工智慧是可以認為就是人,可執行“通用任務”;弱人工智慧則處理單一問題,我們迄今仍處於弱人工智慧時代,而很多專案的停滯也影響了資助資金的走向,AI參與了長達數年之久的低谷。

專家系統的出現:1970年代之後,學術界逐漸接受新的思路:人工智慧不光要研究解法,還得引入知識。於是,專家系統誕生了,它利用數字化的知識去推理,模仿某一領域的專家去解決問題,“知識處理”隨之成為了主流人工智慧的研究重點。在1977年世界人工智慧大會提出的“知識工程”的啟發下,日本的第五代計算機計劃、英國的阿爾維計劃、歐洲的尤里卡計劃和美國的星計劃相機出臺,帶來專家系統的高速發展,湧現了卡內基梅隆的XCON系統和Symbolics、IntelliCorp等新公司。

人工智慧的第二次經費危機:20世紀90年代之前的大部分人工智慧專案都是靠政府機構的資助資金在研究室裡支撐,經費的走向直接影響著人工智慧的發展。80年代中期,蘋果和IBM的桌上型電腦效能已經超過了運用專家系統的通用型計算機,專家系統的風光隨之褪去,人工智慧研究再次遭遇經費危機。

IBM的深藍和Watson:專家系統之後,機器學習成為了人工智慧的焦點,其目的是讓機器具備自動學習的能力,通過演算法使得機器從大量歷史資料中學習規律並對新的樣本作出判斷識別或預測。在這一階段,IBM無疑是AI領域的領袖,1996年深藍(基於窮舉搜尋樹)戰勝了國際象棋世界冠軍卡斯帕羅夫,2011年Watson(基於規則)在電視問答節目中戰勝人類選手,特別是後者涉及到放到現在仍然是難題的自然語言理解,成為機器理解人類語言的里程碑的一步。

深度學習的強勢崛起:深度學習是機器學習的第二次浪潮,2013年4月,《麻省理工學院技術評論》雜誌將深度學習列為2013年十大突破性技術之首。其實,深度學習並不是新生物,它是傳統神經網路(Neural Network)的發展,兩者之間有相同的地方,採用了相似的分層結構,而不一樣的地方在於深度學習採用了不同的訓練機制,具備強大的表達能力。傳統神經網路曾經是機器學習領域很火的方向,後來由於引數難於調整和訓練速度慢等問題淡出了人們的視野。

但是有一位叫Geoffrey Hinton的多倫多大學老教授非常執著的堅持神經網路的研究,並和Yoshua Bengio、Yann LeCun(發明了現在被運用最廣泛的深度學習模型-卷積神經網CNN)一起提出了可行的deep learning方案。標誌性的事情是,2012年Hinton的學生在圖片分類競賽ImageNet上大大降低了錯誤率(ImageNet Classification with Deep Convolutional Neural Networks),打敗了工業界的巨頭Google,頓時讓學術界和工業界譁然,這不僅學術意義重大,更是吸引了工業界大規模的對深度學習的投入:2012年Google Brain用16000個CPU核的計算平臺訓練10億神經元的深度網路,無外界干涉下自動識別了“Cat”;Hinton的DNN初創公司被Google收購,Hinton個人也加入了Google;而另一位大牛LeCun加盟Facebook,出任AI實驗室主任;百度成立深度學習研究所,由曾經領銜Google Brain的吳恩達全面負責。不僅科技巨頭們加大對AI的投入,一大批初創公司乘著深度學習的風潮湧現,使得人工智慧領域熱鬧非凡。

|人工智慧之主要引擎:深度學習

機器學習發展分為兩個階段,起源於上世紀20年代的淺層學習(Shallow Learning)和最近幾年才火起來的深度學習(Deep Learning)。淺層學習的演算法中,最先被髮明的是神經網路的反向傳播演算法(back propagation),為什麼稱之為淺層呢,主要是因為當時的訓練模型是隻含有一層隱含層(中間層)的淺層模型,淺層模型有個很大的弱點就是有限引數和計算單元,特徵表達能力弱。

上世紀90年代,學術界提出一系列的淺層機器學習模型,包括風行一時的支撐向量機Support Vector Machine,Boosting等,這些模型相比神經網路在效率和準確率上都有一定的提升,直到2010年前很多高校研究室裡都是用時髦的SVM等演算法,包括筆者本人(當時作為一名機器學習專業的小碩,研究的是Twitter文字的自動分類,用的就是SVM),主要是因為這類淺層模型演算法理論分析簡單,訓練方法也相對容易掌握,這個時期神經網路反而相對較為沉寂,頂級學術會議裡很難看到基於神經網路演算法實現的研究。

但其實後來人們發現,即使訓練再多的資料和調整引數,識別的精度似乎到了瓶頸就是上不去,而且很多時候還需要人工的標識訓練資料,耗費大量人力,機器學習中的5大步驟有特徵感知,影象預處理,特徵提取,特徵篩選,預測與識別,其中前4項是不得不親自設計的(筆者經過機器學習的地獄般的折磨終於決定轉行)。在此期間,我們執著的Hinton老教授一直研究著多隱層神經網路的演算法,多隱層其實就是淺層神經網路的深度版本,試圖去用更多的神經元來表達特徵,但為什麼實現起來這麼苦難的呢,原因有三點: 

1. BP演算法中誤差的反向傳播隨著隱層的增加而衰減;優化問題,很多時候只能達到區域性最優解;

2. 模型引數增加的時候,對訓練資料的量有很高要求,特別是不能提供龐大的標識資料,只會導致過度複雜;

3. 多隱層結構的引數多,訓練資料的規模大,需要消耗很多計算資源。

 人工智慧在深度學習領域的前世今生

圖2:傳統神經網路與多隱層神經網路

2006年,Hinton和他的學生R.R. Salakhutdinov在《Science》上發表了一篇文章(Reducing the dimensionality of data with neural networks),成功訓練出多層神經網路,改變了整個機器學習的格局,雖然只有3頁紙但現在看來字字千金。這篇文章有兩個主要觀點:1)多隱層神經網路有更厲害的學習能力,可以表達更多特徵來描述物件;2)訓練深度神經網路時,可通過降維(pre-training)來實現,老教授設計出來的Autoencoder網路能夠快速找到好的全域性最優點,採用無監督的方法先分開對每層網路進行訓練,然後再來微調。

人工智慧在深度學習領域的前世今生

圖3:影象的與訓練,編碼→解碼→微調

從圖3我們可以看到,深度網路是逐層逐層進行預訓練,得到每一層的輸出;同時引入編碼器和解碼器,通過原始輸入與編碼→再解碼之後的誤差來訓練,這兩步都是無監督訓練過程;最後引入有標識樣本,通過有監督訓練來進行微調。逐層訓練的好處是讓模型處於一個接近全域性最優的位置去獲得更好的訓練效果。

以上就是Hinton在2006年提出的著名的深度學習框架,而我們實際運用深度學習網路的時候,不可避免的會碰到卷積神經網路(Convolutional Neural Networks, CNN)。CNN的原理是模仿人類神經元的興奮構造:大腦中的一些個體神經細胞只有在特定方向的邊緣存在時才能做出反應,現在流行的特徵提取方法就是CNN。打個比方,當我們把臉非常靠近一張人臉圖片觀察的時候(假設可以非常非常的近),這時候只有一部分的神經元是被啟用的,我們也只能看到人臉上的畫素級別點,當我們把距離一點點拉開,其他的部分的神經元將會被啟用,我們也就可以觀察到人臉的線條→圖案→區域性→人臉,整個就是一步步獲得高層特徵的過程。

人工智慧在深度學習領域的前世今生

圖4:基本完整的深度學習流程

深度學習的“深”(有很多隱層),好處是顯而易見的 – 特徵表達能力強,有能力表示大量的資料;pretraining是無監督訓練,節省大量人力標識工作;相比傳統的神經網路,通過逐層逐層訓練的方法降低了訓練的難度,比如訊號衰減的問題。深度學習在很多學術領域,比淺層學習演算法往往有20-30%成績的提高,驅使研究者發現新大陸一般湧向深度學習這一領域,弄得現在不說用了深度學習都不好意思發論文了。

|深度學習的重要發展領域

深度學習首先在影象、聲音和語義識別取得了長足的進步,特別是在影象和聲音領域相比傳統的演算法大大提升了識別率,其實也很容易理解,深度學習是仿人來大腦神經感知外部世界的演算法,而最直接的外部自然訊號莫過於影象、聲音和文字(非語義)。

影象識別:影象是深度學習最早嘗試的領域,大牛Yann LeCun早在1989年就開始了卷積神經網路的研究,取得了在一些小規模(手寫字)的影象識別的成果,但在畫素豐富的圖片上遲遲沒有突破,直到2012年Hinton和他學生在ImageNet上的突破,使識別精度提高了一大步。2014年,香港中文大學教授湯曉鷗領導的計算機視覺研究組開發了名為DeepID的深度學習模型, 在LFW (Labeled Faces in the Wild,人臉識別使用非常廣泛的測試基準)資料庫上獲得了99.15%的識別率,人用肉眼在LFW上的識別率為97.52%,深度學習在學術研究層面上已經超過了人用肉眼的識別。

當然在處理真實場景的人臉識別時還是差強人意,例如人臉不清晰,光照條件,區域性遮擋等因素都會影響識別率,所以在實際操作中機器學習與人工確認相結合,更加妥當。國內做人臉識別的公司眾多,其中Face++、中科奧森、Sensetime、Linkface、飛搜科技都是走在前面的,在真實環境運用或者在垂直細分領域中有著深厚的資料積累。在基於面部特徵識別技術的情緒識別領域,閱面科技與Facethink(Facethink為天使灣早期投資專案)是國內少數進入該領域的初創公司。

語音識別:語音識別長期以來都是使用混合高斯模型來建模,在很長時間內都是佔據壟斷地位的建模方式,但儘管其降低了語音識別的錯誤率,但面向商業級別的應用仍然困難,也就是在實際由噪音的環境下達不到可用的級別。直到深度學習的出現,使得識別錯誤率在以往最好的基礎上相對下降30%以上,達到商業可用的水平。微軟的俞棟博士和鄧力博士是這一突破的最早的實踐者,他們與Hinton一起最早將深度學習引入語音識別並取得成功。由於語音識別的演算法成熟,科大訊飛、雲知聲、思必馳在通用識別上識別率都相差不大,在推廣上科大訊飛是先行者,從軍用到民用,包括移動網際網路、車聯網、智慧家居都有廣泛涉及。

自然語言處理(NLP):即使現在深度學習在NLP領域並沒有取得像影象識別或者語音識別領域的成績,基於統計的模型仍然是NLP的主流,先通過語義分析提取關鍵詞、關鍵詞匹配、演算法判定句子功能(計算距離這個句子最近的標識好的句子),最後再從提前準備的資料庫裡提供使用者輸出結果。顯然,這明顯談不上智慧,只能算一種搜尋功能的實現,而缺乏真正的語言能力。蘋果的Siri、微軟的小冰、圖靈機器人、百度度祕等巨頭都在發力智慧聊天機器人領域,而應用場景在國內主要還是客服(即使客戶很討厭機器客戶,都希望能第一時間直接聯絡到人工服務),我認為市場上暫時還沒出現成熟度非常高的產品。小冰眾多競爭對手中還是蠻有意思的,她的設想就是“你隨便和我聊天吧”,而其他競爭對手則專注於某些細分領域卻面臨著在細分領域仍是需要通用的聊天系統,個人認為小冰經過幾年的資料積累和演算法改善是具備一定優勢脫穎而出。

為什麼深度學習在NLP領域進展緩慢對語音和影象來說,其構成元素(輪廓、線條、語音幀)不用經過預處理都能清晰的反映出實體或者音素,可以簡單的運用到神經網路裡進行識別工作。而語義識別大不相同:首先一段文字一句話是經過大腦預處理的,並非自然訊號;其次,詞語之間的相似並不代表其意思相近,而且簡單的片語組合起來之後意思也會有歧義(特別是中文,比如說“萬萬沒想到”,指的是一個叫萬萬的人沒想到呢,還是表示出乎意料的沒想到呢,還是一部電影的名字呢);對話需要上下文的語境的理解,需要機器有推理能力;人類的語言表達方式靈活,而很多交流是需要知識為依託的。很有趣,仿人類大腦識別機制建立的深度學習,對經過我們人類大腦處理的文字訊號,反而效果差強人意。根本上來說,現在的演算法還是弱人工智慧,可以去幫人類快速的自動執行(識別),但還是不能理解這件事情本身。

|深度學習的挑戰和發展方向的探討

受益於計算能力的提升和大資料的出現,深度學習在計算機視覺和語音識別領域取得了顯著的成果,不過我們也看到了一些深度學習的侷限性,亟待解決: 

1. 深度學習在學術領域取得了不錯的成果,但在商業上對企業活動的幫助還是有限的,因為深度學習是一個對映的過程,從輸入A對映到輸出B,而在企業活動中我如果已經擁有了這樣的A→B的配對,為什麼還需要機器學習來預測呢?讓機器自己在資料中尋找這種配對關係或者進行預測,目前還是有很大難度。

2. 缺乏理論基礎,這是困擾著研究者的問題。比如說,AlphaGo這盤棋贏了,你是很難弄懂它怎麼贏的,它的策略是怎樣的。在這層意思上深度學習是一個黑箱子,在實際訓練網路的過程中它也是個黑箱子:神經網路需要多少個隱層來訓練,到底需要多少有效的引數等,都沒有很好的理論解釋。我相信很多研究者在建立多層神經網路的時候,還是花了很多時間在枯燥的引數除錯上。

3. 深度學習需要大量的訓練樣本。由於深度學習的多層網路結構,其具備很強的特徵表達能力,模型的引數也會增加,如果訓練樣本過小是很難實現的,需要海量的標記的資料,避免產生過擬合現象(overfitting)不能很好的表示整個資料。

4. 在上述關於深度學習在NLP應用的篇章也提到,目前的模型還是缺乏理解及推理能力。

因此,深度學習接下來的發展方向也將會涉及到以上問題的解決,Hinton、LeCun和Bengio三位AI領袖曾在合著的一篇論文(Deep Learning)的最後提到:

(https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf)

1. 無監督學習。雖然監督學習在深度學習中表現不俗,壓倒了無監督學習在預訓練的效果,但人類和動物的學習都是無監督學習的,我們感知世界都是通過我們自己的觀察,因此若要更加接近人類大腦的學習模式,無監督學習需要得到更好的發展。

2. 強化學習。增強學習指的是從外部環境到行為對映的學習,通過基於回報函式的試錯來發現最優行為。由於在實際運用中資料量是遞增的,在新資料中能否學習到有效的資料並做修正顯得非常重要,深度+強化學習可以提供獎勵的反饋機制讓機器自主的學習(典型的案例是AlphaGo)。 

3. 理解自然語言。老教授們說:趕緊讓機器讀懂語言吧! 

4. 遷移學習。把大資料訓練好的模型遷移運用到有效資料量小的任務上,也就是把學到的知識有效的解決不同但相關領域的問題,這事情顯得很性感,但問題就在遷移過程已訓練好的模型是存在自我偏差的,所以需要高效的演算法去消除掉這些偏差。根本上來說,就是讓機器像人類一樣具備快速學習新知識能力。

自深度學習被Hinton在《Science》發表以來,短短的不到10年時間裡,帶來了在視覺、語音等領域革命性的進步,引爆了這次人工智慧的熱潮。雖然目前仍然存在很多差強人意的地方,距離強人工智慧還是有很大距離,它是目前最接近人類大腦運作原理的演算法,我相信在將來,隨著演算法的完善以及資料的積累,甚至硬體層面仿人類大腦神經元材料的出現,深度學習將會更進一步的讓機器智慧化。

最後,我們以Hinton老先生的一段話來結束這篇文章:“It has been obvious since the 1980s that backpropagation through deep autoencoders would be very effective for nonlinear dimensionality reduction, provided that computers were fast enough, data sets were big enough, and the initial weights were close enough to a good solution. All three conditions are now satisfied.”(自從上世紀80年代我們就知道,如果有計算機足夠快、資料足夠大、初始權重值足夠完美,基於深度自動編碼器的反向傳播演算法是非常有效的。現在,這三者都具備了。)

雷鋒網(公眾號:雷鋒網)注:文章由作者授權首發,如需轉載請聯絡原作者。蘭徹來自於天使灣創投,專注於人工智慧與機器人領域投資,曾在日本學習工作十年,深研AI機器人業務,愛好黑科技,歡迎各類AI和機器人領域創業者勾搭,微信hongguangko-sir。


相關文章