深度學習面試大題

深度學習面試大題

文章目錄:


由於目錄比較長,一個一個手寫比較麻煩,手寫了幾行代碼,自動生成目錄

目錄結構:

## 1、
## 2、
...
...
## 70、

自動生成代碼:

def build_catalog(start, end):
    with open('catalog.txt', 'w', encoding='utf-8') as f:
        for i in range(start, end):
            f.write('## ' + str(i + 1) + '、\n')

if __name__ == '__main__':
    build_catalog(0, 70)

1、談談深度學習中的歸一化問題。


2、CNN的卷積核是單層的還是多層的?

  一般而言,深度卷積網絡是一層又一層的。層的本質是特徵圖(例如輸入的RGB三通道的圖片,可以看成是3張個feature map特徵圖), 存貯輸入數據或其中間表示值。一組卷積核則是聯繫前後兩層的網絡參數表達體(卷積之後又會得到新feature map,不斷的提取更多的特徵), 訓練的目標就是每個卷積核的權重參數組。

  至於卷積核是多層還是單層的,這個要看上一層的feature map的數量是多少,例如,輸入是RGB三通道圖片(3個feature map),那麼卷積核的層數也是3(這裏的層數其實就是指filter 的channel,而不是卷積核的個數,這個要分清楚)

  下面我畫了一張圖簡要說明一下:
(feature map 和 kernel 中的值我沒有填充,各位好漢自行腦補吧)
在這裏插入圖片描述


3、什麼是卷積?

  對圖像(不同的數據窗口數據)和濾波矩陣(卷積核)(一組固定的權重:因爲每個神經元的多個權重固定,所以又可以看做一個恆定的濾波器filter)做內積(逐個元素相乘再求和)的操作就是所謂的『卷積』操作,也是卷積神經網絡的名字來源。


4、什麼是CNN的池化pool層?

首相說明池化分成兩種:

  • 1、平均池化
  • 2、最大池(比較常用)
      什麼是池化層,這個問題還是很好回答的,簡而言之就是可視野中的平均值或最大值,如下圖所示:
    在這裏插入圖片描述
      圖所展示的是取區域最大,即上圖左邊部分中 左上角2x2的矩陣中6最大,右上角2x2的矩陣中8最大,左下角2x2的矩陣中3最大,右下角2x2的矩陣中4最大,所以得到上圖右邊部分的結果:6 8 3 4。

   池化的主要作用是降維


5、簡述什麼是生成對抗網絡

GAN: Generative Adversarial Nets
  GAN之所以是對抗的,是因爲GAN的內部是競爭關係,一方叫generator,它的主要工作是生成圖片,並且儘量使得其看上去是來自於訓練樣本的。另一方是discriminator,其目標是判斷輸入圖片是否屬於真實訓練樣本

  更直白的講,將generator想象成假幣制造商,而discriminator是警察。generator目的是儘可能把假幣造的跟真的一樣,從而能夠騙過discriminator,即生成樣本並使它看上去好像來自於真實訓練樣本一樣。

更多有關GAN的內容不做展開講述


6、梵高作畫的原理是什麼?

  梵高作畫背後的原理其實就把一張具有梵高風格的圖片中的風格遷移到一張普通的內容圖片中去,這就是風格遷移,有關風格遷移的相關原理可以參考:


7、請簡要介紹下tensorflow的計算圖

  Tensorflow是一個通過計算圖的形式來表述計算的編程系統,計算圖也叫數據流圖,可以把計算圖看做是一種有向圖,Tensorflow中的每一個節點都是計算圖上的一個Tensor, 也就是張量,而節點之間的邊描述了計算之間的依賴關係(定義時)和數學操作(運算時)。如下兩圖表示:
a=x*y; b=a+z; c=tf.reduce_sum(b);


8、你有哪些深度學習(rnn、cnn)調參的經驗?

下面的解析進攻參考:
一、參數初始化

  下面幾種方式,隨便選一個,結果基本都差不多。但是一定要做。否則可能會減慢收斂速度,影響收斂結果,甚至造成Nan等一系列問題。
