面經:阿里巴巴機器學習算法與數據挖掘崗(4)

五、ResNet什麼結構決定了它可以訓練更深的網絡?如何實現的?

殘差塊(瓶頸結構)

可以訓練更深的網絡, 主要意味着解決了反向傳播過程中容易出現的梯度消失問題. 那我們就來看一下ResNet的梯度是如何通過“殘差塊”傳遞的:

殘差塊由兩部分組成:
(1) residual mapping結構, 輸出爲F(x);
注意這裏的residual mapping 多爲 1x1, 3x3, 1x1的結構, 增加非線性, 降低維度.
(2) identity shortcut connection結構, 輸出爲x;
在這裏插入圖片描述
因此, 一個殘差塊的輸出結果爲 H(x) = F(x) + x

代入具體的網絡模型中可表示爲:
在這裏插入圖片描述
之所以可以避免梯度消失問題,是因爲反向傳播時,ϵ\epsilon代表的是 loss 方程,由鏈式求導法得:
在這裏插入圖片描述
可見, 即使
正常的前向傳播的梯度爲
一項爲0, 那麼輸出結果也不會比傳播前的x更差。同時也避免了梯度消失問題。

參考文章: https://blog.csdn.net/qq_32172681/article/details/100177636

六、Boost方法和Bagginging方法的區別與聯繫?

6.1 Boost 和 Bagging的區別

(1) 訓練數據採樣: boost是全部基模型使用相同的訓練集, 而bagging方法是有放回的獨立隨機採樣(每個基模型使用的訓練集是獨立分佈的).
(2) 訓練數據權重:boost在訓練過程中, 增加易錯樣本的權重, 樣本權重分佈不同; bagging所有數據樣本權重相同.
(3) 訓練方式: boost是串行訓練,擬合殘差, 降低偏差; bagging是並行訓練, 降低方差;
(4) 目標函數: boost中每個基模型都有相對應的權重, 結果好的權重高; bagging中所有基模型權重相同.
(5) Bagging裏每個分類模型都是強分類器,因爲降低的是方差,方差過高是過擬合
Boosting裏每個分類模型都是弱分類器,因爲降低的是偏度,偏度過高是欠擬合
(6) Bagging對樣本重採樣,對每一輪的採樣數據集都訓練一個模型,最後取平均。由於樣本集的相似性和使用的同種模型,因此各個模型的具有相似的bias和variance

6.2 Boost方法的缺點

(1) 對異常樣本敏感,異常樣本可能會在迭代過程中獲得較高的權重值,最終影響模型效果;
(2) 由於弱學習器之間存在關聯關係,難以並行訓練模型。

七、XGBoost與GBDT的區別和聯繫?

xgboost是一種集成學習算法,屬於4類常用的集成方法(blending, bagging, boosting, stacking)中的boosting算法類別。它是一個加法模型,基模型一般選擇樹模型,但也可以選擇其它類型的模型如邏輯迴歸等。

blending集成方法和其他三種有本質上的區別. blending方法是在所有的基分類器已經知道(訓練好)的情況下, 進行合併; 而其他的集成學習方法核心思想是“邊學習邊集成”, 在訓練的同時完成集成策略.

xgboost屬於梯度提升樹(GBDT)模型這個範疇,GBDT的基本想法是讓新的基模型(GBDT以CART分類迴歸樹爲基模型)去擬合前面模型的偏差(boost類模型優點, 減小偏差),從而不斷將加法模型的偏差降低。相比於經典的GBDT,xgboost做了一些改進,從而在效果和性能上有明顯的提升(劃重點面試常考)。
(1) GBDT將目標函數泰勒展開到一階,而xgboost將目標函數泰勒展開到了二階。保留了更多有關目標函數的信息,對提升效果有幫助。
(2) GBDT是給新的基模型尋找新的擬合標籤(前面加法模型的負梯度),而xgboost是給新的基模型尋找新的目標函數(目標函數關於新的基模型的二階泰勒展開)。
(3) xgboost加入了葉子權重的L2正則化項,因而有利於模型獲得更低的方差。
(4) xgboost增加了**自動處理缺失值特徵的策略。**通過把帶缺失值樣本分別劃分到左子樹或者右子樹,比較兩種方案下目標函數的優劣,從而自動對有缺失值的樣本進行劃分,無需對缺失特徵進行填充預處理。

此外,xgboost還支持候選分位點切割,特徵並行等,可以提升性能。

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