TrBagg: A Simple Transfer Learning Method and Its Application to Personalization in Collaborative Tagging(ICDM 2009) 読んだ
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.164.5964
まず先に転移学習のサーベイ - kamishima.net(pdf)で転移学習についての大体のイメージを掴んだ上で読んだ.
目的
転移学習でバギング.Abstに
we propose a very simple approach to transfer learning
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.164.5964
と書いてある.
そもそも転移学習とは
上のサーベイを読むのが一番早いけれど自分なりのまとめとして.
大まかな理解としては,ある領域で得た知見を関連する別の領域に活用するための枠組が転移学習と呼ばれている,といった感じ.
最近だと
- 整っていないけど,数は多いデータ(クロールして集めてきたデータ)
- 整っているけど,数が少ないデータ(人手でアノテーションしたデータ)
といった二つのデータがあるシチュエーションで,いかに1.のデータを2.の学習に活かすか,という点で注目が集まってるっぽい.
方法
判別問題を考える.数は多いけど整ってないデータを,数は少ないけど整っているデータを
と呼び,それぞれをSource, Targetと呼ぶ.
Learning Phase
ステップ目の学習において,まずはデータをマージして
とする.次に,マージした
からブートストラップによって
を得,それを用いて弱学習器
を得る.これを
回繰り返し,結果として弱学習器の集合
を得る.
Filtering Phase
から良い感じの判別器を含む集合
を選び,あとは
による多数決でクラス判別.
じゃあその"良い感じの判別器"はどう選ぶのか,という話だけど3つ提案されている.
- Majority Voting on the Target set(MVT)
- まずTargetのデータ
のみで学習した学習器
を作り,
とする.その後,
の各弱学習器を
に適用し,誤差の昇順にソートして
とする.
- 続いて
;
とする.
- あとは
に弱学習器を一つずつ追加し,標本誤差が改善されれば
を
にする.
- まずTargetのデータ
- Majority Voting on the Validation set(MVV)
- 過学習を起こす可能性があるので.validation dataを抜いておいてMVT時の標本誤差を計算する.しかしvalidation dataはLearning Phaseで除外しなきtゃならんのでtargetが小さい時には無理.
- Simple Comparison(SC)
のみで学習した学習器
と
の各弱学習器を比較して標本誤差が小さいもののみ採用.
利点
四つある.
チューニングと実装が容易
(サーベイで言うところの)統合型だとなかなか実装コスト高い(印象).その点TrBaggなら弱学習器に手を加える必要も無く,出力結果をマージするだけで良い.しかも調整が必要なパラメータもブートストラップする時のサイズ数だったり何を弱学習器として使うか,ぐらいなので良い.
"負の転移学習"に対応できる
負の転移学習といって,SourceとTargetが違いすぎたりするとソースの情報を用いることによって精度が下がってしまう事がある.その点TrBaggならFiltering Phaseでソースのみの標本誤差を考慮しているので起こりにくい.
複数ドメインへの転移が容易
Targetが複数ドメインで構成されているとする(元論文ではSBMにおけるパーソナライズしたタグ推薦なのでつまりはユーザ).TrBaggならLearning Phaseのデータはデータをマージするため,最終的な結果でドメイン別に得たかったとしてもまずこの部分は共通して計算することができる.ドメイン別に出力するにはFiltering Phaseで用いるを絞ってしまえばいい.LearningはFilteringと比較すると時間を食うので非常に効率が良い.
並列計算可能
Learningの部分は並列計算可能(これは通常のBaggingでも同様).