下面的n_in爲網絡的輸入大小,n_out爲網絡的輸出大小,n爲n_in或(n_in+n_out)*0.5
Xavier初始法論文:http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf

He初始化論文:https://arxiv.org/abs/1502.01852
A)uniform均勻分佈初始化:w = np.random.uniform(low=-scale, high=scale, size=[n_in,n_out])
①Xavier初始法,適用於普通激活函數(tanh,sigmoid):scale = np.sqrt(3/n)
②He初始化,適用於ReLU:scale = np.sqrt(6/n)

B)normal高斯分佈初始化:w = np.random.randn(n_in,n_out) * stdev # stdev爲高斯分佈的標準差,均值設爲0
①Xavier初始法,適用於普通激活函數 (tanh,sigmoid):stdev = np.sqrt(n)
②He初始化,適用於ReLU:stdev = np.sqrt(2/n)

C)svd初始化:對RNN有比較好的效果。參考論文:https://arxiv.org/abs/1312.6120

二、數據預處理方式

  zero-center ,這個挺常用的.X -= np.mean(X, axis = 0) # zero-centerX /= np.std(X, axis = 0) # normalize
PCA whitening,這個用的比較少.

三、訓練技巧

  要做梯度歸一化,即算出來的梯度除以minibatch size clip c(梯度裁剪): 限制最大梯度,其實是value =sqrt(w12+w22….),如果value超過了閾值,就算一個衰減繫系數,讓value的值等於閾值: 5,10,15

  dropout對小數據防止過擬合有很好的效果,值一般設爲0.5,小數據上dropout+sgd在我的大部分實驗中,效果提升都非常明顯.因此可能的話,建議一定要嘗試一下。 dropout的位置比較有講究, 對於RNN,建議放到輸入->RNN與RNN->輸出的位置.關於RNN如何用dropout,可以參考這篇論文:http://arxiv.org/abs/1409.2329

  adam,adadelta等,在小數據上,我這裏實驗的效果不如sgd, sgd收斂速度會慢一些,但是最終收斂後的結果,一般都比較好。如果使用sgd的話,可以選擇從1.0或者0.1的學習率開始,隔一段時間,在驗證集上檢查一下,如果cost沒有下降,就對學習率減半. 我看過很多論文都這麼搞,我自己實驗的結果也很好. 當然,也可以先用ada系列先跑,最後快收斂的時候,更換成sgd繼續訓練.同樣也會有提升.據說adadelta一般在分類問題上效果比較好,adam在生成問題上效果比較好。

  除了gate之類的地方,需要把輸出限制成0-1之外,儘量不要用sigmoid,可以用tanh或者relu之類的激活函數.1. sigmoid函數在-4到4的區間裏,纔有較大的梯度。之外的區間,梯度接近0,很容易造成梯度消失問題。2. 輸入0均值,sigmoid函數的輸出不是0均值的。
  rnn的dim和embdding size,一般從128上下開始調整. batch size,一般從128左右開始調整.batch size合適最重要,並不是越大越好.

  word2vec初始化,在小數據上,不僅可以有效提高收斂速度,也可以可以提高結果.

四、儘量對數據做shuffle

  LSTM 的forget gate的bias,用1.0或者更大的值做初始化,可以取得更好的結果,來自這篇論文:http://jmlr.org/proceedings/papers/v37/jozefowicz15.pdf, 我這裏實驗設成1.0,可以提高收斂速度.實際使用中,不同的任務,可能需要嘗試不同的值.

  Batch Normalization據說可以提升效果,不過我沒有嘗試過,建議作爲最後提升模型的手段,參考論文:Accelerating Deep Network Training by Reducing Internal Covariate Shift如果你的模型包含全連接層(MLP),並且輸入和輸出大小一樣,可以考慮將MLP替換成Highway Network,我嘗試對結果有一點提升,建議作爲最後提升模型的手段,原理很簡單,就是給輸出加了一個gate來控制信息的流動,詳細介紹請參考論文: http://arxiv.org/abs/1505.00387
