當前位置:
首頁 > 知識 > 深度學習崗位面試問題一覽

深度學習崗位面試問題一覽

本文作者許韓本文首發於作者的知乎專欄許韓VS許韓》, AI研習社獲其授權發布。

本筆記主要問題來自以下兩個問題,以及我自己面試過程中遇到的問題。

深度學習相關的職位面試時一般會問什麼?會問一些傳統的機器學習演算法嗎?(http://t.cn/RMrVwoU)

如果你是面試官,你怎麼去判斷一個面試者的深度學習水平?(http://t.cn/RIQnMZv)


以下問題來自@Naiyan Wang(http://t.cn/RjVwbgQ)

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

Deep Learning -Yann LeCun, Yoshua Bengio & Geoffrey Hinton(http://t.cn/RjV2Zuc)

Learn TensorFlow and deep learning, without a PhD(http://t.cn/R00mUws)

The Unreasonable Effectiveness of Deep Learning -LeCun 16 NIPS Keynote(http://t.cn/RZ02yaK)

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

CNN抓住此共性的手段主要有四個:局部連接/權值共享/池化操作/多層次結構。

局部連接使網路可以提取數據的局部特徵;權值共享大大降低了網路的訓練難度,一個Filter只提取一個特徵,在整個圖片(或者語音/文本) 中進行卷積;池化操作與多層次結構一起,實現了數據的降維,將低層次的局部特徵組合成為較高層次的特徵,從而對整個圖片進行表示。如下圖:

上圖中,如果每一個點的處理使用相同的Filter,則為全卷積,如果使用不同的Filter,則為Local-Conv。

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

DeepFace: Closing the Gap to Human-Level Performance in Face Verification(http://t.cn/RjVqsrg)

以FaceBook DeepFace 為例:

DeepFace 先進行了兩次全卷積+一次池化,提取了低層次的邊緣/紋理等特徵。

後接了3個Local-Conv層,這裡是用Local-Conv的原因是,人臉在不同的區域存在不同的特徵(眼睛/鼻子/嘴的分布位置相對固定),當不存在全局的局部特徵分布時,Local-Conv更適合特徵的提取。


以下問題來自@抽象猴(http://t.cn/RjV5W4J)

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

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

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

2.對所有優化問題來說, 有沒有可能找到比現在已知演算法更好的演算法?

機器學習-周志華(http://t.cn/RjVfkB3)

沒有免費的午餐定理:


對於訓練樣本(黑點),不同的演算法A/B在不同的測試樣本(白點)中有不同的表現,這表示:對於一個學習演算法A,若它在某些問題上比學習演算法 B更好,則必然存在一些問題,在那裡B比A好。

也就是說:對於所有問題,無論學習演算法A多聰明,學習演算法 B多笨拙,它們的期望性能相同。

但是:沒有免費午餐定力假設所有問題出現幾率相同,實際應用中,不同的場景,會有不同的問題分布,所以,在優化演算法時,針對具體問題進行分析,是演算法優化的核心所在。

3.用貝葉斯機率說明Dropout的原理

Dropout as a Bayesian Approximation: Insights and Applications(http://t.cn/R28v5W6)

4.何為共線性, 跟過擬合有啥關聯?

Multicollinearity-Wikipedia(http://t.cn/RjVMJBf)

共線性:多變數線性回歸中,變數之間由於存在高度相關關係而使回歸估計不準確。

共線性會造成冗餘,導致過擬合。

解決方法:排除變數的相關性/加入權重正則。

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

A Statistical View of Deep Learning (I): Recursive GLMs(http://t.cn/R2VQ5wJ)

深度學習從統計學角度,可以看做遞歸的廣義線性模型。

廣義線性模型相對於經典的線性模型(y=wx+b),核心在於引入了連接函數g(.),形式變為:y=g?1(wx+b)。

深度學習時遞歸的廣義線性模型,神經元的激活函數,即為廣義線性模型的鏈接函數。邏輯回歸(廣義線性模型的一種)的Logistic函數即為神經元激活函數中的Sigmoid函數,很多類似的方法在統計學和神經網路中的名稱不一樣,容易引起初學者(這裡主要指我)的困惑。下圖是一個對照表:


6.什麽造成梯度消失問題? 推導一下

Yes you should understand backdrop-Andrej Karpathy(http://t.cn/RI6Qe7t)

How does the ReLu solve the vanishing gradient problem?(http://t.cn/RjVxrGG)

神經網路的訓練中,通過改變神經元的權重,使網路的輸出值儘可能逼近標籤以降低誤差值,訓練普遍使用BP演算法,核心思想是,計算出輸出與標籤間的損失函數值,然後計算其相對於每個神經元的梯度,進行權值的迭代。

梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多激活函數將輸出值擠壓在很小的區間內,在激活函數兩端較大範圍的定義域內梯度為0。造成學習停止


以下問題來自匿名用戶

1.Weights Initialization. 不同的方式,造成的後果。為什麼會造成這樣的結果。

幾種主要的權值初始化方法: lecun_uniform / glorot_normal / he_normal / batch_normal

lecun_uniform:Efficient BackProp(http://t.cn/RjVX2bi)

glorot_normal:Understanding the difficulty of training deep feedforward neural networks (http://t.cn/RjVXVIr)

he_normal:Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification(http://t.cn/RjVS5yE)

batch_normal:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift(http://t.cn/RXgFY02)

2.為什麼網路夠深(Neurons 足夠多)的時候,總是可以避開較差Local Optima?

The Loss Surfaces of Multilayer Networks(http://t.cn/RjVCV7A)

3.Loss. 有哪些定義方式(基於什麼?), 有哪些優化方式,怎麼優化,各自的好處,以及解釋。

Cross-Entropy / MSE / K-L散度

4.Dropout。 怎麼做,有什麼用處,解釋。

How does the dropout method work in deep learning?(http://t.cn/RjVoBTT)

Improving neural networks by preventing co-adaptation of feature detectors(http://t.cn/RjVWnC0)

An empirical analysis of dropout in piecewise linear networks(http://t.cn/RjVWsxB)

5.Activation Function. 選用什麼,有什麼好處,為什麼會有這樣的好處。

幾種主要的激活函數:Sigmond / ReLU /PReLU

Deep Sparse Rectifier Neural Networks(http://t.cn/RjVlVbG)

Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification(http://t.cn/RjVl6Z5)

不要等到演算法出現accuracy不好、

loss很高、模型overfitting時,

才後悔沒有好好掌握基礎數學理論。

走穩機器學習第一步,夯實數學基礎!

「線性代數及矩陣論、概率論與統計、凸優化」

3大數學基礎課程,火熱團購中!

掃碼參團

深度學習面試你必須知道這些答案


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

從LeNet-5到DenseNet
遷移學習的發展和現狀
從事人臉識別研究必讀的N篇文章
從傳統演算法走向神經網路

TAG:AI研習社 |