深度學習專業詞彙解析

知名企業家、同時也是 NBA 小牛隊的老闆馬克·庫班(Mark Cuban)曾說過一句話:人工智能,深度學習和機器學習,不論你現在是否能夠理解這些概念,你都應該學習。否則三年內,你就會像滅絕的恐龍一樣被社會淘汰。馬克·庫班的這番話乍聽起來有些聳人聽聞,但仔細想想卻不無道理。我們正經歷一場大革命,這場革命就是由大數據和強大的電腦計算能力發起的。爲了更好地面對和適應這場革命,瞭解一下相關的概念已經十分有必要了。


讓我們花幾分鐘回想一下 20 世紀初的景象。那個時候很多人都不懂什麼是電,在過去幾十年,甚至幾百年的時間裏,人們一直沿用一種方式去做某件事情,但是突然間,好像身邊的一切都變了。

以前需要很多人才能做成的事情,現在只需要一個人應用電力就能做成。而我們現在就正在經歷相似的變革過程,今天這場變革的主角就是機器學習和深度學習。

如果你現在還不懂深度學習的巨大力量,那你真的要抓緊時間開始學啦!這篇文章就爲大家介紹了深度學習領域常用的一些術語和概念。現在就從神經網絡開始講起。

神經網絡基礎概念

1. 神經元

正如神經元是大腦的基本單位一樣,在神經網絡結構中,神經元也是一個小單位。大家不妨想象一下當我們接觸到新的信息時,大腦是如何運作的。

首先,我們會在腦中處理這個信息,然後產生輸出信息。在神經網絡中也是如此,神經元接收到一個輸入信息,然後對它進行加工處理,然後產生輸出信息,傳輸到其他神經元中進行進一步信息處理。


2. 權重

當輸入信息到達神經元時,它就會乘上一個權重。舉例來說,如果一個神經元包含兩個輸入信息,那麼每個輸入信息都被賦予它的關聯權重。我們隨機初始化權重,並在模型訓練過程中更新這些權重。

接受訓練後的神經網絡會賦予它認爲重要的輸入信息更高的權重值,而那些不重要的輸入信息權重值則會相對較小。權重值爲零就意味着這個特徵是無關緊要的。

我們不妨假設輸入信息爲 a,其關聯權重爲 W1,通過節點後,輸入信息變爲a*W1


3. 偏置

除了權重之外,輸入還有另一個線性分量,被稱爲偏置。輸入信息乘上權重後再加上偏置,用來改變權重乘輸入的範圍。加上偏置之後,結果就變爲 a*W1+bias,這就是輸入信息變換的最終線性分量。

4. 激活函數

線性分量應用可以到輸入信息,非線性函數也可以應用到輸入信息。這種輸入信息過程是通過激活函數來實現的。

激活函數將輸入信號翻譯成輸出信號。激活函數產生的輸出信息爲 f(a*W1+b) ,其中 f(x) 就是激活函數。

在下面的圖表中,我們可以看到,輸入信息數量爲 n,表示爲 X1 到 Xn,相應的權重爲 Wk1 到 Wkn。將偏置設爲 bk。權重乘以輸入信息,再加偏置,我們設所得的值爲 u:

u=∑w*x+b

將 u 帶入激活函數中,最後我們就可以得到從神經元輸出的 yk=f(u)


最常用的激活函數有 Sigmoid、ReLU 和 softmax。

  • Sigmoid——Sigmoid 是最常用的激活函數之一。它的定義爲:

sigmoid(x) = 1/(1+e-x)


Sigmoid 函數會生成 0 到 1 之間的更平滑的取值範圍。我們可能需要觀察輸出值的變化,同時輸入值也會略有變化。而平滑的曲線更方便我們觀察,因此它優於階梯函數(step functions)。

  • ReLU(線性修正單位)——不同於 Sigmoid 函數,現在的網絡更傾向於使用隱層 ReLu 激活函數。該函數的定義是:

f(x) = max(x,0)

