1. 為什么要TrAdaBoost
傳統(tǒng)的機(jī)器學(xué)習(xí),有一個(gè)假設(shè): 訓(xùn)練集和測(cè)試集分布相同。而事實(shí)上,在許多情況下,這種單一分布假設(shè)不成立。如果來(lái)了一批新的數(shù)據(jù)(new data),分布與之前的訓(xùn)練的舊數(shù)據(jù)(old data)不一樣,那么我們的算法的準(zhǔn)確率就會(huì)下降很多。但是使用新數(shù)據(jù),完全拋棄舊數(shù)據(jù),有兩個(gè)問(wèn)題。第一,新數(shù)據(jù)可能量不夠;第二,舊數(shù)據(jù)可能還有利用價(jià)值,完全拋棄太浪費(fèi)。所以才有了遷移學(xué)習(xí),從舊數(shù)據(jù)從提取信息,用于新的模型訓(xùn)練。
TrAdaBoost算法,是一種從old data中提取實(shí)例的方法,即將一部分能用的old labeled data,結(jié)合new labeled data(可能是少量),構(gòu)建出比單純使用new labeled data訓(xùn)練更精確的模型。
2. TrAdaBoost算法
以測(cè)試數(shù)據(jù)空間為基準(zhǔn),new data有一樣數(shù)據(jù)分布空間,記為X_s,old data是不一樣的分布空間,記為X_d。假設(shè)是二分類(lèi)問(wèn)題,labels是Y={0,1}。整個(gè)訓(xùn)練數(shù)據(jù)空間是
所以我們就是要找到X->Y的映射函數(shù)c。
測(cè)試數(shù)據(jù)集(無(wú)標(biāo)簽):
訓(xùn)練數(shù)據(jù)集:
其中訓(xùn)練集T可以分為來(lái)自不同分布的數(shù)據(jù)T_d和相同分布的數(shù)據(jù)T_s,
所以全部的訓(xùn)練數(shù)據(jù):
有n個(gè)數(shù)據(jù)來(lái)自X_d空間,有m個(gè)數(shù)據(jù)來(lái)自X_s空間。
整體算法如下:
第一步:歸一化每個(gè)數(shù)據(jù)的權(quán)重,使其成為一個(gè)分布。
第二步:調(diào)用弱分類(lèi)器。將T_d和T_s的數(shù)據(jù)整體作為訓(xùn)練數(shù)據(jù),過(guò)程和AdaBoost訓(xùn)練弱分類(lèi)器一樣。這一步也是我們的old data對(duì)模型起作用的地方。
第三步:計(jì)算錯(cuò)誤率。注意,這邊只計(jì)算T_s中提取的數(shù)據(jù),也就是new data。old data在這邊不進(jìn)入計(jì)算。而且計(jì)算錯(cuò)誤率的時(shí)候需要將T_s中的提取數(shù)據(jù)權(quán)重重新歸一化。
第四步:分別計(jì)算T_s和T_d權(quán)重調(diào)整的速率。注意,每一次迭代,T_s的權(quán)重調(diào)整速率都不一樣,而T_d中的數(shù)據(jù),是一樣的。Beta_t在AdaBoosting中,相當(dāng)于每一個(gè)弱分類(lèi)器的話語(yǔ)權(quán)有多大,Beta_t越大,該弱分類(lèi)器話語(yǔ)權(quán)越小。
第五步:更新數(shù)據(jù)權(quán)重。T_s中的數(shù)據(jù),如果分類(lèi)錯(cuò)誤,則提高權(quán)重值,與傳統(tǒng)AdaBoost算法一致。T_d中的數(shù)據(jù),則相反,如果分類(lèi)錯(cuò)誤,則降低權(quán)重值,這是因?yàn)榉诸?lèi)錯(cuò)誤的就認(rèn)為這部分old data與new data差距太大。
輸出。以后半數(shù)弱分類(lèi)器(N/2~N)的投票為準(zhǔn)。
參考文獻(xiàn):
[1]W. Dai, Q. Yang, G. Xue, and Y. Yu, “Boosting for Transfer Learning,” Proc. 24th Int’l Conf. Machine Learning, pp. 193-200, June 2007.
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。