作者:楊銘
地平線機器人公司(Horizon Robotics), 由前百度深度學習研究院(IDL) 創始人余凱創辦, 致力于人工智能領域的創新。公司的愿景是定義「萬物智能」,讓生活更便捷、更有趣、更安全。楊銘為地平線機器人聯合創始人兼軟件副總裁。
2016年是人工智能誕辰60周年。4月22日,2016全球人工智能技術大會(GAITC) 暨人工智能60年紀念活動啟動儀式在北京國家會議中心舉行,約1600余專家、學者及產業界人士出席大會。
大會的專題報告由中國人工智能學會副秘書長、地平線機器人技術創始人兼CEO余凱博士主持。地平線機器人聯合創始人兼軟件副總裁楊銘博士發表專題演講《深度學習研究的一些新趨勢》。
其他演講嘉賓還包括中國人工智能學會理事長、中國工程院院士李德毅,IBM中國研究院大數據及認知計算研究總監蘇中,百度深度學習研究員“杰出科學家”徐偉,寒武紀科技創始人及首席執行官陳天石,北京云知聲信息技術有限公司董事長兼CTO梁家恩,今日頭條實驗室總監李磊,阿里巴巴資深技術專家王琤。
以下為楊銘的演講實錄。

楊銘 地平線機器人聯合創始人兼軟件副總裁
深度學習研究的一些新趨勢
謝謝余凱的介紹。大家好,我是楊銘。非常榮幸有這樣的機會跟大家分享我們對深度學習研究發展新趨勢的一些思考和總結,我們將這些新發展的首字母縮寫成一個單詞“MARS”。這是和我的同事黃暢博士共同的一些討論。
簡單介紹一下,我是去年夏天加入地平線的,負責軟件工程。在此之前我在Facebook人工智能實驗室負責人臉識別算法研究和后端系統開發,也曾在NEC美國實驗室和徐偉一起工作,學到很多東西,受益匪淺。
深度學習的定義
在談論深度學習的新趨勢之前,我們應該首先明確一下深度學習的定義和它現在的發展狀態。非常幸運,學術圈對于深度學習的定義有比較清楚的共識。深度學習是指從原始的數據通過不斷地學習、不斷地抽象,得到這些數據的表達或描述。所以簡單地說,深度學習是從原始數據(raw data)學習其表達(learning representations)。這些原始數據可能是圖像數據,可能是語音,也可能是文字;這種表達就是一些簡潔的數字化的表達。深度學習的關鍵就是怎么去學這個表達。這個表達通過多層非線性的復雜結構學習得到,而這個結構可能是神經網絡,也可能其他的結構。關鍵是希望通過端到端的訓練,從數據直接學習到表達。
如果談到深度學習的起源還是要回到1957年,從一個非常簡單的結構單元——“感知機(perception)”開始。一些輸入信號被權重加權后,和一個閾值比較得到輸出。為什么說這是深度學習的起源?因為這些權重不是由規則預先設計的,而是訓練學習得到的。最開始的“感知機”是硬件設計,這些連接就是物理連線,這些權重可能是通過調節電阻實現的。當時媒體就預測,這是一個智能計算機的雛形,能很快學會走路、說話、看圖、寫作,甚至自我復制或者有自我意識。那么過了60年,目前進展到看圖和寫作中間的階段,希望至少再需要60年能學會自我復制。
深度學習的落與起
深度學習從出現之后,大體上經過了兩個落起。一開始大家非常樂觀,但很快發現有一些非常簡單的問題它解決不了。從2006年開始,在Hinton/LeCun/Bengio/Ng等幾位教授的推動下,深度學習得到了一種爆發式的發展,在圖像識別、語音識別、語義理解,和廣告推薦等問題上,產生了眾多突破性的提高。最新的進展就是今年3月的AlphaGo圍棋比賽,以一種很直觀的方式讓社會大眾感受到了深度學習的進展。我們希望再過五年,深度學習的技術能夠真正用到千家萬戶的日常生活中去,讓每個設備都可以運行深度學習的模塊。
在這幾次起落中,深度學習基本的學習方式和網絡結構其實沒有本質性的變化,還是一種多級的人工神經網絡結構。像這幅圖中所示,輸入層是一些原始數據,并且有標注。無論希望學到什么內容,只要有個評價誤差的函數(cost function),評價神經網絡的誤差是多少,那么有了這個輸入輸出之后,深度學習或者深度神經網絡就可以作為一個黑盒子學習這個目標。人工神經網絡從結構上講就是多層的神經元和它們之間的連接。開始時可能有一個輸入和一個目標,比如你希望從人臉圖像識別出這個人是誰。這時候神經網絡肯定識別不出來,因為它從來沒有見過。我們會給神經網絡隨機設一些值,讓它預測這個識別結果,剛開始輸出層幾乎肯定會是一個錯誤的識別結果。這也沒有關系,我們把這個輸出層的誤差慢慢地反向傳播回去,一點點地修改這些神經元之間的連接參數。通過大量數據不斷地對神經網絡進行一點一點地修正,這個網絡就能夠完成一個非常復雜的函數功能。從八十年代到目前,這30年間,這個基本的結構和學習算法是沒有變化的。
從2006年開始,深度學習有了爆發式增長,歸結于下面幾個理由。首先是利用了海量的數據,這些大數據的使用使得原來這種深度神經網絡的一些問題都不再是問題了(比如對噪聲數據敏感,容易在一個小的數據集性能很好,但無法泛化到大的數據集)。能夠使用這些大數據學習,需要很高的并行運算的能力。當然,也有算法上的改進,比如dropout、batch normalization、residual networks等,能避免過擬合梯度消失這些問題。但本質上這次深度學習的爆發發展還是通過大數據和計算能力實現的。之前說神經網絡本身像黑盒子,結構設計沒有很好的指導方法,遺憾的是目前還是這個狀況。
深度學習為什么這幾年能得到這么大的關注?關鍵原因是性能準確度是隨著數據的增長而提高的。其他的機器學習的方法可能隨著數據的增加,性能提高到某一個點就飽和了。但目前為止對于深度學習我們還沒有觀察到這點,這可能是它最值得關注的一點。目前深度學習也取得很多成功,比如如何做好圖像分類的問題。對于一個1000類圖像分類測試,經過大概不到五年的時間,錯誤率從25%降到3.5%的水平,已經比普通人的識別準確率還要高。這就是我們目前深度學習或者深度神經網絡取得的主要成功,即學會了如何識別、如何分類。
深度學習研究的新趨勢
回到我們的正題,目前深度學習研究的新趨勢?我們總結了四個方向。 首先是學習如何記憶(memory networks); 第二是學習如何關注(attention model),把注意力集中到需要關心的細節上; 第三個是增強學習(reinforcement learning),學習如何控制; 第四個是整體學習任務結構上的新趨勢,就是序列化(Sequentialization)。 我們取首字母,縮寫成MARS。
第一個是學習如何記憶。常規的前向神經網絡有一個特點:你每次輸入和輸出是確定的關系,對于一副圖像,無論何時輸入進神經網絡,我們一層一層計算后就會得到一個確定的結果,這是跟上下文不相關的。我們如何把記憶的能力引入到神經網絡中去?最簡單的一個思路是,在神經網絡中加入一些狀態,讓它能記住一點事情。它的輸出不僅取決于它的輸入,也取決于它本身的狀態。這是一個最基本的遞歸神經網絡的思路。輸出取決于本身的狀態,我們也可以將其展開成一個時序系列的結構,就是說當前狀態的輸入不僅包括現在輸入,也包含上一時刻的輸出,這樣就會構成一個非常深的網絡。這種辦法可以讓神經網絡記住一些之前的狀態。那么輸出就取決于在這些狀態和現在的輸入的結合。但是這個方法有一個局限:這些記憶不會很長久,很快就會被后面的數據沖掉了。之后的深度學習的發展就是長時短時記憶(Long Short Term Memory),提出了一個記憶單元(memory cell)的概念,這個單元中加入了三個門,一個輸入門,一個輸出門,一個遺忘門。輸入門可以控制你的輸入是否影響你的記憶當中的內容。輸出門是影響你的記憶是否被輸出出來影響將來。遺忘門是來看你的記憶是否自我更新保持下去。這種方式使你的記憶得到靈活的保持,而控制記憶如何保持的這些門本身是通過學習得到的,通過不同的任務學習如何去控制這些門。這個長短時記憶單元是1999年提出的,近幾年又有一些新的改進如Gated Recurrent Unit,簡化成只有兩個門,一個是更新門,一個重置門,控制記憶內容是否能繼續保存下去。
這些方法其實可以把記憶保存得更長一點,但實際上還是很有限。更新的一些研究方法提出了一種神經圖靈機(Neural Turning Machine)的概念:有一個永久的內存模塊,有一個控制模塊去控制如何根據輸入去讀取存儲這些內存,并轉換成輸出。這個控制模塊,可以用神經網絡實現。舉個例子,比如做排序的工作,有一些亂序的數字,希望把它排成順序的序列。我們之前需要設計不同的排序算法,而這個神經圖靈機的思路是我們給定這些輸入輸出,讓這個神經網絡自己去學習如何把這些數字通過儲存和取出來排序。某種意義上,讓神經網絡學習如何實現編程實現任務。這也是一個類似的工作,記憶網絡(Memory Network),學習去管理這種長時間的記憶,在應用于問答系統后,可以學到一些推理的能力。
第二個方向是把注意力模型(Attention Model),動態的將注意力集中到某些細節,提高識別性能。比如,看圖說話圖像理解,你可以根據一幅圖生成一句話,很可能是非常宏觀的。如果我們能夠把注意力聚焦在這個機制的從引入到識別的過程中,根據目前的識別結果,動態地一步一步調整聚焦到圖像的細節,那么可以生成一些更合理或者更精細的表達,比如在圖像中,關注一個飛碟,我們可以調整關注區域在圖像中把飛碟的找出來,提取它的特征進行識別,得到圖像的更準確的文字描述。
第三個就是增強學習(Reinforcement Learning)。在增強學習的框架中有兩個部分,一部分是自主控制的單元(agent),一部分是環境(environment)。自主控制單元是通過選擇不同的策略或者行為,希望能夠最大化自己的長期預期收益,得到獎勵;而環境將接收策略行為,修改狀態,反饋出獎勵。在這個增強學習的框架中有兩個部分,一個部分是如何選擇這些行為(policy function),另外一部分是如何評價評估自己可能取得的這些收益(value function)。這個增強學習框架本身已經存在很多年了,和深度學習的結合就是指如何選擇策略行為的函數,以及如何評估預期獎勵的函數,由深度神經網絡學習得到,例如AlphaGo圍棋中的走棋網絡(policy network)和評價網絡(value networks)。
總而言之,從研究角度,深度學習正從有監督的學習慢慢向這種互動式的學習發展;網絡結構由先向網絡向有遞歸方式、考慮記憶、考慮時序的網絡發;同時內容從靜態的輸入到動態的輸入,在預測方式方面是從同時的預測慢慢變成一步一步序列化的預測。換句話說,深度學習中很多過去并發做的事,正在朝著序列化處理發展,這樣最大的好處在于,可以通過前后之間的關聯去除并發模式中的大量冗余,使得關鍵的信息得以很好的保存和利用。從2014年和2015年的發展情況來看,深度學習現在非常簡化的思路是,如果有個比較新的問題,要做的事情首先是把問題描述好,保證輸入到最終的目的這個過程每步是可微分的,然后把其中最難以規則化描述的部分用深度神經網絡去擬合,實現端對端的學習。之前提到的幾個新趨勢,大體上也都還是這種思路。
無論是社會大眾還是媒體,或者是研究人員自己,我們可能對深度學習還有一些不同角度的認識。我個人認為這是計算機科學領域非常純粹的計算問題,探索如何把這些數據本質的內容和結構抽象理解得更好。希望今天提到的一些深度學習的新趨勢,對大家有所幫助和借鑒。謝謝大家!
|