來自@張馨宇的技巧:一輪加正則,一輪不加正則,反覆進行。

五、Ensemble
  Ensemble是論文刷結果的終極核武器,深度學習中一般有以下幾種方式
同樣的參數,不同的初始化方式
不同的參數,通過cross-validation,選取最好的幾組
同樣的參數,模型訓練的不同階段,即不同迭代次數的模型。
不同的模型,進行線性融合. 例如RNN和傳統模型.
更多深度學習技巧,請參見專欄:煉丹實驗室 - 知乎專欄(鏈接:https://zhuanlan.zhihu.com/easyml)

本解析一來源@蕭瑟,鏈接:https://www.zhihu.com/question/41631631/answer/94816420


9、CNN最成功的應用是在CV,那爲什麼NLP和Speech的很多問題也可以用CNN解出來?爲什麼AlphaGo裏也用了CNN?這幾個不相關的問題的相似性在哪裏?CNN通過什麼手段抓住了這個共性?

  1. 以上幾個不相關問題的相關性:

  都存在局部與整體的關係,由低層次的特徵經過組合,組成高層次的特徵,並且得到不同特徵之間的空間相關性(每一特徵對應汽車的位置)。如下圖:低層次的直線/曲線等特徵,組合成爲不同的形狀,最後得到汽車的表示。
在這裏插入圖片描述
2、以上幾個不相關問題的共同性:

  CNN抓住此共性的手段主要有四個:

  • 局部連接
  • 權值共享
  • 池化操作
  • 多層次結構。

  局部連接使網絡可以提取數據的局部特徵;權值共享大大降低了網絡的訓練難度,一個Filter只提取一個特徵,在整個圖片(或者語音/文本) 中進行卷積;池化操作與多層次結構一起,實現了數據的降維,將低層次的局部特徵組合成爲較高層次的特徵,從而對整個圖片進行表示。如下圖:
在這裏插入圖片描述
上圖中,如果每一個點的處理使用相同的Filter,則爲全卷積,如果使用不同的Filter,則爲Local-Conv。


10、LSTM結構推導,爲什麼比RNN好?

  推導forget gateinput gatecell statehidden information等的變化;因爲LSTM有進有出且當前的cell informaton是通過input gate控制之後疊加的,RNN是疊乘,因此LSTM可以防止梯度消失或者爆炸


11、Sigmoid、Tanh、ReLu這三個激活函數有什麼缺點或不足,有沒改進的激活函數

  下面用一張圖列舉如下:
在這裏插入圖片描述

12、爲什麼引入非線性激勵函數?

  第一,對於神經網絡來說,網絡的每一層相當於f(wx+b)=f(w’x),對於線性函數,其實相當於f(x)=x,那麼在線性激活函數下,每一層相當於用一個矩陣去乘以x,那麼多層就是反覆的用矩陣去乘以輸入。根據矩陣的乘法法則,多個矩陣相乘得到一個大矩陣。所以線性激勵函數下多層網絡與一層網絡相當。比如,兩層的網絡f(W1*f(W2x))=W1W2x=Wx。

  第二,非線性變換是深度學習有效的原因之一。原因在於非線性相當於對空間進行變換,變換完成後相當於對問題空間進行簡化,原來線性不可解的問題現在變得可以解了。

  下圖可以很形象的解釋這個問題,左圖用一根線是無法劃分的。經過一系列變換後,就變成線性可解的問題了。
在這裏插入圖片描述
  如果不用激勵函數(其實相當於激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。

  正因爲上面的原因,我們決定引入非線性函數作爲激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合可以逼近任意函數)。最早的想法是sigmoid函數或者tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋)。

13、請問人工神經網絡中爲什麼ReLu要好過於tanh和sigmoid function?

