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