微软亚洲研究院刘铁岩博士:迎接深度学习的“大”挑战(一)
微軟亞洲研究院劉鐵巖博士:迎接深度學習的“大”挑戰(一)
所屬欄目:?科技資訊????發布時間:?2017-03-11 14:42:10???文章來源:雷鋒網???閱讀:2674
微軟亞洲研究院劉鐵巖博士:迎接深度學習的“大”挑戰(一)微軟亞洲研究院劉鐵巖博士:迎接深度學習的“大”挑戰(一)摘要: 雷鋒網[AI科技評論]按:本文根據劉鐵巖博士在中國人工智能學會AIDL第二期人工智能前沿講習班*機器學習前沿所作報告《迎接深度學習的“大”挑戰》編輯整理而來,發文前已得到劉鐵巖博士的親自刪減校正。 劉鐵巖 劉鐵巖博士,微軟亞洲研究院首席研究員,美…
雷鋒網[AI科技評論]按:本文根據劉鐵巖博士在中國人工智能學會AIDL第二期人工智能前沿講習班*機器學習前沿所作報告《迎接深度學習的“大”挑戰》編輯整理而來,發文前已得到劉鐵巖博士的親自刪減校正。
劉鐵巖
劉鐵巖博士,微軟亞洲研究院首席研究員,美國卡內基梅隆大學(CMU)客座教授。劉博士的研究興趣包括:人工智能、機器學習、信息檢索、數據挖掘等。他的先鋒性工作促進了機器學習與信息檢索之間的融合,被國際學術界公認為“排序學習”領域的代表人物,他在該領域的學術論文已被引用近萬次。近年來,劉博士在博弈機器學習、深度學習、分布式機器學習等方面也頗有建樹,他的研究工作多次獲得最佳論文獎、最高引用論文獎、研究突破獎,并被廣泛應用在微軟的產品和在線服務中。他是國際電子電氣工程師學會(IEEE)、美國計算機學會(ACM)和中國計算機學會(CCF)的高級會員,中國計算機學會的杰出演講者和學術工委。
以下為劉鐵巖博士所做的現場演講的第一部分,主要介紹了近年人工智能所取得的應用成果;什么是深度神經網絡以及它所帶來的挑戰等問題。
劉鐵巖:非常榮幸今天有機會和大家分享我們的研究成果。我知道這幾天課程安排得特別滿,一天四場報告,大家有點廢寢忘食的感覺,非常辛苦。希望大家聽了我們的報告,能夠有所收獲。
今天我們跟大家分享的題目是:“迎接深度學習的大挑戰”。
為什么要講這個題目呢?深度學習這幾年改變了很多行業的狀態,今天上午張老師應該也講了很多關于神經網絡的話題,包括怎么學習深度神經網絡的結構。今天我會從另一個角度看一看深度學習到底有哪些挑戰,這些挑戰怎么用學術研究的方式加以解決。
微軟亞洲研究院介紹
在此之前,我準備了兩張PPT,介紹一下微軟亞洲研究院。
微軟亞洲研究院成立于1998年,有200多名全職的研究人員,和來自于各大高校的實習生。微軟亞洲研究院雖然隸屬于公司,但是日常運營的形式很像大學,有很多非常有水平的研究員做導師,有非常高質量的學生跟我們做研究。我本人在微軟亞洲研究院負責人工智能和機器學習的領域,我們有十幾位全職的研究人員從事這方面的研究,如果大家對我們組感興趣或者想進行合作,歡迎和我聯系。
我們組的研究方向很寬,包括排序學習、大規模機器學習、深度學習、增強學習、機器學習理論等等。除了發表了百余篇論文,被引用萬余次以外,我們還致力于把研究成果分享給同仁,所以在過去幾年間我們主導、或者參與了多個開源項目,比如微軟認知工具包(CNTK),微軟分布式機器學習工具包(DMTK)、微軟圖引擎(Graph Engine) 等等。如果大家對我們的最新動態感興趣,關注我們的公眾號、微博,了解很多新鮮出爐的微軟亞洲研究院的故事。
近年來人工智能所取得的應用成果
接下來我們進入今天報告的正題。
我們這次整個AIDL都是關于人工智能和機器學習的,類似的PPT應該已經出現了很多次,所以關于什么是人工智能,人工智能曾經走過什么道路,這里我不想再重復。總之,人工智能在過去的60年里,幾起幾落,每一次所謂的人工智能寒冬多半都是因為公眾和政府對人工智能的期望值太高。因此,作為人工智能行業的參與者,我們有必要提醒公眾、提醒政府、提醒產業,對于人工智能技術保持冷靜,不要把它過早捧殺。
不過話說回來,回顧過去的十幾年,人工智能確實取得了一些前所未有的成果。接下來我們就來看幾個例子。深度學習的成功最早是在類似語音圖像這些領域取得的。
首先,語音識別,因為有了大量的訓練數據,有了Deep Learning的方案,逐步達到了人類的精度。這張PPT展示的是去年10月份我們微軟研究院對外宣布的一個語音識別方面的突破性進展。
這是歷史上第一次,機器達到了和人沒有區別的程度,在個人對話的場景下,取得了非常低的錯誤率(5.9%)。這個模型是用微軟認知工具包(CNTK)訓練出來的,大家如果對語音的研究有興趣,可以試用一下CNTK,它是語音識別領域被最廣泛使用的深度學習工具包。
其次,圖像方面最近也取得了很大的進展、2015年,來自我們微軟亞洲研究院的ResNet技術,在ImageNet competition里取得了冠軍,并且超過了人類的識別精度。像ImageNet這樣包含上千個類別的圖像數據,識別起來其實還是有難度的。即便是人,看一眼也不一定都能分辨出來。
有研究表明,人類的錯誤率大約是5.1%,而ResNet達到了將近3.5%的錯誤率。也就是說對于特定領域、特定類別的問題,機器已經超過了人的圖像識別能力。這個成功后來又延續到了圖像分割領域,圖像分割是比圖像識別更復雜的任務,不僅要告訴大家這張圖像有什么,還要把它圈出來、把邊界找到。2016年微軟亞洲研究院的技術再次在這個更難的任務上力拔頭籌、獲得冠軍。
上面提到的人工智能技術大多已經被微軟產業化,下面給大家放一個視頻,是介紹微軟認知服務的,之前網上幾個很出名的爆款應用,比如How old測顏齡,都是基于微軟認知服務開發出來的。
視頻中展示場景,包括了前面提到的語音識別、圖像識別、文字識別等等。有了微軟認知服務,大家如果想做一個創新應用,就不需要對深度學習有非常深的了解,不需要在云上構架一個龐大的服務器集群來訓練模型,只要調用一下認知服務的API,就可以實現很多神奇的功能。
除了前面提到的語音和圖像以外,在文本理解、機器翻譯等方面,人工智能技術最近也取得了很大的進展。
微軟有很多與此相關的產品,比如Skype translator、Microsoft translator,可以同時支持多人、多點語音、多語言的實時同聲傳譯。接下來給大家展示的視頻是關于Skype translator的,講的是一個外國攝影師和他的中國向導之間的故事。
其實這項技術早在2012年微軟亞洲研究院主辦的“21世紀計算大會”上就被展示過。當時我們的研究副總裁Rick Rashid用英文做了一個主題演講,大家聽到的是機器自動同聲傳譯出來的中文表達,聽起來就像他真的會講中文一樣。
除了上述認知方面的進展,最近人工智能在博弈方面也取得了很大的進步。比如用人工智能來打電子游戲,用人工智能來下圍棋等等。當年AlphaGo戰勝李世乭的時候街頭巷尾都在討論。而今master橫掃幾十位人類高手,又掀起了大家對人工智能的新認識。
左邊這張圖是關于用人工智能技術來玩Atarti game的。當使用強化學習技術不斷地嘗試玩這個游戲,一開始機器只會學到一些基本技能,玩著玩著逐漸發現一些高級的策略,甚至獲取了超過常人的技巧,比如把小球打到磚塊上面去,通過不斷回彈實現得分。
右邊這張圖是關于圍棋的。圍棋本身的策略空間非常大,每落一子,棋盤上都有很多不同的選擇,如果再考慮到后手,則對應于一個非常龐大的搜索樹。對這個搜索樹進行遍歷是遠遠超過目前計算機的計算能力的,所以大家曾一度認為在圍棋這件事情上機器很難戰勝人類。但是,最新的人工智能技術巧妙地回避了遍歷,像人一樣使用了value network來對搜索樹進行有效的剪枝,從而在以高概率保留好棋的前提下,把計算的復雜度降低到計算機可以承受的范圍內,并且最終戰勝了人類的世界冠軍。
深度學習技術
前面回顧的所有這些人工智能領域的大事件,背后都離不開“深度學習”技術。
深度神經網絡及其優化方法簡介
那么什么是深度學習呢?雖然早期大家提DeepLearning這個概念的時候,會聯想到很多不同的模型,但是經過多年的演化,目前最主流的深度學習模型就是所謂的深層神經網絡。深層神經網絡指的是一個有至少包含兩個隱層的神經網絡。很多實用的深層神經網絡甚至會包含成百上千個隱層。
簡單起見,我們先舉一個有三個隱層的深層神經網絡作為例子。從圖中可以看到,神經網絡包含很多神經元,以及它們之間的拓撲連接。每個神經元做的事情非常簡單,就是把上一層所有跟它相連的神經元的輸出放在一起,做加權求和,然后再進行非線性變換(激活函數)。在神經元,以及神經元之間的連邊上都可以有參數,比如邊權和偏差等。
那么有了深層神經網絡以后,怎么對它進行學習呢?常用的方法叫做經驗風險最小化,也就是最小化神經網絡在訓練集里所有樣本上的損失函數之和。為了最小化經驗風險,一個最簡單的方法是梯度下降法。但是,我們知道梯度下降法很容易陷入局部極小點,而且它的隨機版本可能不收斂,需要通過減小學習率來控制訓練過程的收斂性。為了解決這些問題,人們又提出了很多變種的優化算法,比如SVRG等等。
兩種特殊的深度神經網絡
了解了什么是深度神經網絡,以及如何對其進行優化,我們來介紹兩種特殊的深層神經網絡。
首先是卷積神經網絡,之所以稱其為卷積神經網絡,是因為它的一些基本單元非常像信號處理里的卷積操作。其實,卷積神經網絡的提出,也有很多仿生學的背景在里面。咱們回想一下自己做圖像識別的過程:
如果給你一幅很大的圖片,要在里面識別出某個特定的人,比如張三。假定我們的腦子里有張三的形象,但是不知道他到底在圖片的哪個部位,我們會怎么做呢?一個很簡單的方式就是從這張圖像左上角開始掃描,每次掃描都用我們腦子里的模式去匹配一下看有沒有張三,沒有的話往后移動一個位置,再進行下一次掃描。整個圖像掃描過程中,我們對張三識別的模式是沒有改變的,參數是固定的,只是在空間不斷平移,這其實是所謂卷積神經網絡最基本的思想。
具體來講,卷積神經網絡有三個特點:
一是使用卷積濾波器;
二是參數共享;
三是通過pooling操作實現平移不變性。
如果我們把卷積操作和Pooling操作級聯在一起,不斷循環往復地構建網絡結構,這就會形成深層的卷積神經網絡。給大家看一個例子,LeNet,它在輸入圖像的基礎上,進行了多次卷積和pooling操作,最后在實現有效的信息抽取之后,使用全連接的網絡對這些信息進行最終的分類。
第二個特殊的深層神經網絡叫做循環神經網絡。它的提出也和仿生學有關。咱們想一下自己是如何讀書看報的。我們一般是從每段文字的第一個字開始,一邊往后看,腦子里一邊利用之前看過的內容的記憶,對當前看到的文字進行理解。如此循環往復,最后把整個段落的意義全都弄清楚。循環神經網絡也做了同樣的事情,它在標準神經網絡的基礎上引用了一個memory unit,用來存儲和之前輸入有關的信息,以幫助我們更好地理解未來的輸入。
為了更形象地理解循環神經網絡,我們把它展開來看。展開之后這些輸入就帶有時間標簽了,比如說這個是你看到的第一個詞X0,接下來看到第二個詞X1,不斷的往下移動。每次看到一個新輸入之后,就會對它做某種處理,產生一些對它的認識,并且放到memory里,當看到下一個詞的時候,不僅僅針對這個詞本身進行理解,還會參照上一個詞對應的memory;這樣不斷地循環下去,就得到了所謂的循環神經網絡。循環神經網絡和卷積神經網絡有點類似,也會在不同階段共享參數。
理論上,循環神經網絡可以展開成無限深的網絡,但是這會帶來學習的麻煩。實踐中,我們通常進行有限深度的展開,也就是所謂的BPTT技術。展開之后就可以把它當成標準的神經網絡用梯度下降的方法來進行參數學習了。
深度神經網絡所帶來的挑戰
到此為止,我們做了一個快速的神經網絡簡介:我們介紹了什么是神經網絡,兩個特殊的網絡結構,以及如何學習它們的參數。不管是全連接的網絡、卷積網絡還是循環網絡,實際中常常會用到很深的層次,比如成百上千層,那么當深度增加的時候,有什么好處,又是否會帶來一些新的挑戰呢?
前面我們提到過神經網絡的universal approximation theorem, 它似乎告訴我們只要有一個隱層,神經網絡已經可以具備幾乎無限的表達能力了。那為什么還要使用那么多的隱層呢?近幾年有很多的理論研究表明,當層數增加時,想要取得同樣的表達能力,對隱節點總數的要求會變小很多,因此也就會帶來更高的學習效率和更小的學習難度。
反過來看,當隱節點的個數相同的時候,深層網絡的表達能力會比淺層網絡更強,因此學習能力也就更強。當然,天下沒有免費的午餐,深層網絡的好處是有代價的,當網絡很深的時候,用梯度下降來進行學習時,常常會遇到一些技術難題。接下來這張PPT就展示了兩個常見的麻煩。
第一個麻煩是Overfitting
第二個麻煩叫Gradient vanishing
為了更好地解釋這種現象,我給大家舉一個例子。這是一個細長型的深度神經網絡。網絡參數包括邊權w和偏差b。我們以b1這個參數為例,損失函數對它求導的結果如圖所示。在這個連乘式里,sigma‘是激活函數的導數,每經過一個隱層,就會出現一項sigma‘。
這里畫了一個常見的sigmoid function的導數,它的最高點是在輸入為0的時候取得的,最高點取值是0.25,如果你的輸入不是0,其取值會更小。大家知道,當我們把一長串很小的數連乘起來,它的結果會很快衰減到接近0,而在當前的參數上加上一個幾乎為0 的梯度,對模型是不會有什么改變的,這就解釋了為什么深層網絡經常訓練不充分。
為了解決這兩個典型的麻煩,人們提出了一系列的技術手段。比如:
DropOut/DropConnect,其基本思想是在訓練過程中引入一些隨機因素,讓神經網絡模型不會那么狠地擬合到訓練集上去。為此,可以在訓練過程中隨機刪除一些神經元節點,或者隨機刪除一些連邊。有人證明了,通過DropOut,可以有效降低神經網絡的容量(Rademacher Average),從而避免過擬合,取得更好的泛化能力。
另外一個技術是Batch Normalization,也可以有效緩解overfitting和Gradient vanishing的問題。它其實是受到早期人們對神經網絡的輸入進行白化處理的啟發。不同點在于它對深層神經網絡的每一層都進行白化處理,而且是參數化的白化。也就是在一個mini batch里計算均值和方差,然后對信號進行0均值、標準方差的變換。這樣做的好處是可以去除不同mini batch之間的差異,使得數據變得更加統一,提高泛化性能;同時,由于激活函數的輸入被0均值化,也會提高其導數的幅度,從某種程度上減緩gradient vanishing的問題。
總結
以上是生活随笔為你收集整理的微软亚洲研究院刘铁岩博士:迎接深度学习的“大”挑战(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大牛讲堂 | 邬书哲:物体检测算法的革新
- 下一篇: 演讲 | 微软亚洲研究院刘铁岩:对偶学习