先看sigmoid、tanh和RelU的函數圖:在這裏插入圖片描述
  第一,採用sigmoid等函數,算激活函數時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法和指數運算,計算量相對大,而採用Relu激活函數,整個過程的計算量節省很多。

  第二,對於深層網絡sigmoid函數反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨於0,這種情況會造成信息丟失),這種現象稱爲飽和,從而無法完成深層網絡的訓練。而ReLU就不會有飽和傾向,不會有特別小的梯度出現。

  第三,Relu會使一部分神經元的輸出爲0,這樣就造成了網絡的稀疏性,並且減少了參數的相互依存關係,緩解了過擬合問題的發生(以及一些人的生物解釋balabala)。當然現在也有一些對relu的改進,比如prelu,random relu等,在不同的數據集上會有一些訓練速度上或者準確率上的改進,具體的大家可以找相關的paper看。

  多加一句,現在主流的做法,會多做一步batch normalization,儘可能保證每一層網絡的輸入具有相同的分佈[1]。而最新的paper[2],他們在加入bypass connection之後,發現改變batch normalization的位置會有更好的效果。

14、爲什麼LSTM模型中既存在sigmoid又存在tanh兩種激活函數,而不是選擇統一一種sigmoid或者tanh?這樣做的目的是什麼?

在這裏插入圖片描述
  sigmoid用在了各種gate上,產生0~1之間的值,這個一般只有sigmoid最直接了,相當於要麼是1則記住,要麼是0則忘掉。

  tanh用在了狀態和輸出上,是對數據的處理,這個用其他激活函數或許也可以。

15、如何解決RNN梯度爆炸和彌散的問題?

  1. RNN梯度爆炸解決方法:
  • 採用梯度截斷

  爲了解決梯度爆炸問題,Thomas Mikolov首先提出了一個簡單的啓發性的解決方案,就是當梯度大於一定閾值的時候,將它截斷爲一個較小的數。具體如算法1所述:
算法:當梯度爆炸時截斷梯度(僞代碼)
在這裏插入圖片描述

  下圖可視化了梯度截斷的效果。它展示了一個小的rnn(其中W爲權值矩陣,b爲bias項)的決策面。這個模型是一個一小段時間的rnn單元組成;實心箭頭表明每步梯度下降的訓練過程。當梯度下降過程中,模型的目標函數取得了較高的誤差時,梯度將被送到遠離決策面的位置。截斷模型產生了一個虛線,它將誤差梯度拉回到離原始梯度接近的位置。
在這裏插入圖片描述
2. 梯度彌散(消失)解決方法:

  • 隨機初始化W(hh) 改爲一個有關聯的的矩陣初始化
  • 使用ReLU(Rectified Linear Units)代替Sigmoid激活函數ReLU的導數不是0就是1.因此,神經元的梯度將始終爲1,而不會當梯度傳播了一定時間之後變小(梯度消失)。

16、什麼樣的資料集不適合用深度學習?

  1、數據集太小,數據樣本不足時,深度學習相對其它機器學習算法,沒有明顯優勢。

  2、數據集沒有局部相關特性,目前深度學習表現比較好的領域主要是圖像/語音/自然語言處理等領域,這些領域的一個共性是局部相關性。圖像中像素組成物體,語音信號中音位組合成單詞,文本數據中單詞組合成句子,這些特徵元素的組合一旦被打亂,表示的含義同時也被改變。對於沒有這樣的局部相關性的數據集,不適於使用深度學習算法進行處理。舉個例子:預測一個人的健康狀況,相關的參數會有年齡、職業、收入、家庭狀況等各種元素,將這些元素打亂,並不會影響相關的結果。

17、廣義線性模型是怎被應用在深度學習中?

  深度學習從統計學角度,可以看做遞歸的廣義線性模型。
廣義線性模型相對於經典的線性模型(y=wx+b),核心在於引入了連接函數g(.),形式變爲:y=g−1(wx+b)。深度學習時遞歸的廣義線性模型,神經元的激活函數,即爲廣義線性模型的鏈接函數。邏輯迴歸(廣義線性模型的一種)的Logistic函數即爲神經元激活函數中的Sigmoid函數,很多類似的方法在統計學和神經網絡中的名稱不一樣

