1. 程式人生 > >整合學習(Ensemble Learning)

整合學習(Ensemble Learning)

Ensemble Learning現在基本上就叫整合學習。相關的概念有上面說的多模型系統(這實際上在很大程度上對應了機器學習裡面的多專家混合)、Committee Learning、Modular systems、多分類器系統等等。這些概念相互之間有非常密切的聯絡,但仔細來說還是有些區別。問題是對這些概念的界定,目前並沒有什麼共識,有時不同的人在用不同的術語說同一個東西,也有時是用同一個術語說不同的東西,所以區別也只能是各說各話了。個人認為,整合學習一個非常重要的性質就是個體學習器是為同一個問題進行學習,這與分而治之式地把問題分解為若干個子問題,然後再想辦法從個別解求得整體解是不同的,因為前者導致了學習的難點在於個體學習器差異的獲得,而後者則在差異上沒有難點(因為個體本來就是解決不同的問題),而在問題分解上很困難。換一個角度來說,對整合學習系統來說,隨便把它的一個個體學習器拿出來,都是能解決整個問題的,而對後面的這種系統來說,拿出一個個體學習器只能解決一個子問題,不能解決整個問題。和後者最對應的應該是Modular system,多專家混合也非常偏向於後者。Committe learning和整合學習要相近一些。而多分類器系統,則是在分類器意義上的全包含。大家的最終目標實際上都是一樣的,但由於途徑不同,面對的難點就不太一樣了,所以研究重點也不太一樣。另外,有的東西,很難嚴格地說它屬於某一類。不過,對到底什麼是ensemble learning,現在並沒有界定清楚。
我們姑且把前面的提法稱為狹義的ensemble learning,而把只要利用多個學習器就叫ensemble的這種稱為廣義的ensemble learning把貝葉斯理論和統計學習理論為標準劃出兩大類,未必合適。貝葉斯理論和統計學習理論本來就不是對立的兩個東西。實際上,ensemble learning這個詞最早是被做貝葉斯的人用出來的,而多學習器的思想很早以前就有了,但沒有一個特別的名字,這也在一定程度上導致了前面提到的那麼多相關的概念,後來ensemble learning這個詞慢慢地被擴充套件到非貝葉斯學習系統,然後又慢慢地生長,到現在基本上就有了前面說的含義。
在ensemble learning的內涵還沒有被清楚地界定出來之前,對它的分類是很困難甚至不可能的。這個問題應該還是open problem。雖然Dietterich在他的一系列文章裡給出了一些說法,但這些說法我不太認為是真正的“有效性理論基礎”,說成是猜想或者直觀解釋可能更合適些。個人認為,由於ensemble learning的內涵並沒有清楚的界定,叫這個名字的很多東西其實是利用了不同的機制,所以其有效性的理論基礎未必是一樣的。這方面關於boosting類討論得比較多,對bagging的討論最近也開始有了。最終我們可能會得到不同的有效性機制,然後可能根據不同的機制劃分出不同的類別,但這是若干年後的事了。
boosting、bagging、stacking的文章應該是要看的,Krogh和Vedelsby的文章是重要的。Ditterich在AI Mag97的文章也值得讀。由於ensemble learning的內涵並沒有界定清楚,所以涉及的東西太多,目前還遠沒有到能很清楚地把這個領域的知識系統化的程度。機器學習、模式識別、資訊融合等等都有大量有關的內容,現階段很難開出一個清楚的單子。但是不妨把最近幾年top journal和top conference上的有關文章找來看看。


轉 自 NJU  baihe Daniel