閱讀485 返回首頁    go 阿裏雲 go 技術社區[雲棲]


辨別真假數據科學家必備手冊:深度學習45個基礎問題(附答案)


0?wx_fmt=jpeg

簡介


早在2009年,深度學習還隻是一個新興領域,隻有少數人認為它是一個多產的研究方向。今天,深度學習正在被用來開發那些過去被認為是不可能完成的應用。

語音識別,圖像識別,數據中的模式識別,照片中的對象分類,字符文本生成,自動駕駛汽車等等隻是其中幾個示例。因此,熟悉深度學習及其概念顯得尤為重要。

在這個測試中,我們考察了社區成員的深度學習基本概念。總共有1070人參加了這項技能測試。

如果你錯過了這次測試,下麵這些問題就是你檢查自身技能水平的好機會。

0?wx_fmt=png


總體結果


下麵是成績的分布圖,有助您評估自己的表現。

0?wx_fmt=png


你可以在這裏獲取到全部的成績,超過200人參加了這項測試,最高得分是35分。這裏是成績分布的統計描述:


總體分布

平均分: 16.45

中位數: 20

眾數: 0

看起來很多人很晚才開始比賽,或者隻回答了幾個題目就沒有繼續下去。我並不知道確切的原因,可能是測試題目對大多數參與者過於困難。

如果你對這個現象背後的原因有任何洞見,歡迎聯係我們。

有用的資源


