深度學習面試必備的 25 個問題

深度學習面試必備的 25 個問題

作者 | Tomer Amit

出品 | CSDN(ID:CSDNnews)

在本文中,我將分享有關深度學習的25個問題,希望能夠幫助你為面試做好準備。

1.為什麼必須在神經網絡中引入非線性?

答:否則,我們將獲得一個由多個線性函數組成的線性函數,那麼就成了線性模型。線性模型的參數數量非常少,因此建模的複雜性也會非常有限。

2.說明解決神經網絡中梯度消失問題的兩種方法。

答:

  • 使用ReLU激活函數代替S激活函數。

  • 使用Xavier初始化。

3.在圖像分類任務中,相較於使用密集神經網絡(Dense Neural Network,DNN),使用卷積神經網絡(Convolutional Neural Network,CNN)有哪些優勢?

答:雖然兩種模型都可以捕獲彼此靠近的像素之間的關係,但CNN具有以下屬性:

  • 它是平移不變的:對於過濾器而言,像素的確切位置是無關的。

  • 更不容易發生過度擬合:一般而言CNN中的參數比DNN要少很多。

  • 方便我們更好地理解模型:我們可以查看過濾器的權重,並可視化神經網絡的學習成果。

  • 分層性質:通過使用較簡單的模式描述複雜的模式來學習模式。

4. 說明在圖像分類任務中可視化CNN特徵的兩種方法。

答:

  • 輸入遮擋:遮擋輸入圖像的一部分,看看哪部分對分類的影響最大。 例如,針對某個訓練好的圖像分類模型,將下列圖像作為輸入。如果我們看到第三幅圖像被分類為狗狗的概率為98%,而第二幅圖像的準確率僅為65%,則說明眼睛對於對分類的影響更大。

  • 激活最大化:創建一個人造的輸入圖像,以最大化目標響應(梯度上升)。

5. 在優化學習速率時,分別嘗試學習速率:0.1、0.2,…,0.5是好辦法嗎

答:這種方法並不好,建議使用對數比例來優化學習速率。

6. 假設一個神經網絡擁有3層的結構和ReLU激活函數。如果我們用同一個值初始化所有權重,結果會怎樣?如果我們只有1層(即線性/邏輯迴歸)會怎樣?

答:如果所有權重的初始值都相同,則無法破壞對稱性。也就是說,所有梯度都會更新成同一個值,而且神經網絡將無法學習。但是,如果神經網絡只有1層的話,成本函數是凸形的(線性/ S型),因此權重始終會收斂到最佳點,無論初始值是什麼(收斂可能會較慢)。

7.解釋Adam優化器的概念。

答:Adam結合了兩個想法來改善收斂性:每個參數更新可加快收斂速度;動量可避免卡在鞍點上。

8.比較批處理,小批處理和隨機梯度下降。

答:批處理是指在估計數據時獲取整個數據;小批處理是通過對幾個數據點進行採樣來進行小批量處理;而隨機梯度下降是指在每個時期更新一個數據點的梯度。我們需要權衡梯度計算的準確度與保存在內存中的批量大小。此外,通過在每個epoch添加隨機噪聲,我們可以通過小批處理(而非整個批處理)實現正規化效果。

9.什麼是數據擴充?舉個例子。

答:數據擴充是一種技術,通過操作原始數據來增加輸入數據。例如,對於圖像,我們可以執行以下操作:旋轉圖像、翻轉圖像、添加高斯模糊等。

10. 解釋GAN的概念。

答:GAN(Generative Adversarial Network)即生成對抗網絡,通常由兩個神經網絡D和G組成,其中D指的是判別器(Discriminator),而G指生成網絡(Generative Network)。這種模型的目標是創建數據,例如創建與真實圖像並無二樣的圖像。假設我們想要創建一隻貓的對抗示例。神經網絡G負責生成圖像,而神經網絡D則負責判斷圖像是否是貓。G的目標是“愚弄”D——將G的輸出始終分類為貓。

11.使用Batchnorm有什麼優勢?

答:Batchnorm能夠加快訓練過程,而且(一些噪音的副產品)還具有調節作用。

12.什麼是多任務學習?應該在什麼時候使用?

答:當我們使用少量數據處理多個任務時,多任務處理將很有用,而且我們還可以使用在其他任務的大型數據集上訓練好的模型。通過“硬”方式(即相同的參數)或“軟”方式(即對成本函數進行正則化/懲罰)共享模型的參數。

13.什麼是端到端學習?列舉一些優點。

答:端到端學習通常是一個模型,該模型能夠獲取原始數據並直接輸出所需的結果,而無需任何中間任務或功能工程。其優點包括:無需手工構建功能,而且通常可以降低偏差。

14.如果在最後一層中,我們先使用ReLU激活函數,然後再使用Sigmoid函數,會怎

樣?

答:由於ReLU始終會輸出非負結果,因此該神經網絡會將所有輸入預測成同一個類別!

15.如何解決梯度爆炸的問題?

答:解決梯度爆炸問題的一個最簡單的方法就是梯度修剪,即當梯度的絕對值大於M(M是一個很大的數字)時,設梯度為±M。

16.使用批量梯度下降法時,是否有必要打亂訓練數據?

答:沒有必要。因為每個epoch的梯度計算都會使用整個訓練數據,所以打亂順序也沒有任何影響。

17.當使用小批量梯度下降時,為什麼打亂數據很重要?

答:如果不打亂數據的順序,那麼假設我們訓練一個神經網絡分類器,且有兩個類別:A和B,那麼各個epoch中的所有小批量都會完全相同,這會導致收斂速度變慢,甚至導致神經網絡對數據的順序產生傾向性。

18.列舉遷移學習的超參數。

答:保留多少層、添加多少層、凍結多少層。

19. 測試集上是否需要使用dropout?

答:不可以使用!dropout只能用於訓練集。dropout是訓練過程中應用的一種正則化技術。

20.說明為什麼神經網絡中的dropout可以作為正則化。

答:關於dropout的工作原理有幾種解釋。我們可以將其視為模型平均的一種形式:我們可以在每一步中“去掉”模型的一部分並取平均值。另外,它還會增加噪音,自然會產生調節的效果。最後,它還可以稀釋權重,從根本上阻止神經網絡中神經元的共適應。

21. 舉個適合多對一RNN架構的例子。

答:例如:情緒分析,語音中的性別識別等。

22.我們什麼時候不能使用BiLSTM?說明在使用BiLSTM我們必須做的假設。

答:在所有雙向模型中,我們都可以假設在給定的“時間”內訪問序列的下一個元素。文本數據(例如情感分析、翻譯等)就是這種情況,而時間序列數據則不屬於這種情況。

23. 判斷對錯:將L2正則化添加到RNN有助於解決梯度消失的問題。

答:錯誤!添加L2正則化會將權重縮小為零,在某些情況下這實際上會讓梯度消失的問題更嚴重。

24. 假設訓練錯誤/成本很高,而且驗證成本/錯誤幾乎與之相等。這是什麼意思?我們應該做些什麼?

答:這表明欠擬合。我們可以添加更多參數,增加模型的複雜性或減少正則化。

25. 說明為何L2正則化可以解釋為一種權重衰減。

答:假設我們的成本函數為C(w),我們再加上一個c|w|2。使用梯度下降時,迭代如下:

w = w -grad(C)(w) — 2cw = (1–2c)w — grad(C)(w)

在該等式中,權重乘以因子<1

原文:https://towardsdatascience.com/50-deep-learning-interview-questions-part-1-2-8bbc8a00ec61

本文為 CSDN 翻譯,轉載請註明來源出處。


分享到:


相關文章: