想從事深度學(xué)習(xí)工作的進(jìn)來看,經(jīng)典面試問題幫你整理好了
更新幾個(gè)面試被問到或者聯(lián)想出來的問題,后面有時(shí)間回答
本文引用地址:http://butianyuan.cn/article/201709/364073.htmSGD 中 S(stochastic)代表什么
個(gè)人理解差不多就是Full-Batch和Mini-Batch
監(jiān)督學(xué)習(xí)/遷移學(xué)習(xí)/半監(jiān)督學(xué)習(xí)/弱監(jiān)督學(xué)習(xí)/非監(jiān)督學(xué)習(xí)?
本筆記主要問題來自以下兩個(gè)問題,后續(xù)會加上我自己面試過程中遇到的問題。
深度學(xué)習(xí)相關(guān)的職位面試時(shí)一般會問什么?會問一些傳統(tǒng)的機(jī)器學(xué)習(xí)算法嗎?
如果你是面試官,你怎么去判斷一個(gè)面試者的深度學(xué)習(xí)水平?
以下問題來自@Naiyan Wang
CNN最成功的應(yīng)用是在CV,那為什么NLP和Speech的很多問題也可以用CNN解出來?為什么AlphaGo里也用了CNN?這幾個(gè)不相關(guān)的問題的相似性在哪里?CNN通過什么手段抓住了這個(gè)共性?
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
以上幾個(gè)不相關(guān)問題的相關(guān)性在于,都存在局部與整體的關(guān)系,由低層次的特征經(jīng)過組合,組成高層次的特征,并且得到不同特征之間的空間相關(guān)性。如下圖:低層次的直線/曲線等特征,組合成為不同的形狀,最后得到汽車的表示。
CNN抓住此共性的手段主要有四個(gè):局部連接/權(quán)值共享/池化操作/多層次結(jié)構(gòu)。
局部連接使網(wǎng)絡(luò)可以提取數(shù)據(jù)的局部特征;權(quán)值共享大大降低了網(wǎng)絡(luò)的訓(xùn)練難度,一個(gè)Filter只提取一個(gè)特征,在整個(gè)圖片(或者語音/文本) 中進(jìn)行卷積;池化操作與多層次結(jié)構(gòu)一起,實(shí)現(xiàn)了數(shù)據(jù)的降維,將低層次的局部特征組合成為較高層次的特征,從而對整個(gè)圖片進(jìn)行表示。如下圖:
上圖中,如果每一個(gè)點(diǎn)的處理使用相同的Filter,則為全卷積,如果使用不同的Filter,則為Local-Conv。
為什么很多做人臉的Paper會最后加入一個(gè)Local Connected Conv?
DeepFace: Closing the Gap to Human-Level Performance in Face Verification
以FaceBook DeepFace 為例:
DeepFace 先進(jìn)行了兩次全卷積+一次池化,提取了低層次的邊緣/紋理等特征。
后接了3個(gè)Local-Conv層,這里是用Local-Conv的原因是,人臉在不同的區(qū)域存在不同的特征(眼睛/鼻子/嘴的分布位置相對固定),當(dāng)不存在全局的局部特征分布時(shí),Local-Conv更適合特征的提取。
以下問題來自@抽象猴
什麼樣的資料集不適合用深度學(xué)習(xí)?
數(shù)據(jù)集太小,數(shù)據(jù)樣本不足時(shí),深度學(xué)習(xí)相對其它機(jī)器學(xué)習(xí)算法,沒有明顯優(yōu)勢。
數(shù)據(jù)集沒有局部相關(guān)特性,目前深度學(xué)習(xí)表現(xiàn)比較好的領(lǐng)域主要是圖像/語音/自然語言處理等領(lǐng)域,這些領(lǐng)域的一個(gè)共性是局部相關(guān)性。圖像中像素組成物體,語音信號中音位組合成單詞,文本數(shù)據(jù)中單詞組合成句子,這些特征元素的組合一旦被打亂,表示的含義同時(shí)也被改變。對于沒有這樣的局部相關(guān)性的數(shù)據(jù)集,不適于使用深度學(xué)習(xí)算法進(jìn)行處理。舉個(gè)例子:預(yù)測一個(gè)人的健康狀況,相關(guān)的參數(shù)會有年齡、職業(yè)、收入、家庭狀況等各種元素,將這些元素打亂,并不會影響相關(guān)的結(jié)果。
對所有優(yōu)化問題來說, 有沒有可能找到比現(xiàn)在已知算法更好的算法?
機(jī)器學(xué)習(xí)-周志華
沒有免費(fèi)的午餐定理:
對于訓(xùn)練樣本(黑點(diǎn)),不同的算法A/B在不同的測試樣本(白點(diǎn))中有不同的表現(xiàn),這表示:對于一個(gè)學(xué)習(xí)算法A,若它在某些問題上比學(xué)習(xí)算法 B更好,則必然存在一些問題,在那里B比A好。
也就是說:對于所有問題,無論學(xué)習(xí)算法A多聰明,學(xué)習(xí)算法 B多笨拙,它們的期望性能相同。
但是:沒有免費(fèi)午餐定力假設(shè)所有問題出現(xiàn)幾率相同,實(shí)際應(yīng)用中,不同的場景,會有不同的問題分布,所以,在優(yōu)化算法時(shí),針對具體問題進(jìn)行分析,是算法優(yōu)化的核心所在。
用貝葉斯機(jī)率說明Dropout的原理
Dropout as a Bayesian Approximation: Insights and Applications
何為共線性, 跟過擬合有啥關(guān)聯(lián)?
Multicollinearity-Wikipedia
共線性:多變量線性回歸中,變量之間由于存在高度相關(guān)關(guān)系而使回歸估計(jì)不準(zhǔn)確。
共線性會造成冗余,導(dǎo)致過擬合。
解決方法:排除變量的相關(guān)性/加入權(quán)重正則。
說明如何用支持向量機(jī)實(shí)現(xiàn)深度學(xué)習(xí)(列出相關(guān)數(shù)學(xué)公式)
這個(gè)不太會,最近問一下老師。
廣義線性模型是怎被應(yīng)用在深度學(xué)習(xí)中?
A Statistical View of Deep Learning (I): Recursive GLMs
深度學(xué)習(xí)從統(tǒng)計(jì)學(xué)角度,可以看做遞歸的廣義線性模型。
廣義線性模型相對于經(jīng)典的線性模型(y=wx+b),核心在于引入了連接函數(shù)g(.),形式變?yōu)椋簓=g?1(wx+b)。
深度學(xué)習(xí)時(shí)遞歸的廣義線性模型,神經(jīng)元的激活函數(shù),即為廣義線性模型的鏈接函數(shù)。邏輯回歸(廣義線性模型的一種)的Logistic函數(shù)即為神經(jīng)元激活函數(shù)中的Sigmoid函數(shù),很多類似的方法在統(tǒng)計(jì)學(xué)和神經(jīng)網(wǎng)絡(luò)中的名稱不一樣,容易引起初學(xué)者(這里主要指我)的困惑。下圖是一個(gè)對照表:
什麼造成梯度消失問題? 推導(dǎo)一下
Yes you should understand backdrop-Andrej Karpathy
How does the ReLu solve the vanishing gradient problem?
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,通過改變神經(jīng)元的權(quán)重,使網(wǎng)絡(luò)的輸出值盡可能逼近標(biāo)簽以降低誤差值,訓(xùn)練普遍使用BP算法,核心思想是,計(jì)算出輸出與標(biāo)簽間的損失函數(shù)值,然后計(jì)算其相對于每個(gè)神經(jīng)元的梯度,進(jìn)行權(quán)值的迭代。
梯度消失會造成權(quán)值更新緩慢,模型訓(xùn)練難度增加。造成梯度消失的一個(gè)原因是,許多激活函數(shù)將輸出值擠壓在很小的區(qū)間內(nèi),在激活函數(shù)兩端較大范圍的定義域內(nèi)梯度為0。造成學(xué)習(xí)停止
以下問題來自匿名用戶
Weights Initialization. 不同的方式,造成的后果。為什么會造成這樣的結(jié)果。
幾種主要的權(quán)值初始化方法: 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)絡(luò)夠深(Neurons 足夠多)的時(shí)候,總是可以避開較差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
評論