簡單加權(quán)融合
對于一個給定的網(wǎng)絡(luò)結(jié)構(gòu)舵抹,每一種不同的權(quán)重組合將得到不同的模型。因為所有模型結(jié)構(gòu)都有無限多種權(quán)重組合劣砍,所以將有無限多種組合方法惧蛹。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目標是找到一個特別的解決方案(權(quán)重空間中的點),從而使訓(xùn)練集和測試集上的損失函數(shù)的值達到很小刑枝。
回歸
對于回歸問題香嗓,一個簡單直接的思路是取平均。稍稍改進的方法是進行加權(quán)平均装畅。
這兩種方法看似簡單靠娱,其實后面的高級算法也可以說是基于此而產(chǎn)生的,Bagging或者Boosting都是一種把許多弱分類器這樣融合成強分類器的思想洁灵。
- 算術(shù)平均融合(Arithmetic mean)
- 幾何平均融合(Geometric mean)
分類
- 投票(Voting)
分為軟投票和硬投票兩種饱岸,其原理采用少數(shù)服從多數(shù)的思想掺出。- 硬投票:
對多個模型直接進行投票,不區(qū)分模型結(jié)果的相對重要度苫费,最終投票數(shù)最多的類為最終被預(yù)測的類汤锨。 - 軟投票:
增加了設(shè)置權(quán)重的功能,可以為不同模型設(shè)置不同權(quán)重百框,進而區(qū)別模型不同的重要度闲礼。
- 硬投票:
綜合
- 排序融合(Rank averaging)
- log融合
stacking/blending
構(gòu)建多層模型,并利用預(yù)測結(jié)果再擬合預(yù)測
stacking
當用初始訓(xùn)練數(shù)據(jù)學習出若干個基學習器后铐维,將這幾個學習器的預(yù)測結(jié)果作為新的訓(xùn)練集柬泽,來學習一個新的學習器。
將個體學習器結(jié)合在一起的時候使用的方法叫做結(jié)合策略嫁蛇。對于分類問題锨并,我們可以使用投票法來選擇輸出最多的類。對于回歸問題睬棚,我們可以將分類器輸出的結(jié)果求平均值第煮。
在stacking方法中,我們把個體學習器叫做初級學習器抑党,用于結(jié)合的學習器叫做次級學習器或元學習器(meta-learner)包警,次級學習器用于訓(xùn)練的數(shù)據(jù)叫做次級訓(xùn)練集底靠。次級訓(xùn)練集是在訓(xùn)練集上用初級學習器得到的害晦。
blending
其實和Stacking是一種類似的多層模型融合的形式
- 主要思路
把原始的訓(xùn)練集先分成兩部分,比如70%的數(shù)據(jù)作為新的訓(xùn)練集,剩下30%的數(shù)據(jù)作為測試集。
1.第一層赠幕,在這70%的數(shù)據(jù)上訓(xùn)練多個模型俄精,然后去預(yù)測那30%數(shù)據(jù)的label,同時也預(yù)測test集的label榕堰。
2.第二層竖慧,直接用這30%數(shù)據(jù)在第一層預(yù)測的結(jié)果做為新特征繼續(xù)訓(xùn)練嫌套,然后用test集第一層預(yù)測的label做特征,用第二層訓(xùn)練的模型做進一步預(yù)測圾旨。 - 優(yōu)點
1.比stacking簡單(因為不用進行k次的交叉驗證來獲得stacker feature)
2.避開了一個信息泄露問題:generlizers和stacker使用了不一樣的數(shù)據(jù)集 - 缺點
1.使用了很少的數(shù)據(jù)(第二階段的blender只使用training set10%的量)
2.blender可能會過擬合
3.stacking使用多次的交叉驗證會比較穩(wěn)健
boosting/bagging
多樹的提升方法
boosting
Bagging算法可以并行處理踱讨,而Boosting的思想是一種迭代的方法,每一次訓(xùn)練的時候都更加關(guān)心分類錯誤的樣例砍的,給這些分類錯誤的樣例增加更大的權(quán)重痹筛,下一次迭代的目標就是能夠更容易辨別出上一輪分類錯誤的樣例。最終將這些弱分類器進行加權(quán)相加廓鞠。
bagging
Bagging就是采用有放回的方式進行抽樣帚稠,用抽樣的樣本建立子模型,對子模型進行訓(xùn)練,這個過程重復(fù)多次床佳,最后進行融合滋早。大概分為這樣兩步:
1.重復(fù)K次
有放回地重復(fù)抽樣建模
訓(xùn)練子模型
2.模型融合
Bagging算法不用我們自己實現(xiàn),隨機森林就是基于Bagging算法的一個典型例子砌们,采用的基分類器是決策樹馆衔。
總結(jié)
模型融合涉及多個層面:
- 結(jié)果層面的融合
最常見的融合方法,可行的融合方法很多怨绣,比如根據(jù)結(jié)果得分進行加權(quán)融合角溃,做Log,exp處理等篮撑。在做結(jié)果融合的時候减细,有一個很重要的條件是模型結(jié)果的得分要比較近似,然后結(jié)果的差異要比較大赢笨,這樣的結(jié)果融合往往有比較好的效果提升未蝌。 - 特征層面的融合
準確說可以叫分割,很多時候如果我們用同種模型訓(xùn)練茧妒,可以把特征進行切分給不同的模型萧吠,然后在后面進行模型或者結(jié)果融合有時也能產(chǎn)生比較好的效果。 - 模型層面的融合
模型層面的融合可能就涉及模型的堆疊和設(shè)計桐筏,比如加Staking層纸型,部分模型的結(jié)果作為特征輸入等。這些就需要多實驗和思考了梅忌,最好不同模型類型要有一定的差異狰腌,用同種模型不同的參數(shù)的收益一般是比較小的。