天天看點

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

       大家好,我是楊銘。非常榮幸有這樣的機會跟大家分享我們對深度學習研究發展新趨勢的一些思考和總結,我們将這些新發展的首字母縮寫成一個單詞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年的發展情況來看,深度學習現在的非常簡化的思路是,如果有個比較新的問題,要做的事情首先是把問題描述好,保證輸入到最終的目的這個過程每步是可微分的,然後把其中最難的部分插入深度神經網絡,實作端對端的學習。之前提到的幾個新趨勢,大體上都是這種思路。

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

本文來源于"中國人工智能學會",原文發表時間"2016-04-27"

繼續閱讀