機器學習技法 Lecture 7

Blending and Bagging
有很多個hypothesis,如何合併? Aggregation model


從簡單的概念切入

如果有一個情況是,你有很多個還不錯的hypothesis,有沒有可能把他們合成一個更強的hypothesis呢?
老師用投票的意義去解釋,你可以:

  • 選最好的
  • 平均選(每個hypothesis選票等值)
  • 不平均的選(每個hypothesis選票不等值)
  • 有條件的選(在不同條件下,每個hypothesis的選票會不一樣)

那怎麼知道aggregation真的會有用呢?
左邊代表,你有很多個不是那麼好的hypothesis,透過投票,他們就可以形成彎曲的界線,甚至達到feature transform的感覺?
右邊代表,你有很多個hypothesis,如果用PLA選的話,每一個都有可能被選到,但如果平均起來,得到的結果會比較好。有regularization的效果?


Classification versus Regression

如果要做分類的話,那blending的方式是加總每一個hypothesis的結果。(多數決)
如果要做回歸的話,那blending的方式是每一個hypothesis結果的平均。(平均比單一好)


用數學推論blending的好處

從上面的推論可以看出,所有單一hypothesis error的平均 會比 平均起來的hypothesis的 error 還要大,代表平均過後真的會比較好。

從統計的角度切入,假設G是從無限多個g合起來的,那他們error有下面的統計關係。

  • 無限多個g error的平均:演算法A的期望值
  • G(下面是g上面一槓) error:g的共同意見(bias)
  • 最後一項(不知道怎麼稱呼):g之間的意見歧異性(variance)
    所以blending就像去掉了variance造成的error。

Linear Blending

Linear blending就是上面提到的「不平均的選」,每一個hypothesis都有自己的係數(選票權重),而linear blending就是要把這些係數算出來。

怎麼算呢?用regression。
將linear blending和feature transform相比,兩者的式子十分的類似。

上頭有寫到alpha>=0的條件,這是因為選票照理來講應該要是正的。但如果選票為負,代表只要將該hypothesis的結果倒過來即可,因此在實作時常常忽略constraints。

Any Blending

除了linear地結合hypothesis外,其實可以用任意的方式將hypothesis組起來,叫做any blending,也叫stacking。


統整一下blending的方式

這邊有提到,blending的g要彼此很不一樣才會有好的效果,而取不一樣的g有以下幾種方法:

  • 不同models
  • 不同parameters,例如learning rate
  • 本身演算法具備的隨機性,例如PLA取隨機錯誤的點
  • 不同的training set

Bagging

剛剛有提到當G是由無限個g合起來的話,可以消除g的歧異性(變異數),使得error變小,但條件是有一個無限大的data set可以取training data。我們並沒有那麼多的data,於是用 bootstrapping 來模擬這樣的情況。

Bootstrapping簡單來說,就是每一次的data都是在有限的data set中,隨機取出來的,即使資料點重複也沒有關係。

把用bootstrap得到的g aggregate起來就是bagging啦。

來看個例子:
灰線是baggin得到的g,可以看出來非常的diverse,也因為這樣,投票後的結果才能屈能伸。

自我總結

這個章節的概念還蠻好理解的,可以看出演算法眾志成城的樣子。
目前只有講到linear blenging還有一些基本的方式,我相信一定還有一些神奇的方法可以把g合起來。就繼續看下去吧。