DNN的隱喻分析:「深度學習」,深在何處

【編者按】DNN現在已經被互聯網公司廣泛使用,但大眾對深度學習的理解水平並不一致。Nuance的這篇文章從另外一個角度來審視DNN技術的演進——分析隱喻如何作為強大的工具來引導我們的思維進入新視野,同時又引誘思維步入新的錯誤。作者告誡說:不要被「深度學習」的隱喻沖昏頭腦。

隱喻在流行文化中和科學界隨處可見。「埃爾維斯是搖滾樂之王」就是一個例子。嚴格說來,搖滾樂界並不是一個王國,但這裡借用「王」這個字,我們會腦補出一個王國:那裡有各位不同地位的歌手,以及浩浩蕩蕩的簇擁人群(即他們的粉絲團)。回到「深度學習」這個詞,它糾纏在錯綜複雜的隱喻網中。真的有足夠複雜的機器能夠顯示出像人類一樣的學習能力?學習這種抽象的行為又何謂「深度」(亦或淺度)?我在這篇文章裡將探究這些問題。

《機械姬》、《她》、《模仿遊戲》等等電影不斷在衝擊著銀屏,圍繞「深度學習」的激動畫面也層出不窮。出於消遣目的,我用一款著名的搜尋工具搜尋「深度學習應用於」詞條,成百上千條返回的結果顯示,「深度學習」正被應用於:「從衛星圖像來獲取商業洞察力」,「從自然環境中采集的數據集來區分疾病狀態」,「理解電影評價」,「從生理傳感器采集的數據預測情緒」,「自然語言」,以及我最感興趣的「人類事物的糾結困惑」(我猜測我並不是唯一聲稱這兩種現象存在聯繫的人)。深度學習似乎可以被應用於所有這些領域,不過,我們首先得回答一個問題,「深度學習」這個概念源自哪兒?什麼是「深度學習」?首先,我認為這個概念和隱喻有一定聯繫。

今天,我們將苦心孤詣地探討一番,看看隱喻如何作為強大的工具來引導我們的思維進入新視野——同時又引誘思維步入新的錯誤。

DNN的隱喻分析:「深度學習」,深在何處

隱喻隨處可見,在上一句中我就輕易地插入至少七處隱喻(斜體字標註)。概括來說,隱喻是用一個領域特定的詞語和概念來介紹另一個完全不同的領域。以「埃爾維斯是搖滾樂之王」為例。嚴格地說,搖滾樂界並不是一個王國,但在這裡借用「王」字,我們可以腦補一個王國:那裡有各位不同地位的歌手,以及浩浩蕩蕩的簇擁人群(即他們的粉絲團)。相反地,我們也可以稱其為「最權威的藝術家」或者造一個意思相近的新詞。但是,前一種說法顯得碎煩,後一種說法則會給我們留下太多新詞。若下一次需要創造一個新詞來替換麥克•傑克遜的「流行音樂之王」,我們又將面臨一次窘境。顯然,隱喻不是詳細敘述時的修飾元素,而是使得語言更加精煉的修辭,在舊詞的暗示之下感知、體驗和理解新語境。

第一部分:「深度學習」之「學習」

根據大多數字典的定義,「學習」——韋氏字典定義為「通過學習、練習、傳授、體驗來掌握新知識和技能」——屬於人類的一種行為。當「學習」這個詞被用於動物、物體、甚至網路世界的硬體系統之類事物時,就已經是一種隱含表達,因為它適用於人類的概念,涉及到意識——除人類以外的事物不存在意識。你可能聽說過所謂的形狀記憶合金。這些金屬製作的物品有一種有趣的特性:當你把它們從目前的形態彎曲成一種新的形態,然後對其加熱,它們又會恢復到原來的形態。

這裡也試圖用隱喻的方式來描述這種行為(也是有助於概念化)。維基百科也用這種方法來描述形狀記憶合金,在用到隱喻的地方加上引號:訓練意味著形狀記憶可以通過特定的方式去「學習」行為。在正常情況下,形狀記憶金屬「記住」它在低溫下的形變,但在加熱時又恢復高溫形狀,立刻「忘記」之前在低溫下的形變。我相信沒人會對此信以為真,認為金屬原子內部有個微型大腦,能「學習」和「記憶」一些事。那麼用於「機器學習」的計算機程序又是怎樣的呢?他們的「學習」也僅僅只是隱喻嗎?或者說,真的有足夠複雜的機器能夠顯示出像人類一樣的學習能力?而且,為什麼我們不像討論記憶金屬那樣,立刻推翻後一種說法呢?