·Fundamentals of Deep Learning – Starting with Artificial Neural Network(https://www.analyticsvidhya.com/blog/2016/03/introduction-deep-learning-fundamentals-neural-networks/)

·Practical Guide to implementing Neural Networks in Python (using Theano)(https://www.analyticsvidhya.com/blog/2016/04/neural-networks-python-theano/)

·A Complete Guide on Getting Started with Deep Learning in Python(https://www.analyticsvidhya.com/blog/2016/08/deep-learning-path/)

·Tutorial: Optimizing Neural Networks using Keras (with Image recognition case study)(https://www.analyticsvidhya.com/blog/2016/10/tutorial-optimizing-neural-networks-using-keras-with-image-recognition-case-study/)

·An Introduction to Implementing Neural Networks using TensorFlow(https://www.analyticsvidhya.com/blog/2016/10/an-introduction-to-implementing-neural-networks-using-tensorflow/)

題目和答案


1

神經網絡模型(Neural Network)因受人腦的啟發而得名。

0?wx_fmt=png

神經網絡由許多神經元(Neuron)組成,每個神經元接受一個輸入,處理它並給出一個輸出。這裏是一個真實的神經元的圖解表示。下列關於神經元的陳述中哪一個是正確的?

0?wx_fmt=png

  1. 一個神經元隻有一個輸入和一個輸出

  2. 一個神經元有多個輸入和一個輸出

  3. 一個神經元有一個輸入和多個輸出

  4. 一個神經元有多個輸入和多個輸出

  5. 上述都正確

答案:(E)

一個神經元可以有一個或多個輸入,和一個或多個輸出。

2

下圖是一個神經元的數學表達

0?wx_fmt=png

神經元的組成部分表示為:

-       x1, x2,…, xN:表示神經元的輸入。可以是輸入層的實際觀測值,也可以是某一個隱層(Hidden Layer)的中間值

-       w1, w2,…,wN:表示每一個輸入的權重

-       bi:表示偏差單元(bias unit)。作為常數項加到激活函數的輸入當中,和截距(Intercept)項相似

-       a:代表神經元的激勵(Activation),可以表示為

0?wx_fmt=png

-       y:神經元輸出

考慮上述標注,線性等式(y = mx + c)可以被認為是屬於神經元嗎:

A.        是

B.        否

答案:(A)

一個不包含非線性的神經元可以看作是線性回歸函數(Linear Regression Function)。  

3

假設在一個神經元上實現和(AND)函數,下表是和函數的表述

X1

X2

X1 AND X2

0

0

0

0

1

0

1

0

0

1

1

1

激活函數為:

0?wx_fmt=png

0?wx_fmt=png

權重(Weights)和偏差(Bias)哪一組是正確的?

(提示:對哪一組w1, w2, b神經元可以實現AND函數)

A. Bias = -1.5, w1 = 1, w2 = 1

B. Bias = 1.5, w1 = 2, w2 = 2

C. Bias = 1, w1 = 1.5, w2 = 1.5

D. 以上都不正確

答案:(A)

1. f(-1.5*1 + 1*0 + 1*0) = f(-1.5) = 0

2. f(-1.5*1 + 1*0 + 1*1) = f(-0.5) = 0

3. f(-1.5*1 + 1*1 + 1*0) = f(-0.5) = 0

4.  f(-1.5*1 + 1*1+ 1*1) = f(0.5) = 1

帶入測試值,A選項正確


4

多個神經元堆疊在一起構成了神經網絡,我們舉一個例子,用神經網絡模擬同或門(XNOR)。

0?wx_fmt=png


你可以看見最後一個神經元有兩個輸入。所有神經元的激活函數是:

0?wx_fmt=png

假設X1是0,X2是1,神經網絡的輸出是什麼?

  1. 0

  2. 1

答案:(A)

a1輸出: f(0.5*1 + -1*0 + -1*1) = f(-0.5) = 0

a2輸出: f(-1.5*1 + 1*0 + 1*1) = f(-0.5) = 0

a3輸出: f(-0.5*1 + 1*0 + 1*0) = f(-0.5) = 0

正確答案是A

5

在一個神經網絡裏,知道每一個神經元的權重和偏差是最重要的一步。如果以某種方法知道了神經元準確的權重和偏差,你就可以近似任何函數。實現這個最佳的辦法是什麼?

  1. 隨機賦值,祈禱它們是正確的

  2. 搜索所有權重和偏差的組合,直到得到最佳值

  3. 賦予一個初始值,通過檢查跟最佳值的差值,然後迭代更新權重

  4. 以上都不正確

答案:(C)

選項C是對梯度下降的描述。

6

梯度下降算法的正確步驟是什麼?

  1. 計算預測值和真實值之間的誤差

  2. 迭代跟新,直到找到最佳權重

  3. 把輸入傳入網絡,得到輸出值

  4. 初始化隨機權重和偏差

  5. 對每一個產生誤差的神經元,改變相應的(權重)值以減小誤差

A. 1, 2, 3, 4, 5

B. 5, 4, 3, 2, 1

C. 3, 2, 1, 5, 4

D. 4, 3, 1, 5, 2

答案:(D)

選項D是正確的 

7

假設你有輸入x,y,z,值分別是-2,5,-4。你有神經元q和f,函數分別為q = x + y,f = q * z。函數的圖示如下圖:

0?wx_fmt=png

F對x,y和z的梯度分別是?(提示:計算梯度,你必須找到df/dx, df/dy和df/dz)

A. (-3,4,4)

B. (4,4,3)

C. (-4,-4,3)

D. (3,-4,-4)

答案:(C)

選項C是正確的。

8

現在回顧之前的內容。我們學到了:

-       大腦是有很多叫做神經元的東西構成,神經網絡是對大腦的粗糙的數學表達。

-       每一個神經元都有輸入、處理函數和輸出。

-       神經元堆疊起來形成了網絡,用作近似任何函數。

-       為了得到最佳的神經網絡,我們用梯度下降方法不斷更新模型

給定上述關於神經網絡的描述,什麼情況下神經網絡模型被稱為深度學習模型?

  1. 加入更多層,使神經網絡的深度增加

  2. 有維度更高的數據

  3. 當這是一個圖形識別的問題時

  4. 以上都不正確

答案:(A)

更多層意味著網絡更深。沒有嚴格的定義多少層的模型才叫深度模型,目前如果有超過2層的隱層,那麼也可以及叫做深度模型。 

9

神經網絡可以認為是多個簡單函數的堆疊。假設我們想重複下圖所示的決策邊界

0?wx_fmt=png

使用兩個簡單的輸入h1和h2

0?wx_fmt=png

最終的等式是什麼?

A. (h1 AND NOT h2) OR (NOT h1 AND h2)

B. (h1 OR NOT h2) AND (NOT h1 OR h2)

C. (h1 AND h2) OR (h1 OR h2)

D. None of these

答案:(A)

你可以看見,巧妙地合並h1和h2可以很容易地得到複雜的等式。參見這本書的第九章。 

10

卷積神經網絡可以對一個輸入完成不同種類的變換(旋轉或縮放),這個表述正確嗎?

  1. 正確

  2. 錯誤

答案:(B)

數據預處理(也就是旋轉、縮放)步驟在把數據傳入神經網絡之前是必要的,神經網絡自己不能完成這些變換。

11

下列哪一種操作實現了和神經網絡中Dropout類似的效果?

A. Bagging

B. Boosting

C. 堆疊(Stacking)

D. 以上都不正確

答案:(A)

Dropout可以認為是一種極端的Bagging,每一個模型都在單獨的數據上訓練,通過和其他模型對應參數的共享,模型的參數都進行了很強的正則化。參見這裏。

12

下列哪哪一項在神經網絡中引入了非線性?

  1. 隨機梯度下降

  2. 修正線性單元(ReLU)

  3. 卷積函數

  4. 以上都不正確

答案:(B)

修正線性單元是非線性的激活函數。 

13

訓練神經網絡過程中,損失函數在一些時期(Epoch)不再減小

0?wx_fmt=png

原因可能是:

  1. 學習率(Learning rate)太低

  2. 正則參數太大

  3. 卡在了局部最小值

在你看來哪些是可能的原因?

A. 1 and 2

B. 2 and 3

C. 1 and 3

D. 都不是

答案:(D)

以上原因都可能造成這個結果。

14

下列哪項關於模型能力(model capacity)的描述是正確的?(指模型能近似複雜函數的能力)

  1. 隱層層數增加,模型能力增加

  2. Dropout的比例增加,模型能力增加

  3. 學習率增加,模型能力增加

  4. 都不正確

答案:(A)

隻有選項A正確。 

15

如果增加多層感知機(Multilayer Perceptron)的隱層層數,測試集的分類錯誤會減小。這種陳述正確還是錯誤?

  1. 正確

  2. 錯誤

答案:(B)

並不總是正確。過擬合可能會導致錯誤增加。  

16

構建一個神經網絡,將前一層的輸出和它自身作為輸入。

 

0?wx_fmt=png

下列哪一種架構有反饋連接?

  1. 循環神經網絡

  2. 卷積神經網絡

  3. 限製玻爾茲曼機

  4. 都不是

答案:(A)

選項A正確。

17

在感知機中(Perceptron)的任務順序是什麼?

  1. 初始化隨機權重

  2. 去到數據集的下一批(batch)

  3. 如果預測值和輸出不一致,改變權重

  4. 對一個輸入樣本,計算輸出值

A. 1, 2, 3, 4

B. 4, 3, 2, 1

C. 3, 1, 2, 4

D. 1, 4, 3, 2

答案:(D)

順序D是正確的。

18

假設你需要改變參數來最小化代價函數(cost function),可以使用下列哪項技術?

A.        窮舉搜索

B.        隨機搜索

C.        Bayesian優化

D.        以上任意一種

答案:(D)

以上任意種技術都可以用來更新參數。

19

在哪種情況下,一階梯度下降不一定正確工作(可能會卡住)?

A.  

0?wx_fmt=png

B.    

0?wx_fmt=png

C.

0?wx_fmt=png

D. 以上都不正確

答案:(B)

這是鞍點(Saddle Point)的梯度下降的經典例子。 

20

訓練好的三層卷積神經網絡的精確度(Accuracy)vs 參數數量(比如特征核的數量)的圖示如下。

0?wx_fmt=png

從圖中趨勢可見,如果增加神經網絡的寬度,精確度會增加到一個閾值,然後開始降低。這一現象的可能是什麼原因是造成的?

  1. 即便核數量(number of kernels)增加,隻有一部分核被用於預測

  2. 當核數量增加,神經網絡的預測功效(Power)降低

  3. 當核數量增加,其相關性增加,導致過擬合

  4. 以上都不正確

答案:(C)

如C選項指出的那樣,可能的原因是核之間的相關性。

21

假設我們有一個隱層神經網絡,如上所示。隱層在這個網絡中用於降維。現在我們並不是采用這個隱層,而是使用例如主成分分析(Principal Component Analysis, PCA)的降維技術。

0?wx_fmt=png

使用降維技術的網絡與隱層網絡總是有相同的輸出嗎?

A.是

B.否

答案:(B)

因為PCA用於相關特征而隱層用於有預測能力的特征

22

可以用神經網絡對函數(y=1/x)建模嗎?

A.是

B.否

答案:(A)

選項A是正確的,因為激活函數可以是互反函數

23

下列哪個神經網絡結構會發生權重共享?

A.卷積神經網絡

B.循環神經網絡

C.全連接神經網絡

D.選項A和B

答案:(D)

24

批規範化是有幫助的,因為

A.在將所有的輸入傳遞到下一層之前對其進行歸一化(更改)

B.它將返回歸一化的權重平均值和標準差

C.它是一種非常有效的反向傳播技術

D.這些均不是

答案:(A)

要詳細了解批規範化,請參閱此視頻。

25

我們不是想要絕對零誤差,而是設置一個稱為貝葉斯(bayes)誤差(我們希望實現的誤差)的度量。使用貝葉斯(bayes)誤差的原因是什麼?

A.輸入變量可能不包含有關輸出變量的完整信息

B.係統(創建輸入-輸出映射)可以是隨機的

C.有限的訓練數據

D.所有

答案:(D)

想在現實中實現準確的預測,是一個神話,所以我們的希望應該放在實現一個“可實現的結果”上。

26

在監督學習任務中,輸出層中的神經元的數量應該與類的數量(其中類的數量大於2)匹配。對或錯?

A.正確

B.錯誤

答案:(B)

它取決於輸出編碼。如果是獨熱編碼(one-hot encoding) 則正確。但是你可以有兩個輸出囊括四個類,並用二進製值表示出來(00,01,10,11)。

27

在神經網絡中,以下哪種技術用於解決過擬合?

A.Dropout

B.正則化

C.批規範化

D.所有

答案:(D)

所有的技術都可以用於處理過擬合。

28

Y = ax^2 + bx + c(二次多項式)

這個方程可以用具有線性閾值的單個隱層的神經網絡表示嗎?

A.是

B.否

答案:(B)

答案為否。因為簡單來說,有一個線性閾值限製神經網絡就會使它成為一個相應的線性變換函數。

29

神經網絡中的死神經元(dead unit)是什麼?

A.在訓練任何其它相鄰單元時,不會更新的單元

B.沒有完全響應任何訓練模式的單元

C.產生最大平方誤差的單元

D.以上均不符合

答案:(A)

30

以下哪項是對早期停止的最佳描述?

A.訓練網絡直到達到誤差函數中的局部最小值

B.在每次訓練期後在測試數據集上模擬網絡,當泛化誤差開始增加時停止訓練

C.在中心化權重更新中添加一個梯度下降加速算子,以便訓練更快地收斂

D.更快的方法是反向傳播,如‘Quickprop’算法

答案:(B)

31

如果我們使用的學習率太大該怎麼辦?

A.網絡將收斂

B.網絡將無法收斂

C.不確定

答案:(B)

選項B正確,因為錯誤率會變得不穩定並且達到非常大的值

32

圖1所示的網絡用於訓練識別字符H和T,如下所示:

0?wx_fmt=png

網絡的輸出是什麼?

A.

0?wx_fmt=png

B.

0?wx_fmt=png

C.

0?wx_fmt=png

D.可能是A或B,取決於神經網絡的權重

答案:(D)

不知道神經網絡的權重和偏差是什麼,則無法評論它將會給出什麼樣的輸出。

33

假設在ImageNet數據集(對象識別數據集)上訓練卷積神經網絡。然後給這個訓練模型一個完全白色的圖像作為輸入。這個輸入的輸出概率對於所有類都是相等的。對或錯?

A.正確

B.錯誤

答案:(B)

將存在一些不為白色像素激活的神經元作為輸入,所以類不會相等。

34

當在卷積神經網絡中添加池化層(pooling layer)時,變換的不變性保持穩定,這樣的理解是否正確?

A.正確

B.錯誤

答案:(A)

使用池化時會導致出現不變性。

35

Q35.當數據太大而不能同時在RAM中處理時,哪種梯度技術更有優勢?

A.全批量梯度下降(Full Batch Gradient Descent )

B.隨機梯度下降(Stochastic Gradient Descent)

答案:(B)

36

該圖表示,使用每個訓練時期的激活函數,-訓練有四個隱藏層的神經網絡梯度流。神經網絡遭遇了梯度消失問題。

0?wx_fmt=png

下列哪項正確?

A.隱藏層1對應於D,隱藏層2對應於C,隱藏層3對應於B,隱藏層4對應於A

B.隱藏層1對應於A,隱藏層2對應於B,隱藏層3對應於C,隱藏層4對應於D

答案:(A)

這是對消失梯度描述的問題。由於反向傳播算法進入起始層,學習能力降低。

37

對於分類任務,我們不是將神經網絡中的隨機權重初始化,而是將所有權重設為零。下列哪項是正確的?

A.沒有任何問題,神經網絡模型將正常訓練

B.神經網絡模型可以訓練,但所有的神經元最終將識別同樣的事情

C.神經網絡模型不會進行訓練,因為沒有淨梯度變化

D.這些均不會發生

答案:(B)

38

開始時有一個停滯期,這是因為神經網絡在進入全局最小值之前陷入局部最小值。

0?wx_fmt=png

為了避免這種情況,下麵的哪個策略有效?

A.增加參數的數量,因為網絡不會卡在局部最小值處

B.在開始時把學習率降低10倍,然後使用梯度下降加速算子(momentum)

C.抖動學習速率,即改變幾個時期的學習速率

D.以上均不是

答案:(C)

選項C可以將陷於局部最小值的神經網絡提取出來。

39

對於圖像識別問題(比如識別照片中的貓),神經網絡模型結構更適合解決哪類問題?

A.多層感知器

B.卷積神經網絡

C.循環神經網絡

D.感知器

答案:(B)

卷積神經網絡將更好地適用於圖像相關問題,因為考慮到圖像附近位置變化的固有性質。

40

假設在訓練時,你遇到這個問題。在幾次迭代後,錯誤突然增加。

0?wx_fmt=png

您確定數據一定有問題。您將數據描繪出來,找到了原始數據有點偏離,這可能是導致出現問題的地方。

0?wx_fmt=png

你將如何應對這個挑戰?

A.歸一化

B.應用PCA然後歸一化

C.對數據進行對數變換

D.以上這些都不符合

答案:(B)

首先您將相關的數據去掉,然後將其置零。

41

以下哪項是神經網絡的決策邊界?

0?wx_fmt=png

A) B

B) A

C) D

D) C

E) 以上所有

答案:(E)

神經網絡被稱為通用函數擬合器(universal function approximator),所以它理論上可以表示任何決策邊界。 

42

在下麵的圖中,我們觀察到錯誤有許多“起伏”,我們該為此而擔心嗎?

A.是,因為這意味著神經網絡的學習速率有問題。

B.否,隻要訓練和驗證錯誤累積減少,我們就不必擔心。

答案:(B)

選項B是正確的,為了減少這些“起伏”,可以嚐試增加批尺寸(batch size)

43

什麼是影響神經網絡的深度選擇的因素?

1.神經網絡的類型,例如:多層感知機(Multi-Layer Perceptrons, MLP),卷積神經網絡(Convolutional Neural Networks, CNN)

2.輸入數據

3.計算能力,即硬件和軟件能力

4.學習率

5.輸出函數映射

A. 1, 2, 4, 5

B. 2, 3, 4, 5

C. 1, 3, 4, 5

D. 以上均是

答案:(D)

所有上述因素對於選擇神經網絡模型的深度都是重要的。

44

考慮這種情況:您嚐試解決的問題有少量的數據。幸運的是,您有一個之前訓練過的針對類似問題的神經網絡模型。您將使用以下哪種方法來使用該預先訓練的模型?

A.對於新的數據集重新訓練模型

B.在每一層評估模型如何執行,隻選擇其中的一些

C.隻微調最後幾層

D.凍結除最後一層之外的所有層,重新訓練最後一層

答案:(D)

如果數據集大部分相似,最好的方法是隻訓練最後一層,因為前麵的所有層都用於特征提取。

45

增大卷積核的大小必然會提高卷積神經網絡的性能。

A.正確

B.錯誤

答案:(B)

增加核函數的大小不一定會提高性能。這個問題在很大程度上取決於數據集。

原文發布時間為:2017-02-27

本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號

最後更新:2017-05-23 17:03:34

  上一篇:go  並發集合(八)使用原子變量
  下一篇:go  Java設計模式:策略模式