導(dǎo)讀
正值秋招進(jìn)行時,本文收集了深度學(xué)習(xí)&計算機(jī)視覺方向的相關(guān)面試題,涵蓋反卷積、神經(jīng)網(wǎng)絡(luò)、目標(biāo)檢測等多個方面,內(nèi)容非常全面。
1.什么是反卷積?
反卷積也稱為轉(zhuǎn)置卷積,如果用矩陣乘法實(shí)現(xiàn)卷積操作,將卷積核平鋪為矩陣,則轉(zhuǎn)置卷積在正向計算時左乘這個矩陣的轉(zhuǎn)置WT,在反向傳播時左乘W,與卷積操作剛好相反,需要注意的是,反卷積不是卷積的逆運(yùn)算。
一般的卷積運(yùn)算可以看成是一個其中非零元素為權(quán)重的稀疏矩陣C與輸入的圖像進(jìn)行矩陣相乘,反向傳播時的運(yùn)算實(shí)質(zhì)為C的轉(zhuǎn)置與loss對輸出y的導(dǎo)數(shù)矩陣的矩陣相乘。
逆卷積的運(yùn)算過程與卷積正好相反,是正向傳播時做成C的轉(zhuǎn)置,反向傳播時左乘C
2.反卷積有哪些用途?
實(shí)現(xiàn)上采樣;近似重構(gòu)輸入圖像,卷積層可視化。
3.解釋神經(jīng)網(wǎng)絡(luò)的萬能逼近定理
只要激活函數(shù)選擇得當(dāng),神經(jīng)元的數(shù)量足夠,至少有一個隱含層的神經(jīng)網(wǎng)絡(luò)可以逼近閉區(qū)間上任意一個連續(xù)函數(shù)到任意指定的精度。
4.神經(jīng)網(wǎng)絡(luò)是生成模型還是判別模型?
判別模型,直接輸出類別標(biāo)簽,或者輸出類后驗(yàn)概率p(y|x)
5.Batch Normalization 和 Group Normalization有何區(qū)別?
BN是在 batch這個維度上進(jìn)行歸一化,GN是計算channel方向每個group的均值方差.
6.模型壓縮的主要方法有哪些?
從模型結(jié)構(gòu)上優(yōu)化:模型剪枝、模型蒸餾、automl直接學(xué)習(xí)出簡單的結(jié)構(gòu)
模型參數(shù)量化將FP32的數(shù)值精度量化到FP16、INT8、二值網(wǎng)絡(luò)、三值網(wǎng)絡(luò)等。
7.目標(biāo)檢測中IOU是如何計算的?
檢測結(jié)果與 Ground Truth 的交集比上它們的并集,即為檢測的準(zhǔn)確率 IoU
8.使用深度卷積網(wǎng)絡(luò)做圖像分類如果訓(xùn)練一個擁有1000萬個類的模型會碰到什么問題?
提示:內(nèi)存/顯存占用;模型收斂速度等
9.深度學(xué)習(xí)中為什么不用二階導(dǎo)去優(yōu)化?
Hessian矩陣是n*n, 在高維情況下這個矩陣非常大,計算和存儲都是問題。
10.深度機(jī)器學(xué)習(xí)中的mini-batch的大小對學(xué)習(xí)效果有何影響?
mini-batch太小會導(dǎo)致收斂變慢,太大容易陷入sharp minima,泛化性不好。
11.dropout的原理
可以把dropout看成是 一種ensemble方法,每次做完dropout相當(dāng)于從原網(wǎng)絡(luò)中找到一個更瘦的網(wǎng)絡(luò)。
強(qiáng)迫神經(jīng)元和其他隨機(jī)挑選出來的神經(jīng)元共同工作,減弱了神經(jīng)元節(jié)點(diǎn)間的聯(lián)合適應(yīng)性,增強(qiáng)泛化能力
使用dropout得到更多的局部簇,同等數(shù)據(jù)下,簇變多了,因而區(qū)分性變大,稀疏性也更大
12.為什么SSD對小目標(biāo)檢測效果不好:
小目標(biāo)對應(yīng)的anchor比較少,其對應(yīng)的feature map上的pixel難以得到訓(xùn)練,這也是為什么SSD在augmentation之后精確度上漲(因?yàn)閏rop之后小目標(biāo)就變?yōu)榇竽繕?biāo))
要檢測小目標(biāo)需要足夠大的feature map來提供精確特征,同時也需要足夠的語義信息來與背景作區(qū)分
13.空洞卷積及其優(yōu)缺點(diǎn)
pooling操作雖然能增大感受野,但是會丟失一些信息??斩淳矸e在卷積核中插入權(quán)重為0的值,因此每次卷積中會skip掉一些像素點(diǎn);
空洞卷積增大了卷積輸出每個點(diǎn)的感受野,并且不像pooling會丟失信息,在圖像需要全局信息或者需要較長sequence依賴的語音序列問題上有著較廣泛的應(yīng)用。
14.Fast RCNN中位置損失為何使用Smooth L1:
表達(dá)式為:
作者這樣設(shè)置的目的是想讓loss對于離群點(diǎn)更加魯棒,相比于L2損失函數(shù),其對離群點(diǎn)、異常值(outlier)不敏感,可控制梯度的量級使訓(xùn)練時不容易跑飛。
15.Batch Normalization
使用BN的原因是網(wǎng)絡(luò)訓(xùn)練中每一層不斷改變的參數(shù)會導(dǎo)致后續(xù)每一層輸入的分布發(fā)生變化,而學(xué)習(xí)的過程又要使每一層去適應(yīng)輸入的分布,因此不得不降低網(wǎng)絡(luò)的學(xué)習(xí)率,并且要小心得初始化(internal covariant shift)
如果僅通過歸一化方法使得數(shù)據(jù)具有零均值和單位方差,則會降低層的表達(dá)能力(如使用Sigmoid函數(shù)時,只使用線性區(qū)域)
BN的具體過程(注意第三個公式中分母要加上epsilon)
注意點(diǎn):在測試過程中使用的均值和方差已經(jīng)不是某一個batch的了,而是針對整個數(shù)據(jù)集而言。因此,在訓(xùn)練過程中除了正常的前向傳播和反向求導(dǎo)之外,我們還要記錄每一個Batch的均值和方差,以便訓(xùn)練完成之后按照下式計算整體的均值和方差。
另一個注意點(diǎn):在arxiv六月份的preprint論文中,有一篇叫做“How Does Batch Normalization Help Optimization?”的文章,里面提到BN起作用的真正原因和改變輸入的分布從而產(chǎn)生穩(wěn)定性幾乎沒有什么關(guān)系,真正的原因是BN使對應(yīng)優(yōu)化問題的landscape變得更加平穩(wěn),這就保證了更加predictive的梯度以及可以使用更加大的學(xué)習(xí)率從而使網(wǎng)絡(luò)更快收斂,而且不止BN可以產(chǎn)生這種影響,許多正則化技巧都有這種類似影響。
16.超參數(shù)搜索方法
網(wǎng)格搜索:在所有候選的參數(shù)選擇中,通過循環(huán)遍歷,嘗試每一種可能性,表現(xiàn)最好的參數(shù)就是最終的結(jié)果。
貝葉斯優(yōu)化:貝葉斯優(yōu)化其實(shí)就是在函數(shù)方程不知的情況下根據(jù)已有的采樣點(diǎn)預(yù)估函數(shù)最大值的一個算法。該算法假設(shè)函數(shù)符合高斯過程(GP)。
隨機(jī)搜索:已經(jīng)發(fā)現(xiàn),簡單地對參數(shù)設(shè)置進(jìn)行固定次數(shù)的隨機(jī)搜索,比在窮舉搜索中的高維空間更有效。這是因?yàn)槭聦?shí)證明,一些超參數(shù)不通過特征變換的方式把低維空間轉(zhuǎn)換到高維空間,而在低維空間不可分的數(shù)據(jù),到高維空間中線性可分的幾率會高一些。具體方法:核函數(shù),如:高斯核,多項(xiàng)式核等等。
基于梯度:計算相對于超參數(shù)的梯度,然后使用梯度下降優(yōu)化超參數(shù)。
17.如何理解卷積、池化等、全連接層等操作
卷積的作用:捕獲圖像相鄰像素的依賴性;起到類似濾波器的作用,得到不同形態(tài)的feature map
激活函數(shù)的作用:引入非線性因素
池化的作用:減少特征維度大小,使特征更加可控;減少參數(shù)個數(shù),從而控制過擬合程度;增加網(wǎng)絡(luò)對略微變換后的圖像的魯棒性;達(dá)到一種尺度不變性,即無論物體在圖像中哪個方位均可以被檢測到
18.1x1大小的卷積核的作用
通過控制卷積核個數(shù)實(shí)現(xiàn)升維或者降維,從而減少模型參數(shù)
對不同特征進(jìn)行歸一化操作
用于不同channel上特征的融合
19.常見激活函數(shù)特點(diǎn)
sigmoid:輸入值很大時對應(yīng)的函數(shù)值接近1或0,處于函數(shù)的飽和區(qū),導(dǎo)致梯度幾乎為0,造成梯度消失問題
Relu:解決梯度消失問題,但是會出現(xiàn)dying relu現(xiàn)象,即訓(xùn)練過程中,有些神經(jīng)元實(shí)際上已經(jīng)"死亡“而不再輸出任何數(shù)值
Leaky Relu:f = max(αx, x),解決dying relu問題,α的取值較大時比較小時的效果更好。它有一個衍生函數(shù),parametric Leaky Relu,在該函數(shù)中α是需要去學(xué)習(xí)的
ELU:避免dying神經(jīng)元,并且處處連續(xù),從而加速SGD,但是計算比較復(fù)雜
激活函數(shù)的選擇順序:ELU>Leaky Relu及其變體>Relu>tanh>sigmoid
20.訓(xùn)練過程中,若一個模型不收斂,那么是否說明這個模型無效?導(dǎo)致模型不收斂的原因有哪些?
并不能說明這個模型無效,導(dǎo)致模型不收斂的原因可能有數(shù)據(jù)分類的標(biāo)注不準(zhǔn)確;樣本的信息量太大導(dǎo)致模型不足以fit整個樣本空間;
學(xué)習(xí)率設(shè)置的太大容易產(chǎn)生震蕩,太小會導(dǎo)致不收斂;可能復(fù)雜的分類任務(wù)用了簡單的模型;數(shù)據(jù)沒有進(jìn)行歸一化的操作。
21.深度學(xué)習(xí)中的不同最優(yōu)化方式,如SGD,ADAM下列說法中正確的是?
A.在實(shí)際場景下,應(yīng)盡量使用ADAM,避免使用SGD
B.同樣的初始學(xué)習(xí)率情況下,ADAM的收斂速度總是快于SGD方法
C.相同超參數(shù)數(shù)量情況下,比起自適應(yīng)的學(xué)習(xí)率調(diào)整方式,SGD加手動調(diào)節(jié)通常會取得更好效果
D.同樣的初始學(xué)習(xí)率情況下,ADAM比SGD容易過擬合
S: C
22.深度學(xué)習(xí):凸與非凸的區(qū)別
凸:
指的是順著梯度方向走到底就一定是最優(yōu)解 。
大部分傳統(tǒng)機(jī)器學(xué)習(xí)問題都是凸的。
非凸:
指的是順著梯度方向走到底只能保證是局部最優(yōu),不能保證是全局最優(yōu)。
深度學(xué)習(xí)以及小部分傳統(tǒng)機(jī)器學(xué)習(xí)問題都是非凸的。
23.googlenet提出的Inception結(jié)構(gòu)優(yōu)勢有()
A.保證每一層的感受野不變,網(wǎng)絡(luò)深度加深,使得網(wǎng)絡(luò)的精度更高
B.使得每一層的感受野增大,學(xué)習(xí)小特征的能力變大
C.有效提取高層語義信息,且對高層語義進(jìn)行加工,有效提高網(wǎng)絡(luò)準(zhǔn)確度
D.利用該結(jié)構(gòu)有效減輕網(wǎng)絡(luò)的權(quán)重
S:AD.
24.深度學(xué)習(xí)中的激活函數(shù)需要具有哪些屬性?()
A.計算簡單
B.非線性
C.具有飽和區(qū)
D.幾乎處處可微
S: ABC
relu函數(shù)在0處是不可微的。
25.關(guān)于神經(jīng)網(wǎng)絡(luò)中經(jīng)典使用的優(yōu)化器,以下說法正確的是
A.Adam的收斂速度比RMSprop慢
B.相比于SGD或RMSprop等優(yōu)化器,Adam的收斂效果是最好的
C.對于輕量級神經(jīng)網(wǎng)絡(luò),使用Adam比使用RMSprop更合適
D.相比于Adam或RMSprop等優(yōu)化器,SGD的收斂效果是最好的
S: D
SGD通常訓(xùn)練時間更長,容易陷入鞍點(diǎn),但是在好的初始化和學(xué)習(xí)率調(diào)度方案的情況下,結(jié)果更可靠。如果在意更快的收斂,并且需要訓(xùn)練較深較復(fù)雜的網(wǎng)絡(luò)時,推薦使用學(xué)習(xí)率自適應(yīng)的優(yōu)化方法。
26.以下說法錯誤的是
A.使用ReLU做為激活函數(shù),可有效地防止梯度爆炸
B.使用Sigmoid做為激活函數(shù),較容易出現(xiàn)梯度消失
C.使用Batch Normalization層,可有效的防止梯度爆炸
D.使用參數(shù)weight decay,在一程度上可防止模型過擬合
S: C
意思是BN解決的是梯度消失問題?對結(jié)果存疑。認(rèn)為二者皆可防止。
27.以下哪種方法一般不用于在大數(shù)據(jù)集上訓(xùn)練DNN:
A.SGD B.FTRL C.RMSProp D.L-BFGS
S: D
L-BFGS(Limited-memory BFGS,內(nèi)存受限擬牛頓法)方法:所有的數(shù)據(jù)都會參與訓(xùn)練,算法融入方差歸一化和均值歸一化。大數(shù)據(jù)集訓(xùn)練DNN,容易參數(shù)量過大 (牛頓法的進(jìn)化版本,尋找更好的優(yōu)化方向,減少迭代輪數(shù))從LBFGS算法的流程來看,其整個的核心的就是如何快速計算一個Hesse的近似:重點(diǎn)一是近似,所以有了LBFGS算法中使用前m個近似下降方向進(jìn)行迭代的計算過程;重點(diǎn)二是快速,這個體現(xiàn)在不用保存Hesse矩陣上,只需要使用一個保存后的一階導(dǎo)數(shù)序列就可以完成,因此不需要大量的存儲,從而節(jié)省了計算資源;重點(diǎn)三,是在推導(dǎo)中使用秩二校正構(gòu)造了一個正定矩陣,即便這個矩陣不是最優(yōu)的下降方向,但至少可以保證函數(shù)下降。
FTRL(Follow-the-regularized-Leader)是一種適用于處理超大規(guī)模數(shù)據(jù)的,含大量稀疏特征的在線學(xué)習(xí)的常見優(yōu)化算法,方便實(shí)用,而且效果很好,常用于更新在線的CTR預(yù)估模型;FTRL在處理帶非光滑正則項(xiàng)(如L1正則)的凸優(yōu)化問題上表現(xiàn)非常出色,不僅可以通過L1正則控制模型的稀疏度,而且收斂速度快;
28.下列關(guān)于深度學(xué)習(xí)說法錯誤的是
A.LSTM在一定程度上解決了傳統(tǒng)RNN梯度消失或梯度爆炸的問題
B.CNN相比于全連接的優(yōu)勢之一是模型復(fù)雜度低,緩解過擬合
C.只要參數(shù)設(shè)置合理,深度學(xué)習(xí)的效果至少應(yīng)優(yōu)于隨機(jī)算法
D.隨機(jī)梯度下降法可以緩解網(wǎng)絡(luò)訓(xùn)練過程中陷入鞍點(diǎn)的問題
S: C.
29.多尺度問題怎么解決?
實(shí)際上,現(xiàn)在有很多針對小目標(biāo)的措施和改良,如下:
最常見的是Upsample來Rezie網(wǎng)絡(luò)輸入圖像的大小;
用dilated/astrous等這類特殊的卷積來提高檢測器對分辨率的敏感度;(空洞卷積是針對圖像語義分割問題中下采樣會降低圖像分辨率、丟失信息而提出的一種卷積思路。利用添加空洞擴(kuò)大感受野,讓原本3 x3的卷積核,在相同參數(shù)量和計算量下?lián)碛?x5(dilated rate =2)或者更大的感受野,從而無需下采樣。在保持參數(shù)個數(shù)不變的情況下增大了卷積核的感受野)
有比較直接的在淺層和深層的Feature Map上直接各自獨(dú)立做預(yù)測的,這個就是我們常說的尺度問題。
用FPN這種把淺層特征和深層特征融合的,或者最后在預(yù)測的時候,用淺層特征和深層特征一起預(yù)測;
SNIP(Scale Normalization for Image Pyramids)主要思路:
在訓(xùn)練和反向傳播更新參數(shù)時,只考慮那些在指定的尺度范圍內(nèi)的目標(biāo),由此提出了一種特別的多尺度訓(xùn)練方法。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4717瀏覽量
100010 -
計算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1685瀏覽量
45811 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5422瀏覽量
120593
原文標(biāo)題:深度學(xué)習(xí)&計算機(jī)視覺常見的29道面試題及解析
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論