什麼是Adam/ReLU/YOLO?這裡有一份深度學習(.ai)詞典
編者按:入門深度學習的方法有很多,其中最便捷的是線上課程。但是,從做出這項選擇起,新手要面臨的就不僅是全新的知識體系,還有無數的陌生術語。在開始閱讀前,請自問自答:什麼是Adam、ReLU、YOLO?什麼是AdaGrad、Dropout、Xavier Initialization?如果發現這很困難,請跟隨Jan Zawadzki的腳步,有條理地去回顧自己的記憶碎片。
本文旨在解釋深度學習的一些常用術語,尤其是吳恩達在deeplearning.ai的Coursera課程中會頻繁提到的重要詞彙。每個詞條包含意義闡釋、圖片和相關連結(公眾號讀者請點選原文檢視),希望能對深度學習初學者和從業者有所幫助。
Activation Function(啟用函式)
啟用函式的作用是對輸入執行非線性變換,將輸入乘以權重並新增到偏置項中。目前最常用的啟用函式有ReLU、tanh和sigmoid。
Adam Optimization (Adam優化)
Adam優化可以代替隨機梯度下降,用來迭代調整網路權重。根據論文Adam: A Method for Stochastic Optimization的說法,Adam在計算上是高效的,適用於大資料集,並且幾乎不需要超引數調整。它也沒有預定義的、固定的學習率,而是採用自適應學習率。在實際應用中,Adam現在是深度學習模型中的一種預設優化演算法。
Adaptive Gradient Algorithm (自適應梯度演算法)
AdaGrad是一種梯度下降優化演算法,它根據引數在訓練期間的更新頻率進行自適應調整,更新幅度小、頻率快。它在非常稀疏的資料集上表現良好,如用於在自然語言處理任務中調整詞嵌入。相關論文:Adaptive Subgradient Methods for Online Learning and Stochastic Optimization。
Average Pooling(平均池化)
平均池化指的是對卷積操作的結果計算平均值,並把這個值作為影象區域池化後的值。它通常用於縮小輸入的大小,主要出現在比較老的卷積神經網路體系結構中,在現在流行的CNN裡,更常見的是maximum pooling(最大池化)。
AlexNet
AlexNet是一個流行的CNN架構,有八層,它比LeNet更廣泛,因此訓練用時也更長。2012年,AlexNet贏得了ImageNet影象分類挑戰。相關論文:ImageNet Classification with Deep Convolutional Neural Networks。
Backpropagation(反向傳播)
反向傳播是一種用於調整網路權重以最小化神經網路損失函式的常用方法,它在神經網路中從後向前計算,通過對每個啟用函式進行梯度下降重新調整權重。
Batch Gradient Descent(BGD)
BGD是一種常規的梯度下降優化演算法,它更新的是整個訓練集的引數。在更新引數前,它必須計算整個訓練集的梯度,因此如果資料集很大,BGD可能會很慢。
Batch Normalization
Batch Normalization指的是把神經網路層中的值歸一化為0到1之間的值,方便更快訓練神經網路。
Bias (偏差)
當模型在訓練集上精度欠佳時,它被稱為欠擬合。當模型具有高偏差時,它通常不會在測試集上又高準確率。
Classification (分類)
分類指目標變數屬於不同的類,它們不是連續變數。常見的分類任務有影象分類、欺詐檢測、自然語言處理的某些問題等。
Convolution (卷積)
卷積指的是將輸入與filter相乘的操作。它是卷積神經網路的基礎,在識別影象中的邊緣和物體方面表現出色。
Cost Function (損失函式)
損失函式又稱loss function,指的是模型的輸出與實際情況之間的差異,這是深度神經網路學習的關鍵要素之一,因為它們構成了引數更新的基礎。通過將前向傳播的結果與真實結果相比較,神經網路能相應地調整網路權重以最小化損失函式,從而提高準確率。常用的損失函式有均方根誤差。
Deep Neural Network(深度神經網路)
深度神經網路是具有許多隱藏層(通常超過5層)的神經網路,但具體以多少層為界,學界還沒有定義。這是機器學習演算法的一種強大形式,它在自動駕駛、發現行星等任務中已有應用。
Derivative (導數)
數是特定點處函式的斜率。計算導數的作用是用梯度下降演算法將權重引數調整到區域性最小值。
Dropout
Dropout是一種在深度神經網路中隨機消除節點及其連線的正則化技術。它可以防止模型過擬合,同時加快深度神經網路的訓練速度。每次更新引數時,Dropout會在訓練期間丟棄不同的節點,這就迫使相鄰節點之間避免過多依賴,並始終保持自身的正確表示。它已經在一些分類任務上明顯改善了模型精度,相關論文:Dropout: A Simple Way to Prevent Neural Networks from Overfitting。
End-to-End Learning (端到端學習)
端到端學習指的是演算法能夠自行解決整個任務,不需要額外的人為干預(如模型切換或新資料標記)。案例:NVIDIA前年發表了一篇論文End to End Learning for Self-Driving Cars,他們訓練了一個只需根據單個前置攝像頭的原始影象就能讓自動駕駛汽車自行轉向的CNN。
Epoch
一個Epoch表示訓練集中的每個樣本都已經進行過一次完整的前向傳播和反向傳播。單個Epoch涉及每個訓練樣本的迭代。
Forward Propagation (前向傳播)
前向傳播就是資料被輸入神經網路後,經過隱藏層、啟用函式,最後形成輸出的過程。當節點權重經過訓練後,前向傳播能預測輸入樣本的結果。
Fully-Connected layer (全連線層)
全連線層指的是和上一層的節點完全連線的神經網路層,它把上一層的輸出作為輸入,並用其權重轉換輸入,將結果傳遞給下一層。
Gated Recurrent Unit(GRU)
GRU是RNN的一種,主要用於自然語言處理任務,作用是對給定輸入進行多次變換。和LSTM一樣,GRU可以避免RNN中的梯度消失問題,不同的是它只有兩個門(沒有遺忘門),因此在實現類似效能時計算效率更高。相關論文:Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation。
Human-Level Performance
Human-Level Performance從字面上理解就是人類級別的表現,它表示一組人類專家的最佳表現。作為神經網路效能的一種常用衡量標準,人類表現在改進神經網路的過程中一直髮揮著作用。
Hyperparameters (超引數)
超引數決定的神經網路的效能,常見的超引數有學習率、梯度下降迭代次數、隱藏層的數量和啟用函式。不要將DNN自學的引數、權重和超引數混淆。
ImageNet
ImageNet是一個包含上千個影象及其註釋的資料集,它是非常有用的影象分類任務資源。
Iteration (迭代)
迭代指的是神經網路前向傳播和反向傳播的總次數。例如,假設你的訓練集有5個batch,一共訓練了2個epoch,那麼你就一共進行了10次迭代。
Gradient Descent (梯度下降)
梯度下降是一種幫助神經網路決定如何調整引數以最小化損失函式的方法。我們可以用它重複調整引數,直到找到全域性最小值。CSDN上翻譯了Sebastian Ruder的《梯度下降優化演算法綜述》,非常值得閱讀。
Layer
Layer指的是一組轉換輸入的啟用函式。如下圖所示,神經網路通常會使用多個隱藏層來建立輸出,常見的有輸入層、隱藏層和輸出層。
Learning Rate Decay(學習率衰減)
學習率衰減指的是在訓練期間改變神經網路的學習率,它反映了學習的靈活性。在深度學習實踐中,隨著訓練進行,學習率一般是逐漸衰減的。
Maximum Pooling(最大池化)
最大池化表示只選擇特定輸入區域的最大值,它通常用於CNN。以減小輸入的大小。
Long Short-Term Memory(LSTM)
LSTM是一種特殊的RNN,能夠學習輸入的上下文。當相應的輸入遠離彼此時,常規RNN會存在梯度消失問題,而LSTM可以學習這些長期依賴性。相關論文:LONG SHORT-TERM MEMORY。
Mini-Batch Gradient Descent
Mini-Batch Gradient Descent是一種優化演算法,它先把訓練資料分成一系列子集,再在上面進行梯度下降。由於這個過程是可以並行的,各個worker可以同時分別迭代不同的mini batch,因此它計算效率更高、收斂更穩健,是batch和SGD的一種有效組合。
Momentum(動量)
Momentum也是一種梯度下降優化演算法,用於平滑隨機梯度下降法的振盪。它先計算先前採取的步驟的方向的平均方向,並在此方向上調整引數更新。這一術語來自經典物理學中的動量概念,當我們沿著一座小山坡向下扔球時,球在沿著山坡向下滾動的過程中收集動量,速度不斷增加。引數更新也是如此。
Neural Network(神經網路)
神經網路是一種轉換輸入的機器學習模型,最基礎的NN具有輸入層、隱藏層和輸出層,隨著技術的不斷髮展,它現在已經成為查詢資料中複雜模式的首選工具。
Non-Max Suppression(非極大抑制)
非極大抑制是物體檢測領域的一種常用演算法,它也是YOLO的一部分。它能消除多餘的框,找到最佳的物體檢測的位置。相關論文:Learning non-maximum suppression。
Recurrent Neural Networks (RNN)
RNN允許神經網路“理解”語音、文字和音樂的上下文。它通過讓資訊迴圈通過網路,從而在較早和較晚的層之間保持輸入的重要特徵。
ReLU
ReLU是一個簡單的線性變換單元,如果輸入小於零,則輸出為零,否則輸出等於輸入。它通常是現在首選的啟用函式,可以幫助更快地訓練。
Regression(迴歸)
和分類相對應,迴歸也是統計學習的一種形式,只不過它的輸出是連續的變數,而不是分類值。分類為輸入變數分配了一個類,但迴歸為輸入變數分配的是無限多個可能的值,而且它通常是一個數字。常見的迴歸任務有房價預測和客戶年齡預測。
Root Mean Squared Propagation(RMSProp)
RMSProp隨機梯度下降優化方法的擴充套件,它以每個引數的學習率為特徵,根據引數在先前迭代中的變化速度來調整學習率。
Parameters (引數)
引數即在應用啟用函式之前轉換輸入的DNN的權重。神經網路的每一層都有自己的一組引數。利用反向傳播演算法,我們可以通過調整引數最小化損失函式。
Softmax
Softmax函式,或稱歸一化指數函式,是邏輯函式的一種推廣,常用於DNN的最後一層。它的本質就是將一個K維的任意實數向量壓縮(對映)成另一個K維的實數向量,其中向量中的每個元素取值都介於(0,1)之間。它非常適合有兩個以上輸出的分類任務。

