BAT機器學習面試1000題系列(131-135題)

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

(1)梯度消失:

根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都小於1的話,那麼即使這個結果是0.99,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於0

可以採用ReLU激活函數有效的解決梯度消失的情況

(2)梯度膨脹

根據鏈式法則,如果每一層神經元對上一層的輸出的偏導乘上權重結果都大於1的話,在經過足夠多層傳播之後,誤差對輸入層的偏導會趨於無窮大

可以通過激活函數來解決

132.推導下反向傳播Backpropagation

@我愛大泡泡,來源:blog.csdn.net/woaidapao

反向傳播是在求解損失函數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


推薦閱讀:

谷歌大腦提出新型激活函數Swish惹爭議:可直接替換並優於ReLU?(附機器之心測試)
我搭的神經網路不work該怎麼辦!看看這11條新手最容易犯的錯誤
學習筆記 | 吳恩達之神經網路和深度學習
Python · 神經網路(二*)· 層
深度壓縮之蒸餾模型

TAG:神经网络 | 梯度下降 | 机器学习 |