楊銘深度學習發展的新趨勢演講稿

楊銘深度學習發展的新趨勢演講稿

  地平線機器人聯合創始人 地平線機器人技術軟體副總裁

  大家好,我是楊銘。非常榮幸有這樣的機會跟大家分享我們對深度學習研究發展新趨勢的一些思考和總結,我們將這些新發展的首字母縮寫成一個單詞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。

  第一個是學習然如何記憶。常規的前向神經網路有一個特點:你每次輸入和輸出是確定的關係,對於一副影象,無論何時輸入進神經網路,我們一層一層計算後就會得到一個確定的結果,這是跟上下文不相關的。我們如何把記憶的能力引入到神經網路中去?最簡單的一個思路是,在神經網路中加入一些狀態,讓它能記住一點事情。它的輸出不僅取決於它的輸入,也取決於它本身的狀態。這是一個最基本的遞迴神經網路的思路。輸出取決於本身的狀態,我們也可以將其展開成一個時序系列的結構,就是說當前狀態的輸入不僅包括現在輸入,也包含上一時刻的輸出,這樣就會構成一個非常深的網路。這種辦法可以讓神經網路記住一些之前的狀態。那麼輸出就取決於在這些狀態和現在的輸入的結合。但是這個方法有一個侷限:這些記憶不會很長久,很快就會被後面的資料沖掉了。之後的深度學習的發展就是長時短時記憶,提出了一個記憶單元(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年的發展情況來看,深度學習現在的非常簡化的思路是,如果有個比較新的問題,要做的事情首先是把問題描述好,保證輸入到最終的目的這個過程每步是可微分的,然後把其中最難的部分插入深度神經網路,實現端對端的學習。之前提到的幾個新趨勢,大體上都是這種思路。

  無論是社會大眾還是媒體,或者是研究人員自己,我們可能對深度學習還有一些不同角度的認識。我個人認為這是計算機科學領域非常純粹的計算問題,探索如何把這些資料本質的內容和結構抽象理解得更好。希望今天提到的一些深度學習的新趨勢,對大家有所幫助和借鑑。謝謝大家!

最近訪問