想從事深度學習工作的進來看,經(jīng)典面試問題幫你整理好了
更新幾個面試被問到或者聯(lián)想出來的問題,后面有時間回答
本文引用地址:http://m.ptau.cn/article/201709/364073.htmSGD 中 S(stochastic)代表什么
個人理解差不多就是Full-Batch和Mini-Batch
監(jiān)督學習/遷移學習/半監(jiān)督學習/弱監(jiān)督學習/非監(jiān)督學習?
本筆記主要問題來自以下兩個問題,后續(xù)會加上我自己面試過程中遇到的問題。
深度學習相關的職位面試時一般會問什么?會問一些傳統(tǒng)的機器學習算法嗎?
如果你是面試官,你怎么去判斷一個面試者的深度學習水平?
以下問題來自@Naiyan Wang
CNN最成功的應用是在CV,那為什么NLP和Speech的很多問題也可以用CNN解出來?為什么AlphaGo里也用了CNN?這幾個不相關的問題的相似性在哪里?CNN通過什么手段抓住了這個共性?
Deep Learning -Yann LeCun, Yoshua Bengio & Geoffrey Hinton
Learn TensorFlow and deep learning, without a Ph.D.
The Unreasonable Effectiveness of Deep Learning -LeCun 16 NIPS Keynote
以上幾個不相關問題的相關性在于,都存在局部與整體的關系,由低層次的特征經(jīng)過組合,組成高層次的特征,并且得到不同特征之間的空間相關性。如下圖:低層次的直線/曲線等特征,組合成為不同的形狀,最后得到汽車的表示。

CNN抓住此共性的手段主要有四個:局部連接/權值共享/池化操作/多層次結(jié)構。
局部連接使網(wǎng)絡可以提取數(shù)據(jù)的局部特征;權值共享大大降低了網(wǎng)絡的訓練難度,一個Filter只提取一個特征,在整個圖片(或者語音/文本) 中進行卷積;池化操作與多層次結(jié)構一起,實現(xiàn)了數(shù)據(jù)的降維,將低層次的局部特征組合成為較高層次的特征,從而對整個圖片進行表示。如下圖:

上圖中,如果每一個點的處理使用相同的Filter,則為全卷積,如果使用不同的Filter,則為Local-Conv。
為什么很多做人臉的Paper會最后加入一個Local Connected Conv?
DeepFace: Closing the Gap to Human-Level Performance in Face Verification
以FaceBook DeepFace 為例:

DeepFace 先進行了兩次全卷積+一次池化,提取了低層次的邊緣/紋理等特征。
后接了3個Local-Conv層,這里是用Local-Conv的原因是,人臉在不同的區(qū)域存在不同的特征(眼睛/鼻子/嘴的分布位置相對固定),當不存在全局的局部特征分布時,Local-Conv更適合特征的提取。
以下問題來自@抽象猴
什麼樣的資料集不適合用深度學習?
數(shù)據(jù)集太小,數(shù)據(jù)樣本不足時,深度學習相對其它機器學習算法,沒有明顯優(yōu)勢。
數(shù)據(jù)集沒有局部相關特性,目前深度學習表現(xiàn)比較好的領域主要是圖像/語音/自然語言處理等領域,這些領域的一個共性是局部相關性。圖像中像素組成物體,語音信號中音位組合成單詞,文本數(shù)據(jù)中單詞組合成句子,這些特征元素的組合一旦被打亂,表示的含義同時也被改變。對于沒有這樣的局部相關性的數(shù)據(jù)集,不適于使用深度學習算法進行處理。舉個例子:預測一個人的健康狀況,相關的參數(shù)會有年齡、職業(yè)、收入、家庭狀況等各種元素,將這些元素打亂,并不會影響相關的結(jié)果。
對所有優(yōu)化問題來說, 有沒有可能找到比現(xiàn)在已知算法更好的算法?
機器學習-周志華
沒有免費的午餐定理:

