梳理數(shù)百個問題后,我總結出10個數(shù)據科學面試必掌握概念……
深度學習和神經網絡并不簡單,但好在面試官能測試的數(shù)量有限。在梳理了數(shù)百個數(shù)據科學面試問題之后,本文總結出了10個最常出現(xiàn)的深度學習概念。話不多說,讓我們開始吧!
1.激活函數(shù)(Activation Functions)
如果你對神經網絡及其結構的還沒有基本了解,那么建議閱讀Terence Shin的文章《神經網絡初學者指南》(“A Beginner-Friendly Explanation of How Neural Networks Work”)。
對神經元或節(jié)點有基本了解之后,你就會發(fā)現(xiàn)激活函數(shù)像電燈開關一樣,能夠決定是否激活神經元。
激活函數(shù)有幾種類型,但是最流行的激活函數(shù)是整流線性單元函數(shù),也稱為ReLU函數(shù)。ReLU函數(shù)優(yōu)于S型函數(shù)和雙曲正切函數(shù)函數(shù),因為它執(zhí)行梯度下降的速度更快。
請注意,在圖像中,當x(或z)很大時,斜率非常小,這會顯著減緩梯度下降,但這種情況不會出現(xiàn)在ReLU函數(shù)中。
2.代價函數(shù)(Cost Function)
神經網絡的代價函數(shù)類似于其他機器學習模型的成本函數(shù)。它衡量的是神經網絡的預測值與實際值相比有多“好”。代價函數(shù)與模型的質量成反比——模型質量越高,代價函數(shù)越低,反之亦然。
代價函數(shù)是最優(yōu)化值。通過縮小神經網絡的代價函數(shù),可以獲得模型的最佳權重和參數(shù),從而最大程度地發(fā)揮模型的性能。
有幾種常用的代價函數(shù),包括二次方代價(quadratic cost)、交叉熵成本(cross-entropy cost)、指數(shù)成本(exponential cost)、Hellinger distance、Kullback-Leibler散度等。
3.反向傳播算法(Backpropagation)
反向傳播算法是一種與成本函數(shù)密切相關的算法。具體來說,它是一種用于計算成本函數(shù)梯度的算法。與其他算法相比,反向傳播速度快、效率高,因而備受歡迎。
在這個算法中,梯度的計算從權重的最后一層的梯度開始,然后反向傳播到權重的第一層梯度。因此,第k層的誤差取決于k + 1層。“反向傳播”也因此得名。
通常,反向傳播的工作原理如下:
- 計算每個輸入-輸出對正向階段的損失函數(shù)
- 計算每對反向階段的損失函數(shù)
- 結合各個權重的梯度值
- 根據學習率和總梯度更新權重
4.卷積神經網絡(Convolutional Neural Networks)
卷積神經網絡(CNN)是一種神經網絡,它提取輸入信息(通常是圖像),按照重要程度將圖像的不同特征進行分類,然后輸出預測。CNN優(yōu)于前饋神經網絡的原因在于,它可以更好地捕獲整個圖像的空間(像素)依賴性,這意味著它可以更好地理解圖像的組成。
CNN使用一種稱為“卷積”的數(shù)學運算。維基百科這樣定義卷積:對兩個函數(shù)的數(shù)學運算產生了第三個函數(shù),該函數(shù)表示一個函數(shù)的形狀如何被另一個函數(shù)修改。因此,CNN在其至少一層中使用卷積代替通用矩陣乘法。
5.循環(huán)神經網絡(Recurrent Neural Networks)
循環(huán)神經網絡(RNN)是另一種神經網絡,能夠攝取各種大小的輸入信息,因此可與序列數(shù)據配合使用,效果極佳。RNN既考慮當前輸入也考慮先前給定的輸入,這意味著相同的輸入在技術上可以基于先前的給定輸入產生不同的輸出。
從技術上講,RNN是一種神經網絡,其中節(jié)點之間的連接沿時間序列形成有向圖,從而使它們可以使用其內部存儲器來處理可變長度的輸入序列。
6.長短期記憶網絡(Long Short-Term Memory Networks)
長短期記憶網絡(LSTM)是一種遞歸神經網絡,可彌補常規(guī)RNN的一大劣勢:短期記憶。
具體來說,如果序列太長,即滯后時間大于5-10個步長,則RNN傾向于忽略先前步驟中提供的信息。例如,如果我們將一個段落輸入RNN,則它可能會忽略該段落開頭提供的信息。為了解決這個問題,LSTM誕生了。
7.權重初始化(Weight Initialization)
權重初始化的要點是保證神經網絡不會收斂到無效解。如果權重全部初始化為相同的值(例如零),則每個單元將獲得完全相同的信號,并且每一層的輸出都是一樣的。
因此,你要隨機初始化權重,使其接近零,但不等于零。用于訓練模型的隨機優(yōu)化算法就要達到這樣效果。
8.批量梯度下降和隨機梯度下降(Batch vs. Stochastic Gradient Descent)
批量梯度下降和隨機梯度下降是用于計算梯度的兩種不同方法。
批量梯度下降僅使用整個數(shù)據集計算梯度。特別是對于較大的數(shù)據集,它要慢得多,但對于凸或平滑誤差流形來說效果更好。
在隨機梯度下降的情況下,一次使用單個訓練樣本來計算梯度。因此,它的計算速度更快且成本更低。然而,在這種情況下達到全局最優(yōu)值時,它趨向于反彈。這會產生好的解決方案,但不是最優(yōu)解決方案。
9.超參數(shù)(Hyper-parameters)
超參數(shù)既是調節(jié)網絡結構的變量,也是控制網絡訓練方式的變量。常見的超參數(shù)包括:
- 模型架構參數(shù),例如層數(shù),隱藏單元數(shù)等…
- 學習率(alpha)
- 網絡權重初始化
- 時期數(shù)(定義為整個訓練數(shù)據集中的一個周期)
- 批量
- 其他
10.學習率(Learning Rate)
學習率是神經網絡中使用的超參數(shù),每次更新模型權重時,神經網絡都會控制該模型響應估計的誤差調整模型的數(shù)量。
如果學習率太低,則模型訓練將進行得非常緩慢,因為每次迭代中對權重進行的更新最少。因此,在達到最低點之前需要進行多次更新。如果將學習率設置得太高,則由于權重的急劇更新,會對損失函數(shù)造成不良的發(fā)散行為,并且可能無法收斂。
以上就是深度學習中最常出現(xiàn)的10個概念。認真學習這10個概念,將有助于你在深度學習領域奠定堅實的基礎。希望這對你的面試有所幫助。
本文轉載自微信公眾號「讀芯術」,可以通過以下二維碼關注。轉載本文請聯(lián)系讀芯術公眾號。