深入探索深度學習

理解先進神經網路驚人能力背後原理的個人旅程

加入我們的科學愛好者社群!

本文發表於《大眾科學》的前部落格網路,反映了作者的觀點,不一定反映《大眾科學》的觀點


2018年3月27日星期三,計算機領域的圖靈獎授予了約書亞·本吉奧、傑弗裡·辛頓和揚·勒丘恩,以表彰他們在深度學習方面的工作。複雜神經網路的深度學習是最終將人工智慧從科幻領域帶入現實的應用背後的技術。語音識別使您能夠與您的機器人裝置對話。影像識別是自動駕駛汽車的關鍵。但是,深度學習究竟是什麼?

許多文章告訴您,它是一個複雜的多層神經網路。但它們並沒有真正闡明深度學習看似神奇的力量。例如,解釋它如何從畫素值矩陣(即影像)中識別面孔。

作為一名資料科學教育工作者,多年來我一直在尋找對深度學習這一變革性核心的清晰直觀的解釋——神經網路“發現”機器學習專家所謂的“更高級別特徵”的能力。包括神經網路在內的較舊的統計建模和機器學習演算法,使用那些具有預測能力的特徵已經存在於其中的資料庫。例如,在預測可能的銀行倒閉時,我們可能會猜測某些財務比率(資產回報率、權益回報率等)可能具有預測價值。在預測保險欺詐時,我們可能會猜測保單期限可能具有預測性。


支援科學新聞報道

如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保未來能夠繼續講述關於塑造我們當今世界的發現和想法的具有影響力的故事。


對於諸如語音和影像識別之類的任務,像這樣的結構化資訊性預測變數資訊是不可用的。我們擁有的只是單獨的“低級別”聲波頻率和振幅,或指示強度和顏色的畫素值。您希望能夠告訴計算機“只需尋找兩隻眼睛”,然後提供有關眼睛外觀的更多細節——一個小實心圓圈(瞳孔),被一個環(虹膜)包圍,再被一個白色區域包圍。但是,同樣,計算機擁有的只是(低級別)畫素值的列;您需要做很多額外的工作來定義與眼睛相對應的所有不同的(更高級別)畫素模式。這就是深度學習的用武之地——它可以“學習”如何自行識別這些更高級別的特徵。

當我尋找關於這是如何工作的解釋時,我發現大多數敘述在關鍵點上含糊不清地消失了,通常會附帶一個圓圈列的影像,以及許多連線圓圈的線條。就好像講師把你迷住了,到此為止,他揮舞著雙手說“這就是像面孔這樣的更高級別特徵是如何被發現的。”

然後我參加了一個研討會,瞭解了卷積。

卷積神經網路 (CNN)

在標準神經網路中,每個預測變數在網路的每一層都有自己的權重。相比之下,卷積選擇預測變數(畫素)的子集,並將相同的操作應用於整個子集。正是這種分組促進了特徵的自動發現。回想一下,影像識別任務中的資料由大量畫素值組成,在黑白影像中,畫素值範圍從零(黑色)到 255(白色)。由於我們對檢測黑線和陰影感興趣,我們將此反轉為黑色為 255,白色為零。

考慮上面的線條圖,來自 1893 年 Funk & Wagnalls 出版物。在計算機開始識別眼睛、耳朵、鼻子、頭部等複雜特徵之前,它需要掌握非常簡單的特徵,如線條和邊框。例如,男人下巴的線條。

在典型的卷積中,演算法一次考慮一個小區域,比如 3 個畫素乘以 3 個畫素。下巴處的線條可能看起來像這樣

鳴謝:Peter Bruce

在其第一次卷積運算中,網路可以透過將畫素值乘以一個 3x3 的值矩陣來應用濾波器運算,該矩陣恰好擅長識別垂直線,例如

鳴謝:Peter Bruce

各個單元格乘積的總和為 [0+0+0+200+225+225+0+0+0] = 650。這是一個相對較高的值,與濾波器矩陣的另一種排列可能產生的值相比,因為影像部分和濾波器在中心列中都有較高的值,而在其他地方則有較低的值。因此,對於這個初始濾波器動作,我們可以說濾波器檢測到了一條垂直線,因此我們可以將影像部分的初始九個值合併為一個值(比如說介於 0 和 1 之間的值,以指示垂直線的缺失或存在)。

區域性特徵圖