18、如何解決梯度消失(/梯度彌散)和梯度膨脹

(1)梯度消失:
  根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小於1的話,那麼即使這個結果是0.99,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於0,可以採用ReLU激活函數有效的解決梯度消失的情況,也可以用Batch Normalization(使每一層的輸出都有相同的分佈)解決這個問題。關於深度學習中 Batch Normalization爲什麼效果好?參見:https://www.zhihu.com/question/38102762

(2)梯度膨脹
  根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大於1的話,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於無窮大,可以通過激活函數來解決,或用Batch Normalization解決這個問題。

19、簡述神經網絡的發展歷史

  1949年Hebb提出了神經心理學學習範式——Hebbian學習理論

  1952年,IBM的Arthur Samuel寫出了西洋棋程序

  1957年,Rosenblatt的感知器算法是第二個有着神經系統科學背景的機器學習模型.

  3年之後,Widrow因發明Delta學習規則而載入ML史冊,該規則馬上就很好的應用到了感知器的訓練中,感知器的熱度在1969被Minskey一盆冷水潑滅了。他提出了著名的XOR問題,論證了感知器在類似XOR問題的線性不可分數據的無力。

  儘管BP的思想在70年代就被Linnainmaa以“自動微分的翻轉模式”被提出來,但直到1981年才被Werbos應用到多層感知器(MLP)中,NN新的大繁榮。

  1991年的Hochreiter和2001年的Hochreiter的工作,都表明在使用BP算法時,NN單元飽和之後會發生梯度損失。又發生停滯。

  時間終於走到了當下,隨着計算資源的增長和數據量的增長。一個新的NN領域——深度學習出現了。

  簡言之,MP模型+sgn—->單層感知機(只能線性)+sgn— Minsky 低谷 —>多層感知機+BP+sigmoid—- (低谷) —>深度學習+pre-training+ReLU/sigmoid

20、深度學習常用方法

全連接DNN(相鄰層相互連接、層內無連接):
AutoEncoder(儘可能還原輸入)、Sparse Coding(在AE上加入L1規範)、RBM(解決概率問題)—–>特徵探測器——>棧式疊加 貪心訓練
RBM—->DBN
解決全連接DNN的全連接問題—–>CNN
解決全連接DNN的無法對時間序列上變化進行建模的問題—–>RNN—解決時間軸上的梯度消失問題——->LSTM
解析來源:@SmallisBig,鏈接:http://blog.csdn.net/u010496169/article/details/73550487

  現在在應用領域應用的做多的是DNN,CNN和RNN。
DNN是傳統的全連接網絡,可以用於廣告點擊率預估,推薦等。其使用embedding的方式將很多離散的特徵編碼到神經網絡中,可以很大的提升結果。

  CNN主要用於計算機視覺(Computer Vision)領域CNN的出現主要解決了DNN在圖像領域中參數過多的問題。同時,CNN特有的卷積、池化、batch normalization、Inception、ResNet、DeepNet等一系列的發展也使得在分類、物體檢測、人臉識別、圖像分割等衆多領域有了長足的進步。同時,CNN不僅在圖像上應用很多,在自然語言處理上也頗有進展,現在已經有基於CNN的語言模型能夠達到比LSTM更好的效果。在最新的AlphaZero中,CNN中的ResNet也是兩種基本算法之一。

  GAN是一種應用在生成模型的訓練方法,現在有很多在CV方面的應用,例如圖像翻譯,圖像超清化、圖像修復等等。

  RNN主要用於自然語言處理(Natural Language Processing)領域,用於處理序列到序列的問題。普通RNN會遇到梯度爆炸和梯度消失的問題。所以現在在NLP領域,一般會使用LSTM模型。在最近的機器翻譯領域,Attention作爲一種新的手段,也被引入進來。

  除了DNN、RNN和CNN外, 自動編碼器(AutoEncoder)、稀疏編碼(Sparse Coding)、深度信念網絡(DBM)、限制玻爾茲曼機(RBM)也都有相應的研究

21、請簡述神經網絡的發展史。

sigmoid會飽和,造成梯度消失。於是有了ReLU。
ReLU負半軸是死區,造成梯度變0。於是有了LeakyReLU,PReLU。
強調梯度和權值分佈的穩定性,由此有了ELU,以及較新的SELU。
太深了,梯度傳不下去,於是有了highway。
乾脆連highway的參數都不要,直接變殘差,於是有了ResNet.

強行穩定參數的均值和方差,於是有了BatchNorm。
在梯度流中增加噪聲,於是有了 Dropout。
RNN梯度不穩定,於是加幾個通路和門控,於是有了LSTM。
LSTM簡化一下,有了GRU。
GAN的JS散度有問題,會導致梯度消失或無效,於是有了WGAN。
WGAN對梯度的clip有問題,於是有了WGAN-GP。

22、神經網絡中激活函數的真正意義?一個激活函數需要具有哪些必要的屬性?還有哪些屬性是好的屬性但不必要的?

  1. 非線性:

  即導數不是常數。這個條件是多層神經網絡的基礎,保證多層網絡不退化成單層線性網絡。這也是激活函數的意義所在

  1. 幾乎處處可微:

  可微性保證了在優化中梯度的可計算性。傳統的激活函數如sigmoid等滿足處處可微。對於分段線性函數比如ReLU,只滿足幾乎處處可微(即僅在有限個點處不可微)。對於SGD算法來說,由於幾乎不可能收斂到梯度接近零的位置,有限的不可微點對於優化結果不會有很大影響。

  1. 計算簡單:

  非線性函數有很多。極端的說,一個多層神經網絡也可以作爲一個非線性函數,類似於Network In Network[2]中把它當做卷積操作的做法。但激活函數在神經網絡前向的計算次數與神經元的個數成正比,因此簡單的非線性函數自然更適合用作激活函數。這也是ReLU之流比其它使用Exp等操作的激活函數更受歡迎的其中一個原因。

  1. 非飽和性(saturation):

  飽和指的是在某些區間梯度接近於零(即梯度消失),使得參數無法繼續更新的問題。最經典的例子是Sigmoid,它的導數在x爲比較大的正值和比較小的負值時都會接近於0。更極端的例子是階躍函數,由於它在幾乎所有位置的梯度都爲0,因此處處飽和,無法作爲激活函數。ReLU在x>0時導數恆爲1,因此對於再大的正值也不會飽和。但同時對於x<0,其梯度恆爲0,這時候它也會出現飽和的現象(在這種情況下通常稱爲dying ReLU)。Leaky ReLU和PReLU的提出正是爲了解決這一問題。

  1. 單調性(monotonic):

  即導數符號不變。這個性質大部分激活函數都有,除了諸如sin、cos等。個人理解,單調性使得在激活函數處的梯度方向不會經常改變,從而讓訓練更容易收斂。

  1. 輸出範圍有限:

  有限的輸出範圍使得網絡對於一些比較大的輸入也會比較穩定,這也是爲什麼早期的激活函數都以此類函數爲主,如Sigmoid、TanH。但這導致了前面提到的梯度消失問題,而且強行讓每一層的輸出限制到固定範圍會限制其表達能力。因此現在這類函數僅用於某些需要特定輸出範圍的場合,比如概率輸出(此時loss函數中的log操作能夠抵消其梯度消失的影響)、LSTM裏的gate函數。

  1. 接近恆等變換(identity):

  即約等於x。這樣的好處是使得輸出的幅值不會隨着深度的增加而發生顯著的增加,從而使網絡更爲穩定,同時梯度也能夠更容易地回傳。這個與非線性是有點矛盾的,因此激活函數基本只是部分滿足這個條件,比如TanH只在原點附近有線性區(在原點爲0且在原點的導數爲1),而ReLU只在x>0時爲線性。這個性質也讓初始化參數範圍的推導更爲簡單。額外提一句,這種恆等變換的性質也被其他一些網絡結構設計所借鑑,比如CNN中的ResNet和RNN中的LSTM。

  1. 參數少:

  大部分激活函數都是沒有參數的。像PReLU帶單個參數會略微增加網絡的大小。還有一個例外是Maxout,儘管本身沒有參數,但在同樣輸出通道數下k路Maxout需要的輸入通道數是其它函數的k倍,這意味着神經元數目也需要變爲k倍;但如果不考慮維持輸出通道數的情況下,該激活函數又能將參數個數減少爲原來的k倍。

  1. 歸一化(normalization):

  這個是最近纔出來的概念,對應的激活函數是SELU,主要思想是使樣本分佈自動歸一化到零均值、單位方差的分佈,從而穩定訓練。在這之前,這種歸一化的思想也被用於網絡結構的設計,比如Batch Normalization