對于訓練樣本(黑點),不同的算法A/B在不同的測試樣本(白點)中有不同的表現(xiàn),這表示:對于一個學習算法A,若它在某些問題上比學習算法 B更好,則必然存在一些問題,在那里B比A好。
也就是說:對于所有問題,無論學習算法A多聰明,學習算法 B多笨拙,它們的期望性能相同。
但是:沒有免費午餐定力假設所有問題出現(xiàn)幾率相同,實際應用中,不同的場景,會有不同的問題分布,所以,在優(yōu)化算法時,針對具體問題進行分析,是算法優(yōu)化的核心所在。
用貝葉斯機率說明Dropout的原理
Dropout as a Bayesian Approximation: Insights and Applications
何為共線性, 跟過擬合有啥關聯(lián)?
Multicollinearity-Wikipedia
共線性:多變量線性回歸中,變量之間由于存在高度相關關系而使回歸估計不準確。
共線性會造成冗余,導致過擬合。
解決方法:排除變量的相關性/加入權重正則。
說明如何用支持向量機實現(xiàn)深度學習(列出相關數(shù)學公式)
這個不太會,最近問一下老師。
廣義線性模型是怎被應用在深度學習中?
A Statistical View of Deep Learning (I): Recursive GLMs
深度學習從統(tǒng)計學角度,可以看做遞歸的廣義線性模型。
廣義線性模型相對于經(jīng)典的線性模型(y=wx+b),核心在于引入了連接函數(shù)g(.),形式變?yōu)椋簓=g?1(wx+b)。
深度學習時遞歸的廣義線性模型,神經(jīng)元的激活函數(shù),即為廣義線性模型的鏈接函數(shù)。邏輯回歸(廣義線性模型的一種)的Logistic函數(shù)即為神經(jīng)元激活函數(shù)中的Sigmoid函數(shù),很多類似的方法在統(tǒng)計學和神經(jīng)網(wǎng)絡中的名稱不一樣,容易引起初學者(這里主要指我)的困惑。下圖是一個對照表:

什麼造成梯度消失問題? 推導一下
Yes you should understand backdrop-Andrej Karpathy
How does the ReLu solve the vanishing gradient problem?
神經(jīng)網(wǎng)絡的訓練中,通過改變神經(jīng)元的權重,使網(wǎng)絡的輸出值盡可能逼近標簽以降低誤差值,訓練普遍使用BP算法,核心思想是,計算出輸出與標簽間的損失函數(shù)值,然后計算其相對于每個神經(jīng)元的梯度,進行權值的迭代。
梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多激活函數(shù)將輸出值擠壓在很小的區(qū)間內(nèi),在激活函數(shù)兩端較大范圍的定義域內(nèi)梯度為0。造成學習停止

以下問題來自匿名用戶
Weights Initialization. 不同的方式,造成的后果。為什么會造成這樣的結(jié)果。
幾種主要的權值初始化方法: lecun_uniform / glorot_normal / he_normal / batch_normal
lecun_uniform:Efficient BackProp
glorot_normal:Understanding the difficulty of training deep feedforward neural networks
he_normal:Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
batch_normal:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
為什么網(wǎng)絡夠深(Neurons 足夠多)的時候,總是可以避開較差Local Optima?
The Loss Surfaces of Multilayer Networks
Loss. 有哪些定義方式(基于什么?), 有哪些優(yōu)化方式,怎么優(yōu)化,各自的好處,以及解釋。
Cross-Entropy / MSE / K-L散度
Dropout。 怎么做,有什么用處,解釋。
How does the dropout method work in deep learning?
Improving neural networks by preventing co-adaptation of feature detectors
An empirical analysis of dropout in piecewise linear networks
Activation Function. 選用什么,有什么好處,為什么會有這樣的好處。
幾種主要的激活函數(shù):Sigmond / ReLU /PReLU
Deep Sparse Rectifier Neural Networks
Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
評論