“垂直線檢測器”濾波器在原始影像矩陣上橫向和向下移動,每次重新計算併產生單個輸出。我們最終得到一個較小的矩陣;小多少取決於濾波器一次移動一個畫素、兩個畫素還是更多畫素。雖然原始影像值只是單個畫素值,但新的、較小的矩陣是特徵圖,回答了問題“此部分中是否存在垂直線?”

卷積的幀相對較小這一事實意味著整體操作可以識別區域性特徵。我們可以想象其他區域性濾波器來發現水平線、對角線、曲線、邊界等。不同卷積操作的進一步層,將這些區域性特徵圖作為輸入,然後可以逐步構建更高級別的特徵(角、矩形、圓形等)。

特徵層次結構

第一個特徵圖是垂直線;我們可以重複該過程來識別水平線和對角線。我們還可以想象濾波器來識別亮區和暗區之間的邊界。然後,在生成一組初始低級別特徵圖後,可以重複該過程,但這次使用這些特徵圖而不是原始畫素值。這個迭代過程繼續進行,構建多維矩陣圖,或張量,表示越來越高級別的特徵。隨著過程的進行,更高級別特徵的矩陣表示變得有些抽象,因此不一定可以深入網路並識別例如眼睛。

在這個過程中,隨著更高級別特徵的出現,資訊被逐步壓縮(簡化)

鳴謝:Peter Bruce

學習過程

網路如何知道要執行哪些卷積運算?簡而言之,它保留那些導致成功分類的運算。在基本神經網路中,各個權重是在迭代學習過程中調整的內容。在卷積網路中,網路還會學習要執行哪些卷積。

在監督學習環境中,網路不斷構建特徵到最高級別,這可能是學習任務的目標。考慮確定影像是否包含面孔的任務。您有一個帶有面孔的標記影像的訓練集,以及沒有面孔的影像。訓練過程產生卷積,這些卷積識別特徵的層次結構(例如,邊緣 > 圓形 > 眼睛),從而在分類過程中取得成功。網路可能遇到的其他層次結構(例如,邊緣 > 矩形 > 房屋)被丟棄,因為它們對識別面孔的成功沒有貢獻。有時,網路中單個神經元的輸出是一個有效的分類器,這表明該神經元編碼了您關注的特徵。

無監督學習

深度學習最神奇的成就似乎是在無監督環境中識別特徵,從而識別物件。著名的例子包括識別帶有面孔的影像以及識別影像中的狗和貓。這是如何做到的呢?

一種方法是使用所謂的自編碼器網路。這些網路經過訓練,透過首先建立資料的低維表示,然後使用建立的表示來再現原始資料,從而再現輸入到它們的資料。因此,網路經過訓練以保留有助於準確再現輸入的特徵。 

在我們的影像示例的上下文中檢視,自編碼器具有以下高階架構

鳴謝:Peter Bruce

直到學習到的特徵點(影像中的瓶頸),網路都類似於監督網路。一旦它開發出學習到的特徵,即資料的低維表示,它就會透過反向過程將這些特徵擴充套件為影像。將輸出影像與輸入影像進行比較,如果它們不相似,則網路會繼續工作(使用我們之前討論的相同的反向傳播方法)。一旦網路可靠地生成與輸入相似的輸出影像,該過程就會停止。

瓶頸處的這種內部表示現在具有關於網路訓練的通用領域(此處為影像)的有用資訊。事實證明,在此過程中出現的學習到的特徵(瓶頸處神經元的輸出)通常很有用。例如,它們可以用於構建監督預測模型或用於無監督聚類。 

底線

卷積網路成功的關鍵在於它們構建複雜的多維特徵圖(需要大量的計算能力和容量)的能力,從而導致學習到的特徵的發展,這些特徵形成了資料的低維表示。不同的卷積架構(例如,濾波操作的型別)適用於不同的任務。人工智慧社群共享預訓練網路,分析師可以繞過所需漫長而複雜的訓練過程,以及允許訓練和基準測試特定任務的資料集(例如,許多不同類別的通用影像資料集、專門用於面孔的影像、衛星影像、文字資料、語音資料等)。

Peter Bruce founded The Institute for Statistics Education at Statistics.com in 2002. He is a co-author of "Data Mining for Business Analytics" (Wiley), and "Practical Statistics for Data Scientists: 50 Essential Concepts" (O'Reilly,2017), the author of "Introductory Statistics and Analytics: A Resampling Perspective" (Wiley), and the co-developer of Resampling Stats software.

More by Peter Bruce
© .