Stochastic Gradient Descent (隨機梯度下降)
隨機梯度下降法是梯度下降法在機器學習領域的一個變種,它通過抽樣的梯度來近似表示真實的梯度,從而避免大量的計算。
Supervised Learning(監督學習)
監督學習是機器學習的一種形式,其中每個輸入樣本都包含經註釋的標籤。這些標籤的作用是將DNN的輸出和真實結果做對比,並最小化損失函式。
Transfer Learning (遷移學習)
遷移學習是一種將一個神經網路的引數用於不同任務而無需重新訓練整個網路的技術。它的具體方法是使用先前訓練過的網路中的權重並刪除輸出層,然後用你自己的softmax或logistic圖層替換最後一層,再次訓練網路。之所以有效,是因為較低的層通常會檢測到類似的邊緣,這些邊緣對其他影象分類任務也是有效的。
Unsupervised Learning(無監督學習)
無監督學習也是機器學習的一種形式,但是它的輸出類是未知的。常見的無監督學習方法有GAN和VAE。
Validation Set(驗證集)
驗證集通常被用於尋找深度神經網路的最佳超引數。訓練好DNN後,我們可以在驗證集上測試不同的超引數組合,然後選擇效能最好的組合在測試集上做最終預測。在使用過程中,注意平衡各集的資料佔比,比如在有大量資料可用的情況下,訓練集的資料佔比應該高達99%,而驗證集合測試集應該各佔0.5%。
Vanishing Gradients(梯度消失)
梯度消失是神經網路到達一定深度後會出現的問題。在反向傳播中,權重根據其梯度或衍生物進行調整,但在深度神經網路中,較早層的梯度可能會變得非常小,以至於權重根本不會更新。避免這個問題的一種做法是使用ReLU啟用函式。
Variance(方差)
當DNN過擬合訓練資料時,我們稱這之中存在方差。DNN無法將噪聲與模式區分開來,並對訓練資料中的每個方差進行建模,具有高方差的模型通常無法準確推廣到新資料。
VGG-16
VGG-16是一種CNN流行網路架構,它簡化了AlexNet,總共有16層。一些研究已經證實,許多經預訓練的VGG模型可以通過遷移學習被用於其他新任務。
Xavier Initialization (Xavier初始化)
Xavier初始化是我們在自編碼器中會使用到一種引數初始化方法,它在第一個隱藏層中分配起始權重,以便輸入訊號深入神經網路。之後,它再根據節點和輸出的數量來衡量權重,從而防止訊號在網路中變得太小或太大。
YOLO
YOLO是是目前比較流行的物件檢測演算法,它把物體檢測問題處理成迴歸問題,用一個卷積神經網路結構就可以從輸入影象直接預測bounding box和類別概率。相關論文:YOLO9000: Better, Faster, Stronger。
希望本文能幫助你更深入地理解深度學習世界中使用的術語,在學習Coursera課程時,有需要的讀者不妨把這篇文章放在一旁,更專業、更高效地掌握老師教授的內容。
原文地址:towardsdatascience.com/the-deep-learning-ai-dictionary-ade421df39e4
原文釋出時間為:2018-09-26
本文作者:Jan Zawadzki
本文來自雲棲社群合作伙伴“ ofollow,noindex">深度學習自然語言處理 ”,瞭解相關資訊可以關注“ 深度學習自然語言處理 ”