原文:45 Questions to test a data scientist on basics of Deep Learning (along with solution)
作者:Faizan Shaikh
翻譯:Kaiser,楊哲寧
前言
遲至2009年,深度學(xué)習(xí)還是一片有待拓荒的處女地,只有極少數(shù)人發(fā)現(xiàn)其中蘊(yùn)藏的巨大潛力。而如今,深度學(xué)習(xí)已經(jīng)廣泛用于解決那些,曾經(jīng)被認(rèn)為不可能的任務(wù)。
語音識(shí)別,圖像識(shí)別;數(shù)據(jù)集里找模式,照片當(dāng)中尋分類;文能生成字符串,武可自動(dòng)開汽車。所以有必要熟悉一些深度學(xué)習(xí)的基礎(chǔ)概念。我們?cè)谏鐓^(qū)(注:指Analytic Vidhya社區(qū))中測試了深度學(xué)習(xí)的基礎(chǔ)概念,共有1070人參與。
成績分布(基于原站統(tǒng)計(jì)結(jié)果)
整體分布:
平均分:16.45
中位數(shù):20
那么問題來了
Q1. 神經(jīng)網(wǎng)絡(luò)模型是由人類大腦啟發(fā)而來。
神經(jīng)網(wǎng)絡(luò)由眾多神經(jīng)元構(gòu)成,每個(gè)神經(jīng)元讀取并處理輸入信號(hào),再產(chǎn)生輸出。
關(guān)于神經(jīng)元的敘述,哪些是正確的?
每個(gè)神經(jīng)元可以有多個(gè)輸入,和一個(gè)輸出。
每個(gè)神經(jīng)元可以有多個(gè)輸出,和一個(gè)輸入。
每個(gè)神經(jīng)元可以有多個(gè)輸入,和多個(gè)輸出。
每個(gè)神經(jīng)元可以有一個(gè)輸入,和一個(gè)輸出。
Q2. 下面是一個(gè)神經(jīng)元的數(shù)學(xué)表示。
不同組件的意義為:
$x_1, x_2, ..., x_N$:神經(jīng)元的輸入??梢允禽斎雽拥膶?shí)際觀測,也可以是隱藏層的中間值。
$w_1, w_2, ..., w_N$:每個(gè)輸入的權(quán)重。
$b_i$:偏移量,根據(jù)權(quán)重、附加在激勵(lì)函數(shù)上的常數(shù)項(xiàng)。
$a$:神經(jīng)元的激勵(lì)函數(shù),可表示為:
$$ a = f(\sum_{i=0}^{N}{w_i x_i}) $$
考慮以上定義,線性方程 (y = mx + c) 可以說是一種神經(jīng)元嗎?
是
否
無可奉告
一派胡言
Q3. 用一個(gè)神經(jīng)元來擬合 AND 函數(shù),下表即為 AND 函數(shù):
X1 | X2 | X1 AND X2 |
---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
神經(jīng)元的激勵(lì)函數(shù)記為:
$$ f(x) = 0 if x < 0;="" 1="" if="" x="" \geq="" 0="">
權(quán)重和偏移分別是多少?(W1,W2和b怎樣取值,我們的神經(jīng)元才能擬合 AND 函數(shù)?)
Bias = -1.5, W1 = 1, W2 = 1
Bias = 1.5, W1 = 2, W2 = 2
Bias = -1, W1 = 1.5, W2 = 1.5
全都是泡沫
Q4. 多個(gè)神經(jīng)元組成網(wǎng)絡(luò),以模擬 XNOR 函數(shù)的神經(jīng)網(wǎng)絡(luò)為例:
最后一個(gè)神經(jīng)元接收了之前兩個(gè)神經(jīng)元的輸入,其激勵(lì)函數(shù)為:
$$ f(x) = 0 if x < 0;="" 1="" if="" x="" \geq="" 0="">
假設(shè) X1 = 0, X2 = 1,以上神經(jīng)網(wǎng)絡(luò)的輸出是?
1
0
666
233
Q5. 在一個(gè)神經(jīng)網(wǎng)絡(luò)中,知道每個(gè)神經(jīng)元的權(quán)重和偏移是最重要的。
獲知每個(gè)神經(jīng)元權(quán)重和偏移的最佳方式是什么呢?
全都不對(duì)。
隨機(jī)賦值,聽天由命。
搜索每個(gè)可能的權(quán)重和偏移組合。
每次賦值之后檢查與最佳值的誤差,微調(diào)參數(shù)獲得小幅提升,并持續(xù)迭代。
Q6. 梯度下降算法
計(jì)算預(yù)測值與真實(shí)值之間的誤差
重復(fù)迭代直至得到網(wǎng)絡(luò)權(quán)重的最佳值
向網(wǎng)絡(luò)傳入輸入值,獲得輸出值
用隨機(jī)值初始化權(quán)重和偏移
調(diào)整對(duì)誤差有貢獻(xiàn)的神經(jīng)元參數(shù),以減少誤差
梯度下降算法的步驟是?
1,2,3,4,5
4,3,1,5,2
5,2,3,1,4
3,2,1,5,4
Q7. 假設(shè)輸入值為x, y, z分別為-2,5,-4,并有神經(jīng)元q
和f
:
$$ q = x + y$$
$$ f = q * z$$
F對(duì)x, y, z的梯度是多少?
(3, -4, -4)
(-3, 4, 4)
(4, 4, 3)
(-4, -4, 3)
Q8. 已知:
神經(jīng)網(wǎng)絡(luò)是對(duì)大腦的一種粗糙數(shù)學(xué)表示,由小單位——神經(jīng)元組成。
每個(gè)神經(jīng)元都有輸入、處理函數(shù)和輸出。
神經(jīng)元組合形成網(wǎng)絡(luò),可以擬合任何函數(shù)。
為了得到最好的神經(jīng)網(wǎng)絡(luò),需要梯度下降等方法來更新模型。
以上為神經(jīng)網(wǎng)絡(luò)相關(guān)的描述,那什么時(shí)候神經(jīng)網(wǎng)絡(luò)才能成為一個(gè)“深度學(xué)習(xí)”模型呢?
當(dāng)數(shù)據(jù)緯度更高的時(shí)候
當(dāng)目標(biāo)問題是圖像識(shí)別的時(shí)候
山無棱,天地合
當(dāng)你添加更多隱藏層,增加網(wǎng)絡(luò)深度的時(shí)候。
Q9. 神經(jīng)網(wǎng)絡(luò)可以看作是簡單的方程堆疊形成。
如果要用兩個(gè)簡單的輸入h1
和h2
:
來浮現(xiàn)如下決策邊界:
最終的方程應(yīng)該是?
(h1 AND NOT h2) OR (NOT h1 AND h2)
(h1 AND h2) OR (h1 OR h2)
(h1 OR NOT h2) AND (NOT h1 OR h2)
(NOT h1 AND NOT h2) OR (NOT h1 AND NOT h2)
Q10.
“卷積神經(jīng)網(wǎng)絡(luò)可以對(duì)輸入進(jìn)行多種變換(旋轉(zhuǎn)、縮放、平移等)”,這句話是否正確?
否
無可奉告
未知領(lǐng)域
是
Q11.
下面哪種技術(shù)與神經(jīng)網(wǎng)絡(luò)中的Dropout相似?
Stacking
Bagging
Boosting
Mapping
Q12.
下面哪一步使神經(jīng)網(wǎng)絡(luò)具有了非線性?
修正線性單元(Rectified Linear Unit)
全連接層(Fully Connected Layers)
隨機(jī)梯度下降(Stochastic Gradient Descent)
卷積函數(shù)(Convlution function)
Q13. 在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),你可能會(huì)注意到,損失函數(shù)(loss)在最初的幾個(gè)epochs時(shí)沒有下降。
對(duì)原因的猜測:
學(xué)習(xí)率(learning rate)太低
正則參數(shù)太高
陷入局部最小值
Q14.
以下關(guān)于模型性能的敘述,哪個(gè)是正確的?(模型性能,指神經(jīng)網(wǎng)絡(luò)擬合復(fù)雜函數(shù)的能力)
性能隨隱藏層數(shù)量提升
性能隨學(xué)習(xí)率提升
全都不對(duì)
性能Dropout率提升
Q15.
“在多層感知機(jī)(Multi Layer Perceptron)里增加隱藏層數(shù)量,分類誤差總是下降”,這句話對(duì)嗎?
錯(cuò)
就不告訴你
那玩意兒誰知道
對(duì)
Q16. 你正在搭建一個(gè)神經(jīng)網(wǎng)絡(luò),既從前一層獲取輸入,也從自己獲取輸入。
哪種神經(jīng)網(wǎng)絡(luò)架構(gòu)具有反饋連接?
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network)
支持向量機(jī)(Support Vector Machine)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)
受限玻爾茲曼機(jī)(Restricted Boltzmann Machine)
Q17. 感知機(jī)的正確順序
隨機(jī)初始化感知機(jī)權(quán)重
進(jìn)入下一批數(shù)據(jù)集
如果預(yù)測與輸出不符,則調(diào)整權(quán)重
對(duì)于采樣輸入,計(jì)算輸出
怎樣的順序是正確的?
1, 4, 3, 2
1, 4, 2, 3
1, 2, 3, 4
1, 3, 4, 2
Q18.
通過調(diào)整參數(shù),最小化代價(jià)函數(shù),哪些技術(shù)是可以用上的?
窮舉搜索(Exhaustive Search)
貝葉斯優(yōu)化(Bayesian Optimization)
隨機(jī)搜索(Random Search)
任意一個(gè)
Q19.
一階梯度下降對(duì)哪一圖中的情形無效?
A
B
C
都不是
Q20. 下圖顯示了訓(xùn)練過的3層卷積神經(jīng)網(wǎng)絡(luò)準(zhǔn)確度,與參數(shù)數(shù)量(特征核的數(shù)量)的關(guān)系。
上圖的趨勢顯示出當(dāng)你增加一個(gè)神經(jīng)網(wǎng)絡(luò)的寬度時(shí),他的準(zhǔn)確率會(huì)逐漸升高直到一個(gè)特定閾值,之后則開始下降。
下面哪個(gè)是造成下降的可能原因?
都不對(duì)
當(dāng)卷積核的數(shù)量增加時(shí),神經(jīng)網(wǎng)絡(luò)的預(yù)測能力會(huì)下降
即使增加卷積核的數(shù)量,只有少部分的核會(huì)被用作預(yù)測
當(dāng)卷積核的數(shù)量增加時(shí),他們之間會(huì)出現(xiàn)相關(guān)效應(yīng)(correlate),造成了過擬合
Q21.
假設(shè)我們有一個(gè)如下圖所示的隱藏層,這個(gè)隱藏層在這個(gè)網(wǎng)絡(luò)中起一個(gè)降維的作用。如果現(xiàn)在我們用另一種維度下降的方法,比如說主成分分析法(PCA)來替代這個(gè)隱藏層。
這兩者的輸出效果是一樣的嗎?
不好說
不知道
否
是
Q22.
神經(jīng)網(wǎng)絡(luò)能組成函數(shù)(y=1/x)嗎?
不知道
不行
看情況
可以
Q23.
關(guān)于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)重共享現(xiàn)象,下面哪個(gè)選項(xiàng)是正確的?
卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)都會(huì)出現(xiàn)
只有卷積神經(jīng)網(wǎng)絡(luò)(CNN)會(huì)出現(xiàn)
只有全連接神經(jīng)網(wǎng)絡(luò)會(huì)出現(xiàn)
只有循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)會(huì)出現(xiàn)
Q24.
分批歸一化(Batch Normalization)的好處都有啥?
它會(huì)返回權(quán)重的歸一化平均值和標(biāo)準(zhǔn)差
該方法是一個(gè)非常有效的后向傳播(BP)技巧
這些好處都沒有
在將輸入傳遞到下一層之前就會(huì)把它們?nèi)繗w一化
Q25.
一般情況下會(huì)用貝葉斯誤差的標(biāo)準(zhǔn)來作為誤差標(biāo)準(zhǔn)而不是完全的零誤差,為什么?
輸入和輸出的映射系統(tǒng)可能是隨機(jī)的
其他選項(xiàng)都是可能原因
輸入的變量也許不包含輸出變量的完整信息
有限的訓(xùn)練數(shù)據(jù)
Q26.
輸出層的神經(jīng)元數(shù)應(yīng)該與分類數(shù)匹配(分類數(shù)大于等于2)則是一個(gè)監(jiān)督學(xué)習(xí)任務(wù),對(duì)嗎?
不是
是
不知道
不可知
Q27.
在一個(gè)神經(jīng)網(wǎng)絡(luò)中,下面哪種方法可以用來處理過擬合?
分批歸一化(Batch Normalization)
Dropout
都可以
正則化(regularization)
Q28.
Y=ax^2+bx+c (二階多項(xiàng)式)
這個(gè)方程能用一個(gè)僅含單隱藏層和線性閾值的神經(jīng)網(wǎng)絡(luò)來表示嗎?
能
不好說
不能
不知道
Q29.
神經(jīng)網(wǎng)絡(luò)中的死神經(jīng)單元是什么?
無法對(duì)任何訓(xùn)練模式進(jìn)行完整反饋的神經(jīng)元
都不是
不能在訓(xùn)練過程中被其他附近神經(jīng)元更新的神經(jīng)元
會(huì)造成最大平方誤差的神經(jīng)元
Q30.
下面哪個(gè)描述可以最好的描述early stopping?
訓(xùn)練網(wǎng)絡(luò)知道誤差函數(shù)出現(xiàn)一個(gè)局部最小值
在每一個(gè)訓(xùn)練epoch后在測試集上模擬網(wǎng)絡(luò),當(dāng)歸一化誤差(generalization error)減小時(shí)停止訓(xùn)練
在權(quán)重值更新時(shí)上加一個(gè)動(dòng)量項(xiàng)(momentum term),使訓(xùn)練能夠更快地收斂
一種更快的后向傳播方式,像是'Quickprop'算法
Q31.
如果我們用了一個(gè)過大的學(xué)習(xí)速率會(huì)發(fā)生什么?
不好說
都不對(duì)
神經(jīng)網(wǎng)絡(luò)不會(huì)收斂
神經(jīng)網(wǎng)絡(luò)會(huì)收斂
Q32.
用來訓(xùn)練識(shí)別字母H和T的神經(jīng)網(wǎng)絡(luò)如下所示:
下面那些是可能的輸出?
C
A
A和B都有可能,取決于神經(jīng)網(wǎng)絡(luò)的權(quán)重設(shè)置
B
Q33.
假設(shè)我們已經(jīng)在ImageNet數(shù)據(jù)集(物體識(shí)別)上訓(xùn)練好了一個(gè)卷積神經(jīng)網(wǎng)絡(luò)。用一張全白的圖片作為輸入。輸出結(jié)果為任何種類的物體的可能性都是一樣的,對(duì)嗎?
看情況
對(duì)的
不知道
不對(duì)
Q34.
當(dāng)在卷積神經(jīng)網(wǎng)絡(luò)中加入池化層(pooling layer)時(shí),平移不變性會(huì)被保留,是嗎?
看情況
不知道
否
是
Q35.
當(dāng)數(shù)據(jù)過大以至于無法在RAM中同時(shí)處理時(shí),那種梯度下降方法更加有效?
隨機(jī)梯度下降法(Stochastic Gradient Descent)
不知道
都不是
整批梯度下降法(Full Batch Gradient Descent)
Q36.
下圖是一個(gè)利用sigmoid函數(shù)作為激活函數(shù)的含四個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)訓(xùn)練的梯度下降圖。這個(gè)神經(jīng)網(wǎng)絡(luò)遇到了梯度消失的問題。
下面哪個(gè)敘述是正確的?
第一隱藏層對(duì)應(yīng)A,第二隱藏層對(duì)應(yīng)B,第三隱藏層對(duì)應(yīng)C,第四隱藏層對(duì)應(yīng)D
第一隱藏層對(duì)應(yīng)B,第二隱藏層對(duì)應(yīng)D,第三隱藏層對(duì)應(yīng)C,第四隱藏層對(duì)應(yīng)A
第一隱藏層對(duì)應(yīng)D,第二隱藏層對(duì)應(yīng)C,第三隱藏層對(duì)應(yīng)B,第四隱藏層對(duì)應(yīng)A
第一隱藏層對(duì)應(yīng)A,第二隱藏層對(duì)應(yīng)C,第三隱藏層對(duì)應(yīng)B,第四隱藏層對(duì)應(yīng)D
Q37.
對(duì)于一個(gè)分類任務(wù),如果開始時(shí)神經(jīng)網(wǎng)絡(luò)的權(quán)重不是隨機(jī)賦值的,二是都設(shè)成0,下面哪個(gè)敘述是正確的?
沒啥問題,神經(jīng)網(wǎng)絡(luò)會(huì)正常開始訓(xùn)練
其他選項(xiàng)都不對(duì)
神經(jīng)網(wǎng)絡(luò)不會(huì)開始訓(xùn)練,因?yàn)闆]有梯度改變
神經(jīng)網(wǎng)絡(luò)會(huì)開始訓(xùn)練,但是所有的神經(jīng)元最后都會(huì)變成識(shí)別同樣的東西
Q38.
下圖顯示,當(dāng)開始訓(xùn)練時(shí),誤差一直很高,這是因?yàn)樯窠?jīng)網(wǎng)絡(luò)在往全局最小值前進(jìn)之前一直被卡在局部最小值里。
為了避免這種情況,我們可以采取下面哪種策略?
其他都不對(duì)
一開始將學(xué)習(xí)速率減小10倍,然后用動(dòng)量項(xiàng)(momentum)
增加參數(shù)數(shù)目,這樣神經(jīng)網(wǎng)絡(luò)就不會(huì)卡在局部最優(yōu)處
改變學(xué)習(xí)速率,比如一開始的幾個(gè)訓(xùn)練周期不斷更改學(xué)習(xí)速率
Q39.
對(duì)于一個(gè)圖像識(shí)別問題(在一張照片里找出一只貓),下面哪種神經(jīng)網(wǎng)絡(luò)可以更好地解決這個(gè)問題?
感知機(jī)
卷積神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)
多層感知機(jī)
Q40.
假設(shè)在訓(xùn)練中我們突然遇到了一個(gè)問題,在幾次循環(huán)之后,誤差瞬間降低
你認(rèn)為數(shù)據(jù)有問題,于是你畫出了數(shù)據(jù)并且發(fā)現(xiàn)也許是數(shù)據(jù)的偏度過大造成了這個(gè)問題。
你打算怎么做來處理這個(gè)問題?
對(duì)數(shù)據(jù)作主成分分析(PCA)和歸一化
對(duì)數(shù)據(jù)取對(duì)數(shù)變化
都不對(duì)
對(duì)數(shù)據(jù)作歸一化
Q41.
下面那個(gè)決策邊界是神經(jīng)網(wǎng)絡(luò)生成的?
A
B
D
C
Q42.
在下圖中,我們可以觀察到誤差出現(xiàn)了許多小的'漲落'。
這種情況我們應(yīng)該擔(dān)心嗎?
不知道
不需要,只要在訓(xùn)練集和交叉驗(yàn)證集上有累積的下降就可以了
需要,這也許意味著神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率存在問題
不好說
Q43.
在選擇神經(jīng)網(wǎng)絡(luò)的深度時(shí),下面那些參數(shù)需要考慮?
神經(jīng)網(wǎng)絡(luò)的類型(如MLP,CNN)
輸入數(shù)據(jù)
計(jì)算能力(硬件和軟件能力決定)
學(xué)習(xí)速率
映射的輸出函數(shù)
1,3,4,5
都需要考慮
2,3,4,5
1,2,4,5
Q44.
考慮某個(gè)具體問題時(shí),你可能只有少量數(shù)據(jù)來解決這個(gè)問題。不過幸運(yùn)的是你有一個(gè)類似問題已經(jīng)預(yù)先訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)??梢杂孟旅婺姆N方法來利用這個(gè)預(yù)先訓(xùn)練好的網(wǎng)絡(luò)?
把除了最后一層外所有的層都凍住,重新訓(xùn)練最后一層
只對(duì)最后幾層進(jìn)行調(diào)參(fine tune)
對(duì)新數(shù)據(jù)重新訓(xùn)練整個(gè)模型
對(duì)每一層模型進(jìn)行評(píng)估,選擇其中的少數(shù)來用
Q45.
增加卷積核的大小對(duì)于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的效果是必要的嗎?
沒聽說過
不知道
否
是
原文:45 Questions to test a data scientist on basics of Deep Learning (along with solution)
目前答題功能還比較簡單,沒有加入計(jì)時(shí)功能和正確率統(tǒng)計(jì)。大家可以分享分享自己一遍做完之后的得分。
如對(duì)題目有疑問,歡迎討論。