點擊上方“小白學視覺”,選擇加"星標"或“置頂”
重磅干貨,第一時間送達
去年《二十不惑》和《三十而已》兩部劇比較火熱,但是作為AI領域的IT同胞們,大家應該都知曉深度學習的“二十不惑”和“三十而已”的故事嗎?今天小編帶大家回顧下深度學習的暗黑史和輝煌史,已經迎來了深度學習的“四十可期”,乘風破浪成為重要領域之一的關注!
深度學習的前身應該歸屬于“機器學習”,機器學習是人工智能領域的一個重要學科。就好比當其即將成年之時,其在算法、理論和應用等方面都獲得巨大成功。二十不惑時(2006年以來),機器學習領域中一個叫“ 深度學習” 的課題開始受到學術界廣泛關注,到今天已經成為互聯網大數據和人工智能的一個熱潮。
深度學習通過建立類似人腦的分層模型結構, 對輸入數據逐級提取從底層到高層的特征,從而能很好地建立從底層信號到高層語義的映射關系。近年來,谷歌、微軟、IBM、百度等擁有大數據的高科技公司相繼投入大量資源進行深度學習技術研發,在語音、圖像、自然語言、在線廣告等領域取得顯著進展。已經三十多的深度學習,一點也不怠慢,在很多努力奮斗研究院的幫助下,繼續發展為人來造福。從對實際應用的貢獻來說,深度學習可能是機器學習領域最近這十年來最成功的研究方向。
接下來小編將對深度學習發展的過去和現在做一個全景式的介紹,并討論深度學習所面臨的挑戰, 怎么乘風破浪成為現在的科技領頭技術領域,以及將來的可能方向。
一、快速背景簡介
2012年6月,《紐約時報》披露了谷歌的項目,吸引了公眾的廣泛關注。這個項目是由著名的斯坦福大學的機器學習教授NG和在大規模計算機系統方面的世界頂尖專家Dean共同主導,用16000個CPU Core的并行計算平臺訓練一種稱為“深度神經網絡”(DNN)的機器學習模型,在語音識別和圖像識別等領域獲得了巨大的成功。2012年11月,微軟在中國天津的一次活動上公開演示了一個全自動的同聲傳譯系統,講演者用英文演講,后臺的計算機一氣呵成自動完成語音識別、英中機器翻譯和中文語音合成,效果非常流暢.據報道,后面支撐的關鍵技術也是DNN,或者深度學習(deep ,DL)。2013年的1月,在中國最大的互聯網搜索引擎公司百度的年會上,創始人兼CEO李彥宏高調宣布要成立百度研究院,其中第一個重點方向的就是深度學習,并為此而成立 of Deep (IDL)。這是百度成立10多年以來第一次成立研究院。2013年4月,《麻省理工學院技術評論》雜志將深度學習列為2013年十大突破性技術之首。
為什么深度學習受到學術屆和工業界如此廣泛的重視?深度學習技術研發面臨什么樣的科學和工程問題?深度學習帶來的科技進步將怎樣改變人們的生活?來回顧機器學習在過去20多年的發展。
二、機器學習的兩次浪潮:從淺層學習到深度學習
在解釋深度學習之前,我們需要了解什么是機器學習。機器學習是人工智能的一個分支,而在很多時候,幾乎成為人工智能的代名詞。簡單來說,機器學習就是通過算法,使得機器能從大量歷史數據中學習規律,從而對新的樣本做智能識別或對未來做預測。從20世紀80年代末期以來,機器學習的發展大致經歷了兩次浪潮:淺層學習和深度學習。需要指出是,機器學習歷史階段的劃分是一個仁者見仁,智者見智的事情,從不同的維度來看會得到不同的結論。這里我們是從機器學習模型的層次結構來看的。
第一次浪潮(二十不惑):淺層學習
20世紀80年代末期,用于人工神經網絡的反向傳播算法(BP算法)的發明,給機器學習帶來了希望,掀起了基于統計模型的機器學習熱潮。這個熱潮一直持續到今天。人們發現,利用BP算法可以讓一個人工神經網絡模型從大量訓練樣本中學習出統計規律,從而對未知事件做預測。這種基于統計的機器學習方法比起過去基于人工規則的系統,在很多方面顯示出優越性。這個時候的人工神經網絡,雖然也被稱作多層感知機,由于多層網絡訓練的困難,實際使用的多數是只含有一層隱層節點的淺層模型。
20世紀90年代,各種各樣的淺層機器學習模型相繼被提出,比如支撐向量機(SVM),,最大熵方法(比如回歸,LR)等。這些模型的結構基本上可以看成帶有一層隱層節點(如SVM,),或沒有隱層節點(如LR)。這些模型在無論是理論分析還是應用都獲得了巨大的成功。相比較之下,由于理論分析的難度,而且訓練方法需要很多經驗和技巧,這個時期多層人工神經網絡反而相對較為沉寂。2000年以來互聯網的高速發展,對大數據的智能化分析和預測提出了巨大需求,淺層學習模型在互聯網應用上獲得了巨大的成功。最成功的應用包括搜索廣告系統(比如谷歌的、百度的鳳巢系統)的廣告點擊率CTR預估、網頁搜索排序(比如雅虎和微軟的搜索引擎)、垃圾郵件過濾系統、基于內容的推薦系統,等等。
第二次浪潮(三十而已):深度學習
2006年,加拿大多倫多大學教授,機器學習領域的泰斗和他的學生在頂尖學術刊物《科學》上發表了一篇文章,開啟了深度學習在學術界和工業界的浪潮。這篇文章有兩個主要的訊息:
很多隱層的人工神經網絡具有優異的特征學習能力,學習得到的特征對數據有更本質的刻劃,從而有利于可視化或分類;
深度神經網絡在訓練上的難度,可以通過"逐層初始化”來有效克服,在這篇文章中,逐層初始化是通過無監督學習實現的。
自2006年以來,深度學習在學術界持續升溫。斯坦福大學、紐約大學、加拿大蒙特利爾大學等成為研究深度學習的重鎮。2010年,美國國防部DARPA計劃首次資助深度學習項目,參與方有斯坦福大學、紐約大學和NEC美國研究院。支持深度學習的一個重要依據,就是腦神經系統的確具有豐富的層次結構。一個最著名的例子就是Hubel-模型,由于揭示了視覺神經的機理而曾獲得諾貝爾醫學與生理學獎。除了仿生學的角度,目前深度學習的理論研究還基本處于起步階段,但在應用領域已經顯現巨大能量。2011年以來,微軟研究院和谷歌的語音識別研究人員先后采用DNN技術降低語音識別錯誤率20%~30%,是語音識別領域10多年來最大的突破性進展。2012年DNN技術在圖像識別領域取得驚人的效果,在評測上將錯誤率從26%降低到15%。在這一年,DNN還被應用于制藥公司的Druge 預測問題,并獲得世界最好成績,這一重要成果被《紐約時報》報道。正如文章開頭所描述的,今天谷歌、微軟、百度等知名的擁有大數據的高科技公司爭相投入資源,占領深度學習的技術制高點,正是因為他們都看到了大數據時代,更加復雜且更加強大的深度模型的能深刻揭示海量數據里所承載的負責而豐富的信息,并對未來或未知事件做更精準的預測。
三、大數據與深度學習在工業界一直有一個很流行的觀點:在大數據條件下,簡單的機器學習模型會比復雜模型更加有效。比如說,在很多的大數據應用中,最簡單的線性模型得到大量使用。而最近深度學習的驚人進展促使我們也許到了要重新思考這個觀點的時候。簡而言之,在大數據情況下,也許只有比較復雜的模型,或者說表達能力強的模型,才能夠充分發掘海量數據中蘊藏的豐富信息。現在我們到了需要重新思考“大數據+簡單模型”的時候。運用更強大的深度模型,也許我們能從大數據中發掘出更多的有價值的信息和知識。
為了理解為什么大數據需要深度模型,先舉一個例子。語音識別已經是一個大數據的機器學習問題,在其聲學建模部分,通常面臨的是十億到千億級別的訓練樣本。在谷歌的一個語音識別實驗中,發現訓練后的DNN對訓練樣本和測試樣本的預測誤差基本相當。這是非常違反常識的,因為通常模型在訓練樣本上的預測誤差會顯著小于測試樣本。只有一個解釋,就是由于大數據里含有豐富的信息維度,即便是DNN這樣的高容量復雜模型也是處于欠擬合的狀態,更不必說傳統的GMM聲學模型了。所以在這個例子里我們看出,大數據需要深度學習。
淺層模型有一個重要特點,就是假設靠人工經驗來抽取樣本的特征,而強調模型主要是負責分類或預測。在模型的運用不出差錯的前提下(比如,假設互聯網公司聘請的是機器學習的專家),特征的好壞就成為整個系統性能的瓶頸。因此,通常一個開發團隊中更多的人力是投入到發掘更好的特征上去的。發現一個好的特征,要求開發人員對待解決的問題要有很深入的理解。而達到這個程度,往往需要反復的摸索,甚至是數年磨一劍。因此,人工設計樣本特征,不是一個可擴展的途徑。
深度學習的實質,是通過構建具有很多隱層的機器學習模型和海量的訓練數據,來學習更有用的特征,從而最終提升分類或預測的準確性。所以,“深度模型”是手段,“特征學習”是目的。區別于傳統的淺層學習,深度學習的不同在于:1)強調了模型結構的深度,通常有5層、6層、甚至10多層的隱層節點;2)明確突出了特征學習的重要性,也就是說,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而分類或預測更加容易。
與人工規則構造特征的方法相比,利用大數據來學習特征,更能夠刻劃數據的豐富內在信息。所以,在未來的幾年里,我們將看到越來越多的例子,深度模型應用于大數據,而不是淺層的線性模型。
四、深度學習的應用
語音識別
語音識別系統長期以來,描述每個建模單元的統計概率模型時候,大都是采用的混合高斯模型(GMM)。這種模型由于估計簡單,適合海量數據訓練,同時有成熟的區分度訓練技術支持,長期以來,一直在語音識別應用中占有壟斷性地位。但是這種混合高斯模型本質上是一種淺層網絡建模,不能夠充分描述特征的狀態空間分布。另外,GMM建模的特征維數一般是幾十維,不能充分描述特征之間的相關性。最后GMM建模本質上是一種似然概率建模,雖然區分度訓練能夠模擬一些模式類之間的區分性,但是能力有限。
微軟研究院的語音識別專家Li和Dong從2009年開始和深度學習專家合作。2011年微軟基于深度神經網絡的語音識別研究取得成果,徹底底改變了語音識別原有的技術框架。采用深度神經網絡后,可以充分描述特征之間的相關性,可以把連續多幀的語音特征并在一起,構成一個高維特征。最終的深度神經網絡可以采用高維特征訓練來模擬的。由于深度神經網絡采用模擬人腦的多層結果,可以逐級地進行信息特征抽取,最終形成適合模式分類的較理想特征。這種多層結構和人腦處理語音圖像信息的時候,是有很大的相似性的。深度神經網絡的建模技術,在實際線上服務時,能夠無縫地和傳統的語音識別技術相結合,在不引起任何系統額外耗費情況下大幅度地提升了語音識別系統的識別率。其在線的使用方法具體如下:在實際解碼過程中,聲學模型仍然是采用傳統的HMM模型,語音模型仍然是采用傳統的統計語言模型,解碼器仍然是采用傳統的動態WFST解碼器。但是在聲學模型的輸出分布計算時,完全用神經網絡的輸出后驗概率除以一個先驗概率來代替傳統HMM模型中的GMM的輸出似然概率。百度實踐中發現,采用DNN進行聲音建模的語音識別系統的相比于傳統的GMM語音識別系統而言,相對誤識別率能降低25%。最終在2012年11月的時候,上線了第一款基于DNN的語音搜索系統,成為最早采用DNN技術進行商業語音服務的公司之一。
國際上谷歌也采用了深度神經網絡進行聲音建模,和百度一起是最早的突破深度神經網絡工業化應用的企業之一。但是谷歌產品中采用的深度神經網絡有4~5層,而百度采用的深度神經網絡多達9層。這種結構差異的核心其實是百度更好的解決了深度神經網絡在線計算的技術難題,從而百度線上產品可以采用更復雜的網絡模型。這將對于未來拓展海量語料的DNN模型訓練有更大的優勢。
圖像識別
圖像是深度學習最早嘗試的應用領域。早在1989年,LeCun(現紐約大學教授)和他的同事們就發表了卷積神經網絡(CNN)的工作。CNN是一種帶有卷積結構的深度神經網絡,通常至少有2個非線性可訓練的卷積層、2個非線性的固定卷積層(又叫 layer)和1個全連接層,一共至少5個隱含層。CNN的結構受到著名的Hubel-生物視覺模型的啟發,尤其是模擬視覺皮層V1和V2層中 cell和 cell的行為。在很長時間里,CNN雖然在小規模的問題上,比如說手寫數字,取得當時世界最好結果,但一直沒有取得巨大成功。這主要原因是CNN在大規模圖像上效果不好,比如像素很多的自然圖片內容理解,所以沒有得到計算機視覺領域的足夠重視。這個情況一直持續到2012年10月,和他的兩個學生在著名的問題上用更深的CNN取得世界最好結果,使得圖像識別大踏步前進。在的模型里,輸入就是圖像的像素,沒有用到任何的人工特征。
這個驚人的結果為什么在之前沒有發生?原因當然包括算法的提升,比如等防止過擬合技術,但最重要的是GPU帶來的計算能力提升和更多的訓練數據。百度在2012年底將深度學習技術成功應用于自然圖像OCR識別和人臉識別等問題,并推出相應的桌面和移動搜索產品,在2013年,深度學習模型被成功應用于一般圖片的識別和理解。從百度的經驗來看,深度學習應用于圖像識別不但大大提升了準確性,而且避免了人工特征抽取的時間消耗,從而大大提高了在線計算效率。可以很有把握地說,從現在開始,深度學習將取代人工特征+機器學習的方法而逐漸成為主流圖像識別方法。
除了語音和圖像,深度學習的另一個應用領域問題自然語言處理(NLP)。經過幾十年的發展,基于統計的模型已經成為NLP的主流,但是作為統計方法之一的人工神經網絡在NLP領域幾乎沒有受到重視。本文作者之一徐偉曾最早應用神經網絡于語言模型。加拿大蒙特利爾大學教授等于2003年提出用的方法將詞映射到一個矢量表示空間,然后用非線性神經網絡來表示N-Gram模型。世界上最早的深度學習用于NLP的研究工作誕生于NEC Labs ,其研究員和從2008年開始采用和多層一維卷積的結構,用于POS ,,Named , Role 等4個典型NLP問題。值得注意的是,他們將同一個模型用于不同任務,都能取得與state-of-the-art相當的準確率。最近以來,斯坦福大學教授等人在深度學習用于NLP的工作也值得關注。
總的來說,深度學習在NLP上取得的進展沒有在語音圖像上那么令人影響深刻。一個很有意思的悖論是:相比于聲音和圖像,語言是唯一的非自然信號,是完全由人類大腦產生和處理的符號系統,但是模仿人腦結構的人工神經網絡確似乎在處理自然語言上沒有顯現明顯優勢?我們相信深度學習在NLP方面有很大的探索空間。從2006年圖像深度學習成為學術界熱門課題到2012年10月在上的重大突破,經歷了6年時間。我們需要有足夠耐心。
搜索廣告CTR預估
搜索廣告是搜索引擎的主要變現方式,而按點擊付費(cost per click,CPC)又是其中被最廣泛應用的計費模式。在CPC模式下,預估的CTR(pCTR)越準確,點擊率就會越高,收益就越大。通常,搜索廣告的pCTR是通過機器學習模型預估得到。提高pCTR的準確性,是提升搜索公司、廣告主、搜索用戶三方利益的最佳途徑。
傳統上,谷歌、百度等搜索引擎公司以LR作為預估模型。而從2012年開始,百度開始意識到模型的結構對廣告CTR預估的重要性:使用扁平結構的LR嚴重限制了模型學習與抽象特征的能力。為了突破這樣的限制,百度嘗試將DNN作用于搜索廣告,而這其中最大的挑戰在于當前的計算能力還無法接受1011級別的原始廣告特征作為輸入。作為解決,在百度的DNN系統里,特征數從1011數量級被降到了103,從而能被DNN正常的學習。這套深度學習系統已于2013年5月開始服務于百度搜索廣告系統,每天為數億網民使用。
DNN在搜索廣告系統中的應用還遠遠沒到成熟,其中DNN與遷移學習的結合將可能是一個令人振奮的方向。使用DNN,未來的搜索廣告將可能借助網頁搜索的結果優化特征的學習與提取;亦可能通過DNN將不同的產品線聯系起來,使得不同的變現產品不管數據多少,都能互相優化。我們認為未來的DNN一定會在搜索廣告中起到更重要的作用。
深度學習研發面臨的重大問題理論問題主要體現在兩個方面,一個是統計學習方面的,另一個是計算方面的。我們已經知道,深度模型相比較于淺層模型有更好的對非線性函數的表示能力。具體來說,對于任意一個非線性函數,根據神經網絡的 ,我們一定能找到一個淺層網絡和一個深度網絡來足夠好的表示。但是某些類函數,深度網絡只需要少得多的參數就可以表示。但是,可表示性不代表可學習性。我們需要了解深度學習的樣本復雜度,也就是我們需要多少訓練樣本才能學習到足夠好的深度模型。在另一方面來說,我們需要多少的計算資源才能通過訓練得到更好的模型,理想的計算優化方法是什么?由于深度模型都是非凸函數,這方面的理論研究極其困難。
在推進深度學習的學習理論和計算理論的同時,我們是否可以提出新的分層模型,使其不但具有傳統深度模型所具有的強大表示能力,而且具有其他的好處,比如更容易做理論分析。
另外,針對具體應用問題,我們如何設計一個最適合的深度模型來解決問題?我們已經看到,無論在圖像深度模型,還是語言深度模型,似乎都存在深度和卷積等共同的信息處理結構。甚至對于語音聲學模型,研究人員也在探索卷積深度網絡。那么一個更有意思的問題是,是否存在可能建立一個通用的深度模型或深度模型的建模語言,作為統一的框架來處理語音、圖像和語言?另外,對于怎么用深度模型來表示象語義這樣的結構化的信息還需要更多的研究。從人類進化的角度來看,語言的能力是遠遠滯后于視覺和聽覺的能力而發展的。而除了人類以外,還有很多動物具有很好的識別物體和聲音的能力。因此從這個角度來說,對于神經網絡這樣的結構而言,語言相較于視覺和聽覺是更為困難的一個任務。而成功的解決這個難題對于實現人工智能是不可缺少的一步。
需要指出的是,對于互聯網公司而言,如何在工程上利用大規模的并行計算平臺來實現海量數據訓練,是各個公司從事深度學習技術研發首先要解決的問題。傳統的大數據平臺如,由于數據處理的太高,顯然不適合需要頻繁迭代的深度學習。現有成熟的DNN訓練技術大都是采用隨機梯度法(SGD)方法訓練的。這種方法本身不可能在多個計算機之間并行。即使是采用GPU進行傳統的DNN模型進行訓練,其訓練時間也是非常漫長的。一般訓練幾千小時的聲學模型所需要幾個月的時間。而隨著互聯網服務的深入,海量數據訓練越來越重要,DNN這種緩慢的訓練速度必然不能滿足互聯網服務應用的需要。谷歌搭建的,是一個采用普通服務器的深度學習并行計算平臺,采用異步算法,由很多的計算單元獨立的更新同一個參數服務器的模型參數,實現了隨機梯度下降算法的并行化,加快了模型訓練速度。與谷歌采用普通服務器不同機器學習防止過擬合,百度的多GPU并行計算的計算平臺,克服了傳統SGD訓練的不能并行的技術難題機器學習防止過擬合,神經網絡的訓練已經可以在海量語料上并行展開。可以預期未來隨著海量數據訓練的DNN技術的發展,語音圖像系統的識別率還會持續提升。
目前最大的深度模型所包含的參數大約在100億的數量級,還不及人腦的萬分之一。而由于計算成本的限制,實際運用于產品中的深度模型更是遠遠低于這個水平。而深度模型的一個巨大優勢在于,在有海量數據的情況下,很容易通過增大模型來達到更高的準確率。因此,發展適合深度模型的更高速的硬件也將是提高深度模型的識別率的重要方向。
/End.
下載1:-擴展模塊中文版教程
在「小白學視覺」公眾號后臺回復:擴展模塊中文教程,即可下載全網第一份擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。
下載2:視覺實戰項目52講在「小白學視覺」公眾號后臺回復:視覺實戰項目,即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰項目,助力快速學校計算機視覺。
下載3:實戰項目20講在「小白學視覺」公眾號后臺回復:實戰項目20講,即可下載含有20個基于實現20個實戰項目,實現學習進階。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三+上海交大+視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~