當 X>0 時,函數的輸出爲 X,當 X<=0 時爲 0。該函數如下所示:


使用 ReLu 的好處主要是它對於大於 0 的所有輸入值都有對應的不變導數值。而常數導數值可以加快對網絡的訓練。

  • Softmax——Softmax 激活函數常用於輸出層的分類問題。它與 Sigmoid 函數類似,唯一的區別是在 Softmax 激活函數中,輸出被歸一化,總和變爲 1。

如果我們遇到的是二進制輸出問題,就可以使用 Sigmoid 函數,而如果我們遇到的是多類型分類問題,使用 Softmax 函數可以輕鬆地爲每個類型分配值,並且可以很容易地將這個值轉化爲概率。

這樣看可能更容易理解一些——假設你正在嘗試識別一個看起來像 8 實際爲 6 的數。該函數將爲每個數字賦值,如下所示。我們可以很容易地看出,最高概率被分配給了 6,下一個最高概率則分配給 8,依此類推……


5. 神經網絡

神經網絡是深度學習的主幹之一。神經網絡的目標是找到未知函數的一個近似值。它由相互聯繫的神經元組成。

這些神經元具有權重,並且會根據出錯情況,在網絡訓練期間更新偏置值。激活函數將非線性變換置於線性組合,之後生成輸出。被激活的神經元組合再產生輸出。

對神經網絡的定義中,以 Liping Yang 的最爲貼切:

神經網絡由許多相互關聯的概念化的人造神經元組成,這些人造神經元之間可以互相傳遞數據,並且具有根據網絡「經驗」調整的相關權重。

神經元具有激活閾值,如果結合相關權重組合並激活傳遞給他們的數據,神經元的激活閾值就會被解除,激活的神經元的組合就會開始「學習」。

6. 輸入層 / 輸出層 / 隱藏層

顧名思義,輸入層是接收輸入信號的一層,也是該網絡的第一層;輸出層則是傳遞輸出信號的一層,也是該網絡的最後一層。

處理層則是該網絡中的「隱含層」。這些「隱含層」將對輸入信號進行特殊處理,並將生成的輸出信號傳遞到下一層。輸入層和輸出層均是可見的,而其中間層則是隱藏起來的。


7. MLP(多層神經網絡)

單一神經元無法執行高度複雜的任務。因此,需要大量神經元聚集在一起才能生成我們所需要的輸出信號。

最簡單的網絡由一個輸入層、一個輸出層、一個隱含層組成,每一層上都有多個神經元,並且每一層上的神經元都和下一層上的神經元連接在了一起,這樣的網絡也被稱爲全互連網絡(Fully Connected Networks)。


8. 正向傳播(Forward Propagation)

正向傳播指的是輸入信號通過隱藏層傳遞到輸出層的傳遞過程。

在正向傳播中,信號僅沿單一方向向前正向傳播,輸入層將輸入信號提供給隱藏層,隱藏層生成輸出信號,這一過程中沒有任何反向移動。

9. 成本函數(Cost Function)

當我們建立一個網絡後,網絡將儘可能地使輸出值無限接近於實際值。我們用成本函數(或損失函數)來衡量該網絡完成這一過程的準確性。成本函數(或損失函數)將在該網絡出錯時,予以警告。

運行網絡時,我們的目標是:儘可能地提高我們的預測精度、減少誤差,由此最小化成本函數。最優化的輸出即當成本函數(或損失函數)爲最小值時的輸出。

若將成本函數定義爲均方誤差,則可寫成:

C= 1/m ∑(y – a)2

m 在這裏是訓練輸入值(Training Inputs),a 是預計值,y 是特定事例中的實際值。

學習過程圍繞着如何最小化成本。

10. 梯度下降(Gradient Descent)

梯度下降是一種成本最小化的優化算法。想象一下,當你下山時,你必須一小步一小步往下走,而不是縱身一躍跳到山腳。

因此,我們要做的是:比如,我們從 X 點開始下降,我們下降一點點,下降 ΔH,到現在的位置,也就是 X-ΔH,重複這一過程,直到我們到達「山腳」。「山腳」就是最低成本點。


