1.為什么必須在神經(jīng)網(wǎng)絡中引入非線性?
答:否則,我們將獲得一個由多個線性函數(shù)組成的線性函數(shù),那么就成了線性模型。線性模型的參數(shù)數(shù)量非常少,因此建模的復雜性也會非常有限。
2.說明解決神經(jīng)網(wǎng)絡中梯度消失問題的兩種方法。
答:
使用ReLU激活函數(shù)代替S激活函數(shù)。
使用Xavier初始化。
3.在圖像分類任務中,相較于使用密集神經(jīng)網(wǎng)絡(Dense Neural Network,DNN),使用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)有哪些優(yōu)勢?
答:雖然兩種模型都可以捕獲彼此靠近的像素之間的關(guān)系,但CNN具有以下屬性:
它是平移不變的:對于過濾器而言,像素的確切位置是無關(guān)的。
更不容易發(fā)生過度擬合:一般而言CNN中的參數(shù)比DNN要少很多。
方便我們更好地理解模型:我們可以查看過濾器的權(quán)重,并可視化神經(jīng)網(wǎng)絡的學習成果。
分層性質(zhì):通過使用較簡單的模式描述復雜的模式來學習模式。
4. 說明在圖像分類任務中可視化CNN特征的兩種方法。
答:
輸入遮擋:遮擋輸入圖像的一部分,看看哪部分對分類的影響最大。 例如,針對某個訓練好的圖像分類模型,將下列圖像作為輸入。如果我們看到第三幅圖像被分類為狗狗的概率為98%,而第二幅圖像的準確率僅為65%,則說明眼睛對于對分類的影響更大。
激活最大化:創(chuàng)建一個人造的輸入圖像,以最大化目標響應(梯度上升)。
5. 在優(yōu)化學習速率時,分別嘗試學習速率:0.1、0.2,…,0.5是好辦法嗎?
答:這種方法并不好,建議使用對數(shù)比例來優(yōu)化學習速率。
6. 假設一個神經(jīng)網(wǎng)絡擁有3層的結(jié)構(gòu)和ReLU激活函數(shù)。如果我們用同一個值初始化所有權(quán)重,結(jié)果會怎樣?如果我們只有1層(即線性/邏輯回歸)會怎樣?
答:如果所有權(quán)重的初始值都相同,則無法破壞對稱性。也就是說,所有梯度都會更新成同一個值,而且神經(jīng)網(wǎng)絡將無法學習。但是,如果神經(jīng)網(wǎng)絡只有1層的話,成本函數(shù)是凸形的(線性/ S型),因此權(quán)重始終會收斂到最佳點,無論初始值是什么(收斂可能會較慢)。
7.解釋Adam優(yōu)化器的概念。
答:Adam結(jié)合了兩個想法來改善收斂性:每個參數(shù)更新可加快收斂速度;動量可避免卡在鞍點上。
8.比較批處理,小批處理和隨機梯度下降。
答:批處理是指在估計數(shù)據(jù)時獲取整個數(shù)據(jù);小批處理是通過對幾個數(shù)據(jù)點進行采樣來進行小批量處理;而隨機梯度下降是指在每個時期更新一個數(shù)據(jù)點的梯度。我們需要權(quán)衡梯度計算的準確度與保存在內(nèi)存中的批量大小。此外,通過在每個epoch添加隨機噪聲,我們可以通過小批處理(而非整個批處理)實現(xiàn)正規(guī)化效果。
9.什么是數(shù)據(jù)擴充?舉個例子。
答:數(shù)據(jù)擴充是一種技術(shù),通過操作原始數(shù)據(jù)來增加輸入數(shù)據(jù)。例如,對于圖像,我們可以執(zhí)行以下操作:旋轉(zhuǎn)圖像、翻轉(zhuǎn)圖像、添加高斯模糊等。
10. 解釋GAN的概念。
答:GAN(Generative Adversarial Network)即生成對抗網(wǎng)絡,通常由兩個神經(jīng)網(wǎng)絡D和G組成,其中D指的是判別器(Discriminator),而G指生成網(wǎng)絡(Generative Network)。這種模型的目標是創(chuàng)建數(shù)據(jù),例如創(chuàng)建與真實圖像并無二樣的圖像。假設我們想要創(chuàng)建一只貓的對抗示例。神經(jīng)網(wǎng)絡G負責生成圖像,而神經(jīng)網(wǎng)絡D則負責判斷圖像是否是貓。G的目標是“愚弄”D——將G的輸出始終分類為貓。
11.使用Batchnorm有什么優(yōu)勢?
答:Batchnorm能夠加快訓練過程,而且(一些噪音的副產(chǎn)品)還具有調(diào)節(jié)作用。
12.什么是多任務學習?應該在什么時候使用?
答:當我們使用少量數(shù)據(jù)處理多個任務時,多任務處理將很有用,而且我們還可以使用在其他任務的大型數(shù)據(jù)集上訓練好的模型。通過“硬”方式(即相同的參數(shù))或“軟”方式(即對成本函數(shù)進行正則化/懲罰)共享模型的參數(shù)。
13.什么是端到端學習?列舉一些優(yōu)點。
答:端到端學習通常是一個模型,該模型能夠獲取原始數(shù)據(jù)并直接輸出所需的結(jié)果,而無需任何中間任務或功能工程。其優(yōu)點包括:無需手工構(gòu)建功能,而且通?梢越档推睢
14.如果在最后一層中,我們先使用ReLU激活函數(shù),然后再使用Sigmoid函數(shù),會怎樣?
答:由于ReLU始終會輸出非負結(jié)果,因此該神經(jīng)網(wǎng)絡會將所有輸入預測成同一個類別!
15.如何解決梯度爆炸的問題?
答:解決梯度爆炸問題的一個最簡單的方法就是梯度修剪,即當梯度的絕對值大于M(M是一個很大的數(shù)字)時,設梯度為±M。
16.使用批量梯度下降法時,是否有必要打亂訓練數(shù)據(jù)?
答:沒有必要。因為每個epoch的梯度計算都會使用整個訓練數(shù)據(jù),所以打亂順序也沒有任何影響。
17.當使用小批量梯度下降時,為什么打亂數(shù)據(jù)很重要?
答:如果不打亂數(shù)據(jù)的順序,那么假設我們訓練一個神經(jīng)網(wǎng)絡分類器,且有兩個類別:A和B,那么各個epoch中的所有小批量都會完全相同,這會導致收斂速度變慢,甚至導致神經(jīng)網(wǎng)絡對數(shù)據(jù)的順序產(chǎn)生傾向性。
18.列舉遷移學習的超參數(shù)。
答:保留多少層、添加多少層、凍結(jié)多少層。
19. 測試集上是否需要使用dropout?
答:不可以使用!dropout只能用于訓練集。dropout是訓練過程中應用的一種正則化技術(shù)。
20.說明為什么神經(jīng)網(wǎng)絡中的dropout可以作為正則化。
答:關(guān)于dropout的工作原理有幾種解釋。我們可以將其視為模型平均的一種形式:我們可以在每一步中“去掉”模型的一部分并取平均值。另外,它還會增加噪音,自然會產(chǎn)生調(diào)節(jié)的效果。最后,它還可以稀釋權(quán)重,從根本上阻止神經(jīng)網(wǎng)絡中神經(jīng)元的共適應。
21. 舉個適合多對一RNN架構(gòu)的例子。
答:例如:情緒分析,語音中的性別識別等。
22.我們什么時候不能使用BiLSTM?說明在使用BiLSTM我們必須做的假設。
答:在所有雙向模型中,我們都可以假設在給定的“時間”內(nèi)訪問序列的下一個元素。文本數(shù)據(jù)(例如情感分析、翻譯等)就是這種情況,而時間序列數(shù)據(jù)則不屬于這種情況。
23. 判斷對錯:將L2正則化添加到RNN有助于解決梯度消失的問題。
答:錯誤!添加L2正則化會將權(quán)重縮小為零,在某些情況下這實際上會讓梯度消失的問題更嚴重。
24. 假設訓練錯誤/成本很高,而且驗證成本/錯誤幾乎與之相等。這是什么意思?我們應該做些什么?
答:這表明欠擬合。我們可以添加更多參數(shù),增加模型的復雜性或減少正則化。
25. 說明為何L2正則化可以解釋為一種權(quán)重衰減。
答:假設我們的成本函數(shù)為C(w),我們再加上一個c|w|2。使用梯度下降時,迭代如下:
w = w -grad(C)(w) — 2cw = (1–2c)w — grad(C)(w)
在該等式中,權(quán)重乘以因子<1