深度學習面試題總結

一、CNN爲什麼可以在CV/NLP/Speech等領域都可以使用?

1. 卷積是因爲輸入數據的局部相關性;

2. 權值共享是因爲輸入數據的局部特徵具有平移不變性,即在不同位置具有共性的局部特徵。這樣,經過多層次堆疊,低層局部特徵可以抽取成高層全局特徵。

3. 權值共享能夠降低參數量,而且降低了網絡的訓練難度。

note: 如果權值不共享,那就是局部連接層了。在某些應用,如人臉在不同的區域存在不同的特徵(眼睛/鼻子/嘴的分佈位置相對固定),當不存在全局的局部特徵分佈時,局部連接層更適合特徵的提取。

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

以上幾個不相關問題的相關性在於,都存在局部與整體的關係,由低層次的特徵經過組合,組成高層次的特徵,並且得到不同特徵之間的空間相關性。如下圖:低層次的直線/曲線等特徵,組合成爲不同的形狀,最後得到汽車的表示。

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

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

    • DeepFace 先進行了兩次全卷積+一次池化,提取了低層次的邊緣/紋理等特徵。
    • 後接了3個Local-Conv層,這裏是用Local-Conv的原因是,人臉在不同的區域存在不同的特徵(眼睛/鼻子/嘴的分佈位置相對固定),當不存在全局的局部特徵分佈時,Local-Conv更適合特徵的提取
  • 三、什麼樣的資料集不適合用深度學習?
    • 數據集太小,數據樣本不足時,深度學習相對其它機器學習算法,沒有明顯優勢。
    • 數據集沒有局部相關特性,目前深度學習表現比較好的領域主要是圖像/語音/自然語言處理等領域,這些領域的一個共性是局部相關性。圖像中像素組成物體,語音信號中音位組合成單詞,文本數據中單詞組合成句子,這些特徵元素的組合一旦被打亂,表示的含義同時也被改變。對於沒有這樣的局部相關性的數據集,不適於使用深度學習算法進行處理。舉個例子:預測一個人的健康狀況,相關的參數會有年齡、職業、收入、家庭狀況等各種元素,將這些元素打亂,並不會影響相關的結果。

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