從數學的角度來說,要找到函數的局部極小值,須採取與函數梯度負相關的「步子」,即:梯度下降法是用負梯度方向爲搜索方向的,梯度下降法越接近目標值,步長越小,前進越慢。


11. 學習速率(Learning Rate)


學習速率指每次迭代中對成本函數的最小化次數。簡單來說,我們把下降到成本函數最小值的速率稱爲學習率。選擇學習率時,我們必須非常小心,學習速率既不應過大——會錯過最優解,也不應過小——使網絡收斂將需要很多很多步、甚至永不可能。



12. 反向傳播(Back Propagation)


在定義一個神經網絡的過程中,每個節點會被隨機地分配權重和偏置。

一次迭代後,我們可以根據產生的結果計算出整個網絡的偏差,然後用偏差結合成本函數的梯度,對權重因子進行相應的調整,使得下次迭代的過程中偏差變小。

這樣一個結合成本函數的梯度來調整權重因子的過程就叫做反向傳播。在反向傳播中,信號的傳遞方向是朝後的,誤差連同成本函數的梯度從輸出層沿着隱藏層傳播,同時伴隨着對權重因子的調整。


13. 分批(Batches)


當我們訓練一個神經網路時,我們不應一次性發送全部輸入信號,而應把輸入信號隨機分成幾個大小相同的數據塊發送。

與將全部數據一次性送入網絡相比,在訓練時將數據分批發送,建立的模型會更具有一般性。


14. 週期(Epochs)


一個週期表示對所有的數據批次都進行了一次迭代,包括一次正向傳播和一次反向傳播,所以一個週期就意味着對所有的輸入數據分別進行一次正向傳播和反向傳播。

訓練網絡週期的次數是可以選擇的,往往週期數越高,模型的準確性就越高,但是,耗時往往就越長。同樣你還需要考慮如果週期 / 紀元的次數過高,那麼可能會出現過擬合的情況。


15. Dropout 方法


Dropout 是一個可以阻止網絡過擬合的規則化方法。就像它的名字那樣,在訓練過程中隱藏的某些特定神經元會被忽略掉(drop)。

這意味着網絡的訓練是在幾個不同的結構上完成的。這種 Dropout 的方式就像是一場合奏,多個不同結構網絡的輸出組合產生最終的輸出結果。



16. 分批標準化(Batch Normalization)


分批標準化就像是人們在河流中用以監測水位的監察站一樣。

這是爲了保證下一層網絡得到的數據擁有合適的分佈。在訓練神經網絡的過程中,每一次梯度下降後權重因子都會得到改變,從而會改變相應的數據結構。


但是下一層網絡希望能夠得到與之前分佈相似的數據,因此在每一次數據傳遞前都需要對數據進行一次正則化處理。


卷積神經網絡


17. 過濾器 / 濾波器(Filters)


CNN 中的濾波器,具體是指將一個權重矩陣乘以輸入圖像的一個部分,產生相應的卷積輸出。

比方說,對於一個 28×28 的圖片而言,將一個 3×3 的濾波器與圖片中 3×3 的矩陣依次相乘,從而得到相應的卷積輸出。

濾波器的尺寸通常比原始圖片要小,與權重相似,在最小化成本的反向傳播中,濾波器也會被更新。就像下面這張圖片一樣,通過一個過濾器,依次乘以圖片中每個 3×3 的分塊,從而產生卷積的結果。



18. 卷積神經網絡 CNN(Convolutional Neural Network)


卷積神經網絡通常用來處理圖像數據,假設輸入數據的形狀爲 28×28×3(28pixels × 28pixels × RGBValue),那麼對於傳統的神經網絡來說就會有 2352(28×28×3)個變量。隨着圖像尺寸的增加,那麼變量的數量就會急劇增加。

通過對圖片進行卷積,可以減少變量的數目(已在過濾器的概念中提及)。隨着過濾器沿着圖像上寬和高的兩個方向滑動,就會產生一個相應的 2 維激活映射,最後再沿縱向將所有的激活映射堆疊在一起,就產生了最後的輸出。

可以參照下面這個示意圖。



19. 池化(Pooling)


爲進一步減少變量的數目同時防止過擬合,一種常見的做法是在卷積層中引入池化層(Pooling Layer)。

最常用的池化層的操作是將原始圖片中每個 4×4 分塊取最大值形成一個新的矩陣,這叫做最大值池化(Max Pooling)。


也有人嘗試諸如平均池化(Average Pooling)之類的方式,但在實際情況中最大化池化擁有更好的效果。


20. 補白(Padding)


補白(Padding)通常是指給圖像的邊緣增加額外的空白,從而使得卷積後輸出的圖像跟輸入圖像在尺寸上一致,這也被稱作相同補白(Same Padding)。


如應用過濾器,在相同補白的情況下,卷積後的圖像大小等於實際圖像的大小。

有效補白(Valid Padding)指的是保持圖片上每個真實的像素點,不增加空白,因此在經歷卷積後數據的尺寸會不斷變小。


21. 數據增強(Data Augmentation)


數據增強指的是從已有數據中創造出新的數據,通過增加訓練量以期望能夠提高預測的準確率。

比如,在數字識別中,我們遇到的數字9可能是傾斜或旋轉的,因此如果將訓練的圖片進行適度的旋轉,增大訓練量,那麼模型的準確性就可能會得到提高。

通過「旋轉」「照亮」的操作,訓練數據的品質得到了提升,這種過程被稱作數據增強。


遞歸神經網絡


22. 遞歸神經元(Recurrent NeuralNetwork)


對於遞歸神經元來說,經由它自己處理過的數據會變成自身下一次的輸入,這個過程總共會進行 t 次。

如下圖所示,將遞歸神經元展開就相當於 t 個不同的神經元串聯起來,這種神經元的長處是能夠產生一個更全面的輸出結果。



23. 遞歸神經網絡(RNN-Recurrent NeuralNetwork)


遞歸神經網絡通常被用於處理序列化的數據,即前一項的輸出是用來預測下一項的輸入。

遞歸神經網絡通常被用於處理序列化的數據,即前一項的輸出是用來預測下一項的輸入。遞歸神經網絡中存在環的結構,這些神經元上的環狀結構使得它們能夠存儲之前的數據一段時間,從而使得能夠預測輸出。

與遞歸神經元相似,在 RNN 中隱含層的輸出會作爲下一次的輸入,如此往復經歷 t 次,再將輸出的結果傳遞到下一層網絡中。這樣,最終輸出的結果會更全面,而且之前訓練的信息被保持的時間會更久。

隱藏層將反向傳遞錯誤以更新權重。這被稱爲 backpropagation through time(BPTT)。


24. 梯度消失問題


當激活函數的梯度非常小時,會出現梯度消失問題。在反向傳播過程中,權重因子會被多次乘以這些小的梯度,因此會越變越小。隨着遞歸的深入趨於「消失」,神經網絡失去了長程可靠性。這在遞歸神經網絡中是一個較普遍的問題,對於遞歸神經網絡而言,長程可靠性尤爲重要。

這一問題可通過採用 ReLu 等沒有小梯度的激活函數來有效避免。


25. 梯度爆炸問題


梯度爆炸問題與梯度消失問題正好相反,梯度爆炸問題中,激活函數的梯度過大。

在反向傳播過程中,部分節點的大梯度使得他們的權重變得非常大,從而削弱了其他節點對於結果的影響,這個問題可以通過截斷(即設置一個梯度允許的最大值)的方式來有效避免。


寫在最後

本文對深度學習的基本概念做出了高度的概括,希望各位在閱讀這篇文章後,可以對這些概念有初步的瞭解。


作者:Dishashree Gupta
原題:25 Must Know Terms & concepts for Beginners in Deep Learning
出處:
http://t.cn/RaDutTf
轉載自「燈塔大數據(DTbigdata)」


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章