揭祕深度學習“黑箱”,瞭解神經網絡的運作原理


揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

人工神經網絡簡介

人工神經網絡(簡稱神經網絡)是一種受人腦的生物神經網絡啟發而設計的計算模型。人工神經網絡非常擅長從輸入的數據和標籤中學習到映射關係,從而完成預測或者解決分類問題。人工神經網絡也被稱為通用擬合器,這是因為它可以擬合任意的函數或映射。

前饋神經網絡是我們最常用的一種網絡,它一般包括3層人工神經單元,即輸入層、隱含層和輸出層,如圖3.3所示。其中,隱含層可以包含多層,這就構成了所謂的深度神經網絡。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

圖中的每一個圓圈代表一個人工神經元,連線代表人工突觸,它將兩個神經元聯繫了起來。每條連邊上都包含一個數值,叫作權重,我們通常用w來表示。

神經網絡的運行通常包含前饋的預測過程(或稱為決策過程)和反饋的學習過程。

在前饋的預測過程中,信號從輸入單元輸入,並沿著網絡連邊傳輸,每個信號會與連邊上的權重進行乘積,從而得到隱含層單元的輸入;接下來,隱含層單元對所有連邊輸入的信號進行彙總(求和),然後經過一定的處理(具體處理過程將在下節講述)進行輸出;這些輸出的信號再乘以從隱含層到輸出的那組連線上的權重,從而得到輸入給輸出單元的信號;最後,輸出單元再對每一條輸入連邊的信號進行彙總,並進行加工處理再輸出。最後的輸出就是整個神經網絡的輸出。神經網絡在訓練階段將會調節每條連邊上的權重w數值。

在反饋的學習過程中,每個輸出神經元會首先計算出它的預測誤差,然後將這個誤差沿著網絡的所有連邊進行反向傳播,得到每個隱含層節點的誤差。最後,根據每條連邊所連通的兩個節點的誤差計算連邊上的權重更新量,從而完成網絡的學習與調整。

下面,我們就從人工神經元開始詳細講述神經網絡的工作過程。

人工神經元

人工神經網絡類似於生物神經網絡,由人工神經元(簡稱神經元)構成。神經元用簡單的數學模型來模擬生物神經細胞的信號傳遞與激活。為了理解人工神經網絡的運作原理,我們先來看一個最簡單的情形:單神經元模型。如圖3.4所示,它只有一個輸入層單元、一個隱含層單元和一個輸出層單元。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

x表示輸入的數據,y表示輸出的數據,它們都是實數。從輸入單元到隱含層的權重w、隱含層單元偏置b、隱含層到輸出層的權重w'都是可以任意取值的實數。

我們可以將這個最簡單的神經網絡看成一個從x映射到y的函數,而w、b和w'是該函數的參數。該函數的方程如圖3.5中的方程式所示,其中σ表示sigmoid函數。當w=1,w'=1,b=0的時候,這個函數的圖形如圖3.5所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

這就是sigmoid函數的形狀及σ(x)的數學表達式。通過觀察該曲線,我們不難發現,當x小於0的時候,σ(x)都是小於1/2的,而且x越小,σ(x)越接近於0;當x大於0的時候,σ(x)都是大於1/2的,而且x越大,σ(x)越接近於1。在x=0的點附近存在著一個從0到1的突變。

當我們變換w、b和w'這些參數的時候,函數的圖形也會發生相應的改變。例如,我們不妨保持 w'=1, b=0不變,而變換w的大小,其函數圖形的變化如圖3.6所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

由此可見,當w>0的時候,它的大小控制著函數的彎曲程度,w越大,它在0點附近的彎曲程度就會越大,因此從x=0的突變也就越劇烈;當w<0的時候,曲線發生了左右翻轉,它會從1突變到0。

再來看看參數b對曲線的影響,保持w=w'=1不變,如圖3.7所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

可以清晰地看到,b控制著sigmoid函數曲線的水平位置。b>0,函數圖形往左平移;反之往右平移。最後,讓我們看看w'如何影響該曲線,如圖3.8所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

不難看出,當w' > 0的時候,w'控制著曲線的高矮;當w' < 0的時候,曲線的方向發生上下顛倒。

可見,通過控制w、w'和b這3個參數,我們可以任意調節從輸入x到輸出y的函數形狀。但是,無論如何調節,這條曲線永遠都是S形(包括倒S形)的。要想得到更加複雜的函數圖像,我們需要引入更多的神經元。

兩個隱含層神經元

下面我們把模型做得更復雜一些,看看兩個隱含層神經元會對曲線有什麼影響,如圖3.9所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

輸入信號進入網絡之後就會兵分兩路,一路從左側進入第一個神經元,另一路從右側進入第二個神經元。這兩個神經元分別完成計算,並通過w'1和w'2進行加權求和得到y。所以,輸出y實際上就是兩個神經元的疊加。這個網絡仍然是一個將x映射到y的函數,函數方程為:

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

在這個公式中,有w1, w2, w'1, w'2, b1, b2這樣6個不同的參數。它們的組合也會對曲線的形狀有影響。

例如,我們可以取w1=w2=w'1=w'2=1,b1=-1,b2=0,則該函數的曲線形狀如圖3.10所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

由此可見,合成的函數圖形變為了一個具有兩個階梯的曲線。

讓我們再來看一個參數組合,w1=w2=1,b1=0,b2=-1,w'1=1,w'2=-1,則函數圖形如圖3.11所示。

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

由此可見,我們合成了一個具有單一波峰的曲線,有點類似於正態分佈的鐘形曲線。一般地,只要變換參數組合,我們就可以用兩個隱含層神經元擬合出任意具有單峰的曲線。

那麼,如果有4個或者6個甚至更多的隱含層神經元,不難想象,就可以得到具有雙峰、三峰和任意多個峰的曲線,我們可以粗略地認為兩個神經元可以用來逼近一個波峰(波谷)。事實上,對於更一般的情形,科學家早已從理論上證明,用有限多的隱含層神經元可以逼近任意的有限區間內的曲線,這叫作通用逼近定理(universal approximation theorem)。

本文節選自《深度學習原理與PyTorch實戰》

揭秘深度學習“黑箱”,瞭解神經網絡的運作原理

本書是一本系統介紹深度學習及開源框架PyTorch的入門書。全書注重實戰,每章圍繞一個有意思的實戰案例展開,不僅循序漸進地講解了PyTorch的基本使用、神經網絡的搭建、卷積神經網絡和循環神經網絡的實現,而且全面深入地介紹了計算機視覺、自然語言處理、遷移學習,以及對抗學習和深度強化學習等前沿技術。讀者通過閱讀本書,可以輕鬆入門深度學習,學會構造一個圖像識別器,生成逼真的圖畫,讓機器理解單詞與文本,讓機器作曲,教會機器玩遊戲,還可以實現一個簡單的機器翻譯系統。 本書適用於人工智能行業的軟件工程師、對人工智能感興趣的學生,也非常適合作為深度學習培訓教程。


分享到:


相關文章: