機器學習面試系列六

101.深度學習(CNN RNN Attention)解決大規模文本分類問題

  https://zhuanlan.zhihu.com/p/25928551


102.如何解決RNN梯度爆炸和彌散的問題的

  本題解析來源:http://blog.csdn.net/han_xiaoyang/article/details/51932536

  爲了解決梯度爆炸問題,Thomas Mikolov首先提出了一個簡單的啓發性的解決方案,就是當梯度大於一定閾值的的時候,將它截斷爲一個較小的數。具體如算法1所述:

  算法:當梯度爆炸時截斷梯度(僞代碼)

  下圖可視化了梯度截斷的效果。它展示了一個小的rnn(其中W爲權值矩陣,b爲bias項)的決策面。這個模型是一個一小段時間的rnn單元組成;實心箭頭表明每步梯度下降的訓練過程。當梯度下降過程中,模型的目標函數取得了較高的誤差時,梯度將被送到遠離決策面的位置。截斷模型產生了一個虛線,它將誤差梯度拉回到離原始梯度接近的位置。

 


梯度爆炸,梯度截斷可視化 

  爲了解決梯度彌散的問題,我們介紹了兩種方法。第一種方法是將隨機初始化W(hh)改爲一個有關聯的矩陣初始化。第二種方法是使用ReLU(Rectified Linear Units)代替sigmoid函數。ReLU的導數不是0就是1.因此,神經元的梯度將始終爲1,而不會當梯度傳播了一定時間之後變小。


103.如何提高深度學習的性能
http://blog.csdn.net/han_xiaoyang/article/details/52654879


104.RNN、LSTM、GRU區別
  @我愛大泡泡,本題解析來源:http://blog.csdn.net/woaidapaopao/article/details/77806273

  RNN引入了循環的概念,但是在實際過程中卻出現了初始信息隨時間消失的問題,即長期依賴(Long-Term Dependencies)問題,所以引入了LSTM。

  LSTM:因爲LSTM有進有出且當前的cell informaton是通過input gate控制之後疊加的,RNN是疊乘,因此LSTM可以防止梯度消失或者爆炸的變化是關鍵,下圖非常明確適合記憶:

  GRU是LSTM的變體,將忘記門和輸入們合成了一個單一的更新門。  


105.當機器學習性能遭遇瓶頸時,你會如何優化的?

  可以從這4個方面進行嘗試:、基於數據、藉助算法、用算法調參、藉助模型融合。當然能談多細多深入就看你的經驗心得了。這裏有一份參考清單:機器學習性能改善備忘單(http://blog.csdn.net/han_xiaoyang/article/details/53453145)


106.做過什麼樣的機器學習項目?比如如何從零構建一個推薦系統
  這裏有一個推薦系統的公開課http://www.julyedu.com/video/play/18/148,另,再推薦一個課程:機器學習項目班 [10次純項目講解,100%純實戰]


107.什麼樣的資料集不適合用深度學習?
  @抽象猴,來源:https://www.zhihu.com/question/41233373

  a.數據集太小,數據樣本不足時,深度學習相對其它機器學習算法,沒有明顯優勢。

  b.數據集沒有局部相關特性,目前深度學習表現比較好的領域主要是圖像/語音/自然語言處理等領域,這些領域的一個共性是局部相關性。圖像中像素組成物體,語音信號中音位組合成單詞,文本數據中單詞組合成句子,這些特徵元素的組合一旦被打亂,表示的含義同時也被改變。對於沒有這樣的局部相關性的數據集,不適於使用深度學習算法進行處理。舉個例子:預測一個人的健康狀況,相關的參數會有年齡、職業、收入、家庭狀況等各種元素,將這些元素打亂,並不會影響相關的結果。


108.廣義線性模型是怎被應用在深度學習中?
  @許韓,來源:https://www.zhihu.com/question/41233373/answer/145404190
A Statistical View of Deep Learning (I): Recursive GLMs
  深度學習從統計學角度,可以看做遞歸的廣義線性模型。
  廣義線性模型相對於經典的線性模型(y=wx+b),核心在於引入了連接函數g(.),形式變爲:y=g−1(wx+b)。
  深度學習時遞歸的廣義線性模型,神經元的激活函數,即爲廣義線性模型的鏈接函數。邏輯迴歸(廣義線性模型的一種)的Logistic函數即爲神經元激活函數中的Sigmoid函數,很多類似的方法在統計學和神經網絡中的名稱不一樣,容易引起初學者(這裏主要指我)的困惑。下圖是一個對照表

109.準備機器學習面試應該瞭解哪些理論知識
  @穆文,來源:https://www.zhihu.com/question/62482926


  看下來,這些問題的答案基本都在本BAT機器學習面試1000題系列裏了。


110.標準化與歸一化的區別?

  簡單來說,標準化是依照特徵矩陣的列處理數據,其通過求z-score的方法,將樣本的特徵值轉換到同一量綱下。歸一化是依照特徵矩陣的行處理數據,其目的在於樣本向量在點乘運算或其他核函數計算相似性時,擁有統一的標準,也就是說都轉化爲“單位向量”。規則爲l2的歸一化公式如下:

  特徵向量的缺失值處理
  1. 缺失值較多.直接將該特徵捨棄掉,否則可能反倒會帶入較大的noise,對結果造成不良影響。
  2. 缺失值較少,其餘的特徵缺失值都在10%以內,我們可以採取很多的方式來處理:
  1) 把NaN直接作爲一個特徵,假設用0表示;
  2) 用均值填充;
  3) 用隨機森林等算法預測填充


111.隨機森林如何處理缺失值
  方法一(na.roughfix)簡單粗暴,對於訓練集,同一個class下的數據,如果是分類變量缺失,用衆數補上,如果是連續型變量缺失,用中位數補。
  方法二(rfImpute)這個方法計算量大,至於比方法一好壞?不好判斷。先用na.roughfix補上缺失值,然後構建森林並計算proximity matrix,再回頭看缺失值,如果是分類變量,則用沒有陣進行加權平均的方法補缺失值。然後迭代4-6次,這個補缺失值的思想和KNN有些類似1缺失的觀測實例的proximity中的權重進行投票。如果是連續型變量,則用proximity矩2。


112.隨機森林如何評估特徵重要性
  衡量變量重要性的方法有兩種,Decrease GINI 和 Decrease Accuracy:
  1) Decrease GINI: 對於迴歸問題,直接使用argmax(VarVarLeftVarRight)作爲評判標準,即當前節點訓練集的方差Var減去左節點的方差VarLeft和右節點的方差VarRight。
  2) Decrease Accuracy:對於一棵樹Tb(x),我們用OOB樣本可以得到測試誤差1;然後隨機改變OOB樣本的第j列:保持其他列不變,對第j列進行隨機的上下置換,得到誤差2。至此,我們可以用誤差1-誤差2來刻畫變量j的重要性。基本思想就是,如果一個變量j足夠重要,那麼改變它會極大的增加測試誤差;反之,如果改變它測試誤差沒有增大,則說明該變量不是那麼的重要。


113.優化Kmeans
  使用kd樹或者ball tree
  將所有的觀測實例構建成一顆kd樹,之前每個聚類中心都是需要和每個觀測點做依次距離計算,現在這些聚類中心根據kd樹只需要計算附近的一個局部區域即可。


114.KMeans初始類簇中心點的選取
  k-means++算法選擇初始seeds的基本思想就是:初始的聚類中心之間的相互距離要儘可能的遠。
  1. 從輸入的數據點集合中隨機選擇一個點作爲第一個聚類中心
  2. 對於數據集中的每一個點x,計算它與最近聚類中心(指已選擇的聚類中心)的距離D(x)
  3. 選擇一個新的數據點作爲新的聚類中心,選擇的原則是:D(x)較大的點,被選取作爲聚類中心的概率較大
  4. 重複2和3直到k個聚類中心被選出來
  5. 利用這k個初始的聚類中心來運行標準的k-means算法


115.解釋對偶的概念

  一個優化問題可以從兩個角度進行考察,一個是primal 問題,一個是dual 問題,就是對偶問題,一般情況下對偶問題給出主問題最優值的下界,在強對偶性成立的情況下由對偶問題可以得到主問題的最優下界,對偶問題是凸優化問題,可以進行較好的求解,SVM中就是將primal問題轉換爲dual問題進行求解,從而進一步引入核函數的思想。

116.如何進行特徵選擇?
  特徵選擇是一個重要的數據預處理過程,主要有兩個原因:一是減少特徵數量、降維,使模型泛化能力更強,減少過擬合;二是增強對特徵和特徵值之間的理解
  常見的特徵選擇方式:
  1. 去除方差較小的特徵
  2. 正則化。1正則化能夠生成稀疏的模型。L2正則化的表現更加穩定,由於有用的特徵往往對應係數非零。
  3. 隨機森林,對於分類問題,通常採用基尼不純度或者信息增益,對於迴歸問題,通常採用的是方差或者最小二乘擬合。一般不需要feature engineering、調參等繁瑣的步驟。它的兩個主要問題,1是重要的特徵有可能得分很低(關聯特徵問題),2是這種方法對特徵變量類別多的特徵越有利(偏向問題)。
  4. 穩定性選擇。是一種基於二次抽樣和選擇算法相結合較新的方法,選擇算法可以是迴歸、SVM或其他類似的方法。它的主要思想是在不同的數據子集和特徵子集上運行特徵選擇算法,不斷的重複,最終彙總特徵選擇結果,比如可以統計某個特徵被認爲是重要特徵的頻率(被選爲重要特徵的次數除以它所在的子集被測試的次數)。理想情況下,重要特徵的得分會接近100%。稍微弱一點的特徵得分會是非0的數,而最無用的特徵得分將會接近於0。


117.數據預處理
  1. 缺失值,填充缺失值fillna:
  i. 離散:None,
  ii. 連續:均值。
  iii. 缺失值太多,則直接去除該列
  2. 連續值:離散化。有的模型(如決策樹)需要離散值
  3. 對定量特徵二值化。核心在於設定一個閾值,大於閾值的賦值爲1,小於等於閾值的賦值爲0。如圖像操作
  4. 皮爾遜相關係數,去除高度相關的列


118.你知道有哪些數據處理和特徵工程的處理?

  更多請查看此課程《機器學習工程師 第八期 [六大階段、層層深入]》第7次課 特徵工程(https://www.julyedu.com/course/getDetail/65)


119.簡單說說特徵工程

上圖來源:http://www.julyedu.com/video/play/18


120.請對比下Sigmoid、Tanh、ReLu這三個激活函數

  logistic函數,應用在Logistic迴歸中。<span style="color: rgb(51, 51, 51); font-family:;" new="" times="" 14px;"="">logistic迴歸的目的是從特徵學習出一個0/1分類模型,而這個模型是將特性的線性組合作爲自變量,由於自變量的取值範圍是負無窮到正無窮。因此,使用logistic函數將自變量映射到(0,1)上,映射後的值被認爲是屬於y=1的概率。

  假設函數 其中x是n維特徵向量,函數g就是logistic函數。

  的圖像是

  可以看到,將無窮映射到了(0,1)。

  而假設函數就是特徵屬於y=1的概率。

  從而,當我們要判別一個新來的特徵屬於哪個類時,只需求即可,若大於0.5就是y=1的類,反之屬於y=0類。


  更多詳見:https://mp.weixin.qq.com/s/7DgiXCNBS5vb07WIKTFYRQ


121.Sigmoid、Tanh、ReLu這三個激活函數有什麼缺點或不足,有沒改進的激活函數
@我愛大泡泡,來源:http://blog.csdn.net/woaidapaopao/article/details/77806273


122.怎麼理解決策樹、xgboost能處理缺失值?而有的模型(svm)對缺失值比較敏感?
https://www.zhihu.com/question/58230411


123.爲什麼引入非線性激勵函數?
  @Begin Again,來源:https://www.zhihu.com/question/29021768
  如果不用激勵函數(其實相當於激勵函數是f(x) = x),在這種情況下你每一層輸出都是上層輸入的線性函數,很容易驗證,無論你神經網絡有多少層,輸出都是輸入的線性組合,與沒有隱藏層效果相當,這種情況就是最原始的感知機(Perceptron)了。
  正因爲上面的原因,我們決定引入非線性函數作爲激勵函數,這樣深層神經網絡就有意義了(不再是輸入的線性組合,可以逼近任意函數)。最早的想法是sigmoid函數或者tanh函數,輸出有界,很容易充當下一層輸入(以及一些人的生物解釋)。


124.請問人工神經網絡中爲什麼ReLu要好過於tanh和sigmoid function?
  @Begin Again,來源:https://www.zhihu.com/question/29021768

  第一,採用sigmoid等函數,算激活函數時(指數運算),計算量大,反向傳播求誤差梯度時,求導涉及除法,計算量相對大,而採用Relu激活函數,整個過程的計算量節省很多。

  第二,對於深層網絡,sigmoid函數反向傳播時,很容易就會出現梯度消失的情況(在sigmoid接近飽和區時,變換太緩慢,導數趨於0,這種情況會造成信息丟失),從而無法完成深層網絡的訓練。
  第三,Relu會使一部分神經元的輸出爲0,這樣就造成了網絡的稀疏性,並且減少了參數的相互依存關係,緩解了過擬合問題的發生(以及一些人的生物解釋balabala)。當然現在也有一些對relu的改進,比如prelu,random relu等,在不同的數據集上會有一些訓練速度上或者準確率上的改進,具體的大家可以找相關的paper看。

  多加一句,現在主流的做法,會多做一步batch normalization,儘可能保證每一層網絡的輸入具有相同的分佈[1]。而最新的paper[2],他們在加入bypass connection之後,發現改變batch normalization的位置會有更好的效果。大家有興趣可以看下。
[1] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. arXiv preprint arXiv:1502.03167, 2015.
[2] He, Kaiming, et al. "Identity Mappings in Deep Residual Networks." arXiv preprint arXiv:1603.05027 (2016). 


125.爲什麼LSTM模型中既存在sigmoid又存在tanh兩種激活函數?

  爲什麼不是選擇統一一種sigmoid或者tanh,而是混合使用呢?這樣的目的是什麼?

 

  本題解析來源:https://www.zhihu.com/question/46197687
  @beanfrog:二者目的不一樣:sigmoid 用在了各種gate上,產生0~1之間的值,這個一般只有sigmoid最直接了。tanh 用在了狀態和輸出上,是對數據的處理,這個用其他激活函數或許也可以。
  @hhhh:另可參見A Critical Review of Recurrent Neural Networks for Sequence Learning的section4.1,說了那兩個tanh都可以替換成別的。


126.衡量分類器的好壞。

  @我愛大泡泡,來源:http://blog.csdn.net/woaidapaopao/article/details/77806273
  這裏首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四種(可以畫一個表格)。 
  幾種常用的指標:

  精度precision = TP/(TP+FP) = TP/~P (~p爲預測爲真的數量)

  召回率 recall = TP/(TP+FN) = TP/ P

  F1值: 2/F1 = 1/recall + 1/precision

  ROC曲線:ROC空間是一個以僞陽性率(FPR,false positive rate)爲X軸,真陽性率(TPR, true positive rate)爲Y軸的二維座標系所代表的平面。其中真陽率TPR = TP / P = recall, 僞陽率FPR = FP / N


127.機器學習和統計裏面的auc的物理意義是什麼?

  詳情參見https://www.zhihu.com/question/39840928


128.觀察增益gain, alpha和gamma越大,增益越小?

  @AntZ:xgboost尋找分割點的標準是最大化gain. 考慮傳統的枚舉每個特徵的所有可能分割點的貪心法效率太低,xgboost實現了一種近似的算法。大致的思想是根據百分位法列舉幾個可能成爲分割點的候選者,然後從候選者中計算Gain按最大值找出最佳的分割點。它的計算公式分爲四項, 可以由正則化項參數調整(lamda爲葉子權重平方和的係數, gama爲葉子數量):


  第一項是假設分割的左孩子的權重分數, 第二項爲右孩子, 第三項爲不分割總體分數, 最後一項爲引入一個節點的複雜度損失
由公式可知, gama越大gain越小, lamda越大, gain可能小也可能大。
  原問題是alpha而不是lambda, 這裏paper上沒有提到, xgboost實現上有這個參數. 上面是我從paper上理解的答案,下面是搜索到的:
https://zhidao.baidu.com/question/2121727290086699747.html?fr=iks&word=xgboost+lamda&ie=gbk
  lambda[默認1]權重的L2正則化項。(和Ridge regression類似)。 這個參數是用來控制XGBoost的正則化部分的。雖然大部分數據科學家很少用到這個參數,但是這個參數在減少過擬合上還是可以挖掘出更多用處的。11、alpha[默認1]權重的L1正則化項。(和Lasso regression類似)。 可以應用在很高維度的情況下,使得算法的速度更快。
  gamma[默認0]在節點分裂時,只有分裂後損失函數的值下降了,纔會分裂這個節點。Gamma指定了節點分裂所需的最小損失函數下降值。 這個參數的值越大,算法越保守。


129.什麼造成梯度消失問題? 推導一下

  @許韓,來源:https://www.zhihu.com/question/41233373/answer/145404190

Yes you should understand backdrop-Andrej Karpathy 

How does the ReLu solve the vanishing gradient problem?

  神經網絡的訓練中,通過改變神經元的權重,使網絡的輸出值儘可能逼近標籤以降低誤差值,訓練普遍使用BP算法,核心思想是,計算出輸出與標籤間的損失函數值,然後計算其相對於每個神經元的梯度,進行權值的迭代。

  梯度消失會造成權值更新緩慢,模型訓練難度增加。造成梯度消失的一個原因是,許多激活函數將輸出值擠壓在很小的區間內,在激活函數兩端較大範圍的定義域內梯度爲0,造成學習停止。


130.什麼是梯度消失和梯度爆炸?

  @寒小陽,反向傳播中鏈式法則帶來的連乘,如果有數很小趨於0,結果就會特別小(梯度消失);如果數都比較大,可能結果會很大(梯度爆炸)。
  @單車,下段來源:https://zhuanlan.zhihu.com/p/25631496
  層數比較多的神經網絡模型在訓練時也是會出現一些問題的,其中就包括梯度消失問題(gradient vanishing problem)和梯度爆炸問題(gradient exploding problem)。梯度消失問題和梯度爆炸問題一般隨着網絡層數的增加會變得越來越明顯。

  例如,對於下圖所示的含有3個隱藏層的神經網絡,梯度消失問題發生時,接近於輸出層的hidden layer 3等的權值更新相對正常,但前面的hidden layer 1的權值更新會變得很慢,導致前面的層權值幾乎不變,仍接近於初始化的權值,這就導致hidden layer 1相當於只是一個映射層,對所有的輸入做了一個同一映射,這是此深層網絡的學習就等價於只有後幾層的淺層網絡的學習了。

  而這種問題爲何會產生呢?以下圖的反向傳播爲例(假設每一層只有一個神經元且對於每一層,其中爲sigmoid函數)

  可以推導出

  而sigmoid的導數如下圖

  可見,的最大值爲1/4,而我們初始化的網絡權值|w|通常都小於1,因此,因此對於上面的鏈式求導,層數越多,求導結果越小,因而導致梯度消失的情況出現。

  這樣,梯度爆炸問題的出現原因就顯而易見了,即,也就是w比較大的情況。但對於使用sigmoid激活函數來說,這種情況比較少。因爲的大小也與w有關(z=wx+b),除非該層的輸入值x在一直一個比較小的範圍內。

  其實梯度爆炸和梯度消失問題都是因爲網絡太深,網絡權值更新不穩定造成的,本質上是因爲梯度反向傳播中的連乘效應。對於更普遍的梯度消失問題,可以考慮用ReLU激活函數取代sigmoid激活函數。另外,LSTM的結構設計也可以改善RNN中的梯度消失問題。


131.如何解決梯度消失和梯度膨脹?

  (1)梯度消失:
  根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小於1的話,那麼即使這個結果是0.99,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於0
  可以採用ReLU激活函數有效的解決梯度消失的情況
  (2)梯度膨脹
  根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大於1的話,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於無窮大
  可以通過激活函數來解決


132.推導下反向傳播Backpropagation

  @我愛大泡泡,來源:http://blog.csdn.net/woaidapaopao/article/details/77806273

  反向傳播是在求解損失函數L對參數w求導時候用到的方法,目的是通過鏈式法則對參數進行一層一層的求導。這裏重點強調:要將參數進行隨機初始化而不是全部置0,否則所有隱層的數值都會與輸入相關,這稱爲對稱失效。 

  大致過程是:

  1.首先前向傳導計算出所有節點的激活值和輸出值, 


  2.計算整體損失函數: 


  3.然後針對第L層的每個節點計算出殘差(這裏是因爲UFLDL中說的是殘差,本質就是整體損失函數對每一層激活值Z的導數),所以要對W求導只要再乘上激活函數對W的導數即可 

 


133.SVD和PCA

  PCA的理念是使得數據投影后的方差最大,找到這樣一個投影向量,滿足方差最大的條件即可。而經過了去除均值的操作之後,就可以用SVD分解來求解這樣一個投影向量,選擇特徵值最大的方向。

134.數據不平衡問題

  這主要是由於數據分佈不平衡造成的。解決方法如下:

  • 採樣,對小樣本加噪聲採樣,對大樣本進行下采樣

  • 進行特殊的加權,如在Adaboost中或者SVM中

  • 採用對不平衡數據集不敏感的算法

  • 改變評價標準:用AUC/ROC來進行評價

  • 採用Bagging/Boosting/ensemble等方法

  • 考慮數據的先驗分佈


135.簡述神經網絡的發展 

  MP模型+sgn—->單層感知機(只能線性)+sgn— Minsky 低谷 —>多層感知機+BP+sigmoid—- (低谷) —>深度學習+pre-training+ReLU/sigmoid


136.深度學習常用方法

  @SmallisBig,來源:http://blog.csdn.net/u010496169/article/details/73550487
  全連接DNN(相鄰層相互連接、層內無連接): 
  AutoEncoder(儘可能還原輸入)、Sparse Coding(在AE上加入L1規範)、RBM(解決概率問題)—–>特徵探測器——>棧式疊加 貪心訓練 
  RBM—->DBN 
  解決全連接DNN的全連接問題—–>CNN 
  解決全連接DNN的無法對時間序列上變化進行建模的問題—–>RNN—解決時間軸上的梯度消失問題——->LSTM


137.神經網絡模型(Neural Network)因受人類大腦的啓發而得名。


  神經網絡由許多神經元(Neuron)組成,每個神經元接受一個輸入,對輸入進行處理後給出一個輸出,如下圖所示。請問下列關於神經元的描述中,哪一項是正確的?


  A.每個神經元只有一個輸入和一個輸出

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

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

  D.每個神經元有多個輸入和多個輸出

  E.上述都正確

  答案:(E)

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

138.下圖是一個神經元的數學表示


  這些組成部分分別表示爲:

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

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

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

  - a:作爲神經元的激勵函數(Activation),可以表示爲


  - y:神經元輸出

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

  A. 是

  B. 否

  答案:(A)

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


139.在一個神經網絡中,知道每一個神經元的權重和偏差是最重要的一步。如果知道了神經元準確的權重和偏差,便可以近似任何函數,但怎麼獲知每個神經的權重和偏移呢?
  A 搜索每個可能的權重和偏差組合,直到得到最佳值
  B 賦予一個初始值,然後檢查跟最佳值的差值,不斷迭代調整權重
  C 隨機賦值,聽天由命
  D 以上都不正確的
  答案:(C)選項C是對梯度下降的描述。


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

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

  2.重複迭代,直至得到網絡權重的最佳值

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

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

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

  答案:正確步驟排序是:4, 3, 1, 5, 2


141.已知:
  - 大腦是有很多個叫做神經元的東西構成,神經網絡是對大腦的簡單的數學表達。
  - 每一個神經元都有輸入、處理函數和輸出。
  - 神經元組合起來形成了網絡,可以擬合任何函數。
  - 爲了得到最佳的神經網絡,我們用梯度下降方法不斷更新模型
  給定上述關於神經網絡的描述,什麼情況下神經網絡模型被稱爲深度學習模型?

  A 加入更多層,使神經網絡的深度增加
  B 有維度更高的數據
  C 當這是一個圖形識別的問題時
  D 以上都不正確
  答案:(A)
  更多層意味着網絡更深。沒有嚴格的定義多少層的模型才叫深度模型,目前如果有超過2層的隱層,那麼也可以及叫做深度模型。


142.卷積神經網絡可以對一個輸入進行多種變換(旋轉、平移、縮放),這個表述正確嗎?
  答案:錯誤

  把數據傳入神經網絡之前需要做一系列數據預處理(也就是旋轉、平移、縮放)工作,神經網絡本身不能完成這些變換。


143.下面哪項操作能實現跟神經網絡中Dropout的類似效果?
  A Boosting
  B Bagging
  C Stacking
  D Mapping

  答案:B

  Dropout可以認爲是一種極端的Bagging,每一個模型都在單獨的數據上訓練,同時,通過和其他模型對應參數的共享,從而實現模型參數的高度正則化。


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

  A 隨機梯度下降

  B 修正線性單元(ReLU)

  C 卷積函數

  D 以上都不正確

  答案:(B)

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


145.在訓練神經網絡時,損失函數(loss)在最初的幾個epochs時沒有下降,可能的原因是?()

  A 學習率(learning rate)太低
  B 正則參數太高
  C 陷入局部最小值

  D 以上都有可能

  答案:(A)


146.下列哪項關於模型能力(model capacity)的描述是正確的?(指神經網絡模型能擬合複雜函數的能力)

  隱藏層層數增加,模型能力增加

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

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

  都不正確

  答案:(A)

147.如果增加多層感知機(Multilayer Perceptron)的隱藏層層數,分類誤差便會減小。這種陳述正確還是錯誤?
  答案:錯誤

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


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

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

  循環神經網絡

  B 卷積神經網絡

  C 限制玻爾茲曼機

  D 都不是

  答案:(A)


149.下列哪一項在神經網絡中引入了非線性?在感知機中(Perceptron)的任務順序是什麼?
  1.隨機初始化感知機的權重
  2.去到數據集的下一批(batch)
  3.如果預測值和輸出不一致,則調整權重
  4.對一個輸入樣本,計算輸出值
  答案:1 - 4 - 3 - 2


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

  A. 窮舉搜索

  B. 隨機搜索

  C. Bayesian優化

  D. 以上任意一種

  答案:(D)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章