解密讓阿爾法狗贏了人類的關鍵——機器深度學習

讓阿爾法狗取勝的機器深度學習,到底是個什麼東西?簡單地說,深度學習與多層卷積人工神經網絡,是意義類似的術語,因此我們就從神經網絡說起……

神經網絡

顧名思義,人工神經網絡是企圖模擬人類神經系統而發展起來的。它的基本單元是感知器,相當於人類神經中的神經元,作用是感知環境變化及傳遞信息,見圖7-8-1。人體中的神經元連接在一起形成樹狀或網狀結構,即人類的神經系統。人工神經元連接在一起,便成為如今深度學習的基礎:人工神經網絡。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

圖7-8-1:神經元

人工神經網絡的研究早已存在,但只是在深度學習出現之後,與概率統計分析方法相結合,近幾年才重新挖掘出了它的巨大潛力。並且,現在所說的深度學習神經網絡,不等同於人類大腦結構,指的是一種多層次的計算模型和學習方法,見圖7-8-2。

為與早期研究的人工神經網絡相區分,被稱之為“多層卷積神經網絡”,本文中簡稱為“神經網絡”。神經網絡的重要特點之一就是需要“訓練”,類似於兒童在媽媽的幫助下學習的過程。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

圖7-8-2:神經網絡

如前所述,分類是學習中重要的一環,孩子們是如何學會識別狗和貓的?是因為媽媽帶他見識了各種狗和貓,多次的經驗使他認識了狗和貓的多項特徵,他便形成了自己的判斷方法,將它們分成“貓”、“狗”兩大類。科學家們也用類似的方法教機器學習。

如圖7-8-2b所示,神經網絡由輸入層、輸出層,以及多個隱藏層組成,每一層包含若干個如圖7-8-1b所示的神經元。每個神經元能幹什麼呢?它也可以說是一個分類器。在圖7-8-1b中,如果只有加權疊加的功能,便是最簡單的線性分類器,如果進一步包括激活函數g,便將工作範圍擴充到非線性。

比如說,也許有些人認為可以從耳朵來區別貓狗:“狗的耳朵長,貓的耳朵短”,還有“貓耳朵朝上,狗耳朵朝下”。根據這兩個某些“貓狗”的特徵,將得到的數據畫在一個平面圖中,如圖7-8-3b所示。這時候,有可能可以用圖7-8-3b中的一條直線AB,很容易地將貓狗通過這兩個特徵分別開來。當然,這只是一個簡單解釋“特徵”的例子,並不一定真能區分貓和狗。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

圖7-8-3:機器分類

總而言之,一個人工神經元的基本作用就是可以根據某個“特徵”,將區域作一個線性劃分。那麼,這條線應該畫在哪兒呢?這就是“訓練”過程需要解決的問題。在圖7-8-3b的神經元模型中,有幾個被稱為“權重”的參數w1、w2、w3,“訓練”的過程就是調整這些參數,使得這條直線AB畫在正確的位置,指向正確的方向。

上述例子中,神經元的輸出可能是0,或者1,分別代表貓和狗。換言之,所謂“訓練”,就是媽媽在教孩子認識貓和狗,對人工神經元而言,就是輸入大量“貓狗”的照片,這些照片都有標記了正確的結果,神經元調節權重參數使輸出符合已知答案。

經過訓練後的神經元,便可以用來識別沒有標記答案的貓狗照片了。例如,對以上所述的例子:如果數據落在直線AB左邊,輸出“狗”,右邊則輸出“貓”。

多層的意義

圖7-8-3b表達的是很簡單的情形,大多數情況下並不能用一條直線將兩種類型截然分開,比如圖7-8-4a、圖7-8-4b、圖7-8-4c中所示的越來越複雜的情形。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

圖7-8-4:更多的特徵需要更多的參數來識別

