面試必備問題集錦

墳刳忍純瓤發表於2021-04-14

  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

       今天就到這裡,後面有機會再整理一下大家吧!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69920915/viewspace-2767933/,如需轉載,請註明出處,否則將追究法律責任。

相關文章