原因之一當然是計算機更加複雜,很多人對計算機不夠了解。從最初談論計算機就用到隱喻的手法,在1950年代計算機被媒體稱為是「電子大腦」。接著是科幻小說,它們很少提及計算機枯燥的技術細節,而主要呈獻給大家的是會「思考」的機器和機器人,這個概念在流 行文化中一直傳播。在這裡,它們遇到了根植於西方文化的「人造生命」概念,從由黏土捏成的假人,到中世紀的煉金術士的侏儒,直到瑪麗•雪萊的弗蘭肯斯坦。

DNN的隱喻分析:「深度學習」,深在何處

為了判斷「機器學習」(ML)是真的學習還是「學習」,這裡有個快速入門的方法。我們從隱馬可夫數學模型(Hidden Markov Models, HMMs)開始說起,它曾一度是很多機器學習系統的中樞。請看上圖,整個結構不算太複雜,由隱含狀態(x),轉換概率(a),輸出概率(b)以及觀察狀態(y)組成。在大量訓練數據集上「訓練」得到模型,然後從中「學習」得到的概率值,訓練集可以由單詞或音素組成。我想我們都讚成這裡的「學習」屬於隱喻,因為這些模型和之前記憶金屬裡的原子並沒有實質上的區別。然而,幾年前HMM逐漸偏離主流的ML,取而代之的是另一種不同類型的模型,它最初於1990年代開始流行。這一取代沒過多久就消失了,但最近又強勢地返回舞台(我們稍後解釋原因)。問題首先來自模型的名稱:「神經網路」(Neural Network, NN)。從下圖可以看到,模型由多層節點組成,這些節點能夠被神經所「觸發」,工作原理如同我們的大腦:左側的箭頭表示節點輸入,就像神經元的樹突接收輸入信號(電刺激),然後觸發一些計算步驟,計算結果從右側輸出(成為下一層的輸入),猶如神經元的軸突。神經元內部的計算往往很簡單,類似找出輸入的最大值,或者輸入之和。為了將此應用於ML任務——例如圖像識別——需要把每個輸入節點和黑白圖像的一個像素對應,輸出節點和想要識別的類的物體對應(樹、牛等等)。接著,按照HMM的流程,設置輸入輸出值為樣本圖像和對應的正確分類結果(比如輸入的圖像是一頭牛)。然後,使用「反向傳播」的算法從右向左(模型在使用時是從左向右計算)調整權重值,因此若左側有一個輸入,在右側就會計算得到正確的輸出類別。

DNN的隱喻分析:「深度學習」,深在何處

如你所見,整個模型並不比HMM複雜,至少不能立刻讓我們信服神經網路模型能夠思考和學習。假設,真實的模型有更多的節點(幾千個),這和大腦中真正的神經元還是差別巨大:大腦擁有的神經元數量更龐大,以模擬化的方式工作,將電信號和化學信號甚至遺傳效應結合起來,況且我們還不明白意識之類東西是如何產生的。在我看來,「神經網路」和HMMs對大腦的模擬程度並無二致。但是因為名稱裡存在「神經」(很不幸,它的替代詞「感知器」也好不到哪裡去)這個詞,這類模型就如同我們在上面所見,攜帶了大量隱喻意義:「電子大腦」能用人造「神經元」來「學習」不是很容易讓人產生聯想嗎?

第二部分:「深度學習」之「深度」

等一等,先不考慮「深度學習」的這個「深度」。從字面意思理解,「深度」是指一種空間關係。湖裡和海裡的水是深的。其它用法幾乎都是隱喻,像表示顏色的時候會說「深紅」和「深藍」,表示顏色很重或者很暗,僅此而已。當然,用來形容「思考」也很常見:你深入探究這件事,經過深度思考,提出了深刻的見解。

在《銀河系漫遊指南》一書中,道格拉斯•亞當描述了計算機「深思」(這個計算機為了運算和檢查答案深度思考了700多萬年,最後顯示出了答案42)。隨後,一名後來成為IBM員工的學生借此命名了他的國際象棋計算機,並在1996年擊敗世界冠軍卡斯帕羅夫而出名。再後來,IBM行銷部門的一些人將其更名為「深藍」——這裡你看到了從「深海」到「深藍」(像大海,也是IBM的logo)到深度「思考」的整個隱喻過程。事實上,國際象棋計算機與「深」相關並不多:其算法相當「淺顯」且粗暴;「深藍」的成功在於它使用大量硬體來計算可能的棋子移動方向,大量的晶片來巧妙設計評估落棋位置。盡管如此,「深」仍保留於此。(Deep Fritz如今仍是一款具有競爭力的商業國際象棋計算機)。DeepQA是另一個向「深」進軍的產品:收集自維基百科的文本數據和本體打包,使機器在Jeopardy 能擊敗人類挑戰者(以沃森的名義)。

機器學習研究員幾年前就決定要擴展神經網路中間的「淺」隱藏層,變為多層結構,並且使節點更複雜,新的網路稱為「深度神經網路」(DNNs),或是「深度置信網路」(DBNs)。普通非技術人員在聽到「深度置信網路」這個隱喻的名詞時,怎能不與「深度思考」以及人工智能相聯繫呢?

至此,我想我們已經剖析完畢,並且充分揭秘了我們所看到的模型是一種數學建模過程,和HMMs並無太大差別。因此,不管名字如何,這些系統所謂的「學習「只是一種隱喻。那麼這意味著我們就可以低視他們了嗎?完全不是!

DNN的隱喻分析:「深度學習」,深在何處

首先,DNNs使我們Nuance核心的自動語音識別(ASR)引擎的準確率提升(錯誤率降低)—— ASR引擎是我們雲計算背後的支持技術,也是Dragon NaturallySpeaking內部所用的技術,目前已經發展到第13代。在過去20年裡,每一代的錯誤率都持續下降。到最後,在HMM框架下降低錯誤率已經變得越來越難,因為這個框架已經經歷了20年的提升和優化,改進空間很小。所以,不僅僅是因為DNNs降低錯誤率的效果立竿見影,而且在DNNs這把大傘下蘊藏著巨大的未知改進空間,像在不同的拓撲結構,不同的層數和節點數,多節點的結構,網路的訓練過程等等方面,它在未來幾年裡還有很大的潛能。在語音合成領域,DNNs提高了從待合成文本的語言特點到目標語言聲學參數(如音韻)的映射能力。在語音識別技術中,他們有助於提高說話人身份鑒別的準確性。考慮到這一切,可以毫不誇張地說,DNNs是近幾年我們眾多產品中對創新貢獻最大的獨立個體。

當我說到DNNs並不複雜(很難從中看到意識和真正的智慧這個層面來說),我並不是說它們很容易被發現,或者說,容易使用它們。同樣,結論完全相反。正如之前提到的,神經網路大約在1990年代就已經出現,但當時有兩個問題限制它們的成功應用。一個是若想要在大數據集上訓練它們,或者節點數和層數太多,訓練消耗的時間就會很久——主要受限於當時的硬體條件。而且,盡管訓練得到的模型在局部區域效果比其它相似模型要好,如果從全局來看,會有其它更好的配置。你訓練得到的模型究竟是局部最優還是真正的全局最優取決於訓練階段早期的隨機因素。當Geoffrey Hinton,Yoshua Bengio等先驅者解決這兩個問題之後,DNNs開始取得突破。當然,更好的硬體幫助他們解決了第一個問題,但是利用並行計算和圖形處理單元(GPU,最初為計算機圖像開發的專用晶片)計算也是一個好主意,使其發展更快。在此之前,局部最小的問題是通過引入預訓練的概念來解決,也就是把模型預先設置在接近(更快達到)全局最優點的一個狀態,而不是完全從頭開始訓練。

下一步將是什麼?

好事不僅僅是這些問題被解決了,神經網路現在被廣泛應用。還在於開辟了更多的研究領域,這將為未來的發展提供更多的改進。在遊戲產業的驅動下,GPU越來越強大,DNNs也搭上了順風車。縮短訓練時間不僅對實際應用有意義,也間接地幫助算法的改進:原來DNN消耗幾周或幾個月的時間在有意義的大型數據集上訓練(它們直到幾年前還是這個狀態),實驗代價非常高,進展也緩慢。現在你可以在幾天甚至幾小時內完成這些訓練,測試新想法變得容易了。

即使有了這些進步,我和其它研究員一樣,承認還有許多事情需要做。例如,使用GPU完成所有DNN訓練步驟仍是一個挑戰,這是由於網路結構的屬性。因為一個「神經元」的輸出可能依賴於輸入數據和許多其它神經元,而且訓練不是一個單純的局部問題(因此容易並行化),大量的數據需要在計算節點之間轉移,可能會抵消GPU的時間優勢。我們怎麼來解決呢?而且,當DNNs第一次挑起語音識別的大梁時,說話者無關模型在一個龐大的訓練集上完成,訓練集盡可能全面地包含了方言的各種變形和個體說話方式。這裡的挑戰是實際應用的系統使用另一個說話者相關的訓練方法,使得基礎模型適應特定的說話者。根據你用幾秒鐘的語音素材還是幾個小時的語音來訓練,不同的方法將被採用。所有這些模型都是以HMM模型為基礎,現在要讓它們都適應DNNs形式。

等等等等……

顯然,DNNs領域還有源源不斷的工作等著我們完成,與此同時,也伴隨著大量的驚喜。我們不要被「深度學習」的隱喻沖昏頭腦。

閱讀原文


關於作者:
CSDN分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、記憶體計算、流計算、機器學習和智能算法等相關大數據觀點,提供雲計算和大數據技術、平台、實踐和產業信息等服務。

微信號:csdnbigdata