23、梯度下降法的神經網絡容易收斂到局部最優,爲什麼應用廣泛?

24、簡單說說CNN常用的幾個模型

25、爲什麼很多做人臉的Paper會最後加入一個Local Connected Conv?

26、什麼是梯度爆炸?

27、梯度爆炸會引發什麼問題?

28、如何確定是否出現梯度爆炸?

29、如何修復梯度爆炸問題?

30、LSTM神經網絡輸入輸出究竟是怎樣的?

31、什麼是RNN?

32、RNN是怎麼從單層網絡一步一步構造的?

33、簡單說下sigmoid激活函數

34、如何從RNN起步,一步一步通俗理解LSTM

35、請詳細說說CNN的工作原理

36、CNN究竟是怎樣一步一步工作的?

37、rcnn、fast-rcnn和faster-rcnn三者的區別是什麼

38、在神經網絡中,有哪些辦法防止過擬合?

39、CNN是什麼,CNN關鍵的層有哪些?

40、GRU是什麼?GRU對LSTM做了哪些改動?

41、請簡述應當從哪些方向上思考和解決深度學習中出現的的over fitting問題?

42、神經網絡中,是否隱藏層如果具有足夠數量的單位,它就可以近似任何連續函數?

43、爲什麼更深的網絡更好?

44、更多的數據是否有利於更深的神經網絡?

45、不平衡數據是否會摧毀神經網絡?

46、你如何判斷一個神經網絡是記憶還是泛化?

47、無監督降維提供的是幫助還是摧毀?

48、是否可以將任何非線性作爲激活函數?

49、批大小如何影響測試正確率?

50、損失函數重要嗎?

51、初始化如何影響訓練?

52、不同層的權重是否以不同的速度收斂?

53、正則化如何影響權重?

54、什麼是fine-tuning?

55、什麼是邊框迴歸Bounding-Box regression,以及爲什麼要做、怎麼做

56、請闡述下Selective Search的主要思想

57、什麼是非極大值抑制(NMS)?

58、什麼是深度學習中的anchor?

59、CNN的特點以及優勢

60、深度學習中有什麼加快收斂/降低訓練難度的方法?

61、請簡單說下計算流圖的前向和反向傳播

62、請寫出鏈式法則並證明

63、請寫出Batch Normalization的計算方法及其應用

64、神經網絡中會用到批量梯度下降(BGD)嗎?爲什麼用隨機梯度下降(SGD)?

65、當神經網絡的調參效果不好時,從哪些角度思考?(不要首先歸結於overfiting)

66、請闡述下卷積神經網絡CNN的基本原理

67、瞭解無人駕駛的核心技術麼?

68、如何形象的理解LSTM的三個門

69、通過一張張動圖形象的理解LSTM

70、如何理解反向傳播算法BackPropagation

在這裏插入圖片描述


在這裏插入圖片描述


在這裏插入圖片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章