像圖7-8-4b和圖7-8-4c那樣不能用直線分割的問題,有時可以使用數學上的空間變換來解決。但實際上,大多數情形是對應於區別貓和狗時需要考察更多、更為細緻的特徵。特徵多了,調節的參數也必須增多,也就是說,神經元的個數需要增多。

首先人們將網絡增加為兩層,輸入層和輸出層之間插入一個隱藏層,這使得數據發生了空間變換。也就是說,兩層具激活函數的神經網絡系統可以做非線性分類。

在兩層神經網絡的輸出層後面,繼續添加層次。原來的輸出層變成中間層,新加的層次成為新的輸出層,由此而構成了多層神經網絡,參數數目(圖7-8-2b中各層之間的權重 wi)大大增加,因此係統能進行更為複雜的函數擬合。

更多的層次有什麼好處呢?通過研究發現,在參數數量一樣的情況下,更深的網絡往往具有比淺層的網絡更好的識別效率。

有趣的是,神經網絡似乎具有某種對“結構”進行自動挖掘的能力,它只需要我們給出被分類物件的某些底層特徵,機器便能進行一定的自發“抽象”。

比如,如圖7-8-5所示,一張“人臉” 可以看做簡單模式的層級疊加,第一個隱藏層學習到的是人臉上的輪廓紋理(邊緣特徵),第二個隱藏層學習到的是由邊緣構成的眼睛鼻子之類的“形狀”,第三個隱藏層學習到的是由“形狀”組成的人臉“圖案”,每一層抽取的目標越來越抽象,在最後的輸出中通過特徵來對事物進行區分。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

圖7-8-5:每一層的分類能力似乎越來越“抽象”

層數的多少,反映了神經網絡的“深度”,層數增多導致網絡的節點數增多,即神經元的數目也增多。2012年,吳恩達和Jeff Dean共同主導的Google Brain項目,在語音識別 和圖像識別等領域獲得了巨大成功。他們使用的“深度神經網絡”,內部共有10億個節點。然而,這一網絡仍然不能與人類的神經系統相提並論。真正人腦中的神經習題是一個非常複雜的組織,據說成人的大腦中有成百上千億個神經元。

神經網絡雖然源於對大腦的模擬,但後來的發展則更大程度上被數學理論及統計方法所指導,正如飛機這一交通工具的發展過程,源於對鳥兒飛翔的模仿,但現代飛機的結構卻與鳥類身體構造風馬牛不相及。

卷積的作用

機器學習就是從大量的數據中挖掘有用的信息,層數越多,挖得越深。除了多層挖掘之外,每一層的“卷積”運算對目標“特徵”的抽象有重大意義。

為了更好理解卷積的作用,我們可以與聲音信號的傅立葉分析相比較。聲音信號在時間域中是頗為複雜的曲線,需要大量數據來表示。如果經過傅立葉變換到頻率域後,便只要少量的幾個頻譜,基頻和幾個泛音的數據就可以表示了。也就是說,傅立葉分析能夠有效地提取和存儲聲音信號中的主要成分,降低描述數據的維數。卷積運算在神經網絡中也有類似的作用:一是抽象重要成分,拋棄冗餘的信息,二是降低數據矩陣的維數,以節約計算時間和存儲空間。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

圖7-8-6:卷積作用的示意圖

以神經網絡識別圖像(比如,貓的照片)為例,一般來說,輸入是像素元組成的多維矩陣(例如512*512),在神經網絡中人為地設定一個卷積核矩陣,應該根據需要抽取的信息而決定(注:圖7-8-6b中的卷積核矩陣沒有任何實用意義),卷積運算後,得到一個比輸入矩陣更小的矩陣。圖7-8-6直觀地描述了卷積的作用。輸入是5*5的矩陣,卷積核是3*3矩陣。最後得到的輸出是2*2矩陣,輸出比輸入的維數小,但仍然包含了原始輸入中的主要信息。

解密讓阿爾法狗贏了人類的關鍵——機器深度學習

(摘自《從擲骰子到阿爾法狗:趣談概率》,作者:張天蓉)


分享到:


相關文章: