Learning Multiple Tasks using Shared Hypotheses
概要
複数の関連する分類問題を同時に最適化するマルチタスク分類問題を考える.例として,個々人の受信メールから重要度の高いメールを抽出するタスクはマルチタスク問題として考えられる*1 *2.
上記のようにパーソナライゼーション等のタスクでは,タスク数は非常に多いが一人ひとりのデータ数が少ない場合が考えられる.この条件下では,タスク数より少ない数の学習器のみを用い,タスク間で学習器をシェアしながら学習を行う方が理論的にも実験的にもよりよい結果が得られる事を示した.
背景
- タスク毎のデータ量が少ない場合,十分な汎化性能を持つような学習は困難
- パーソナライゼーション等では一般的な現象
- 全タスクを一つのタスクと思って単一の学習器で学習する場合は,タスク間で異なる特性を捉えられず識別精度が悪化
- 中庸をとりたい,つまり複数のタスクで分類器を共有
- 分類器の学習に,複数タスクのデータを用いることが可能に
貢献
- 本問題設定におけるVC次元の上限・下限を導出
- VC次元を用いた汎化誤差上限を評価
- タスク数:多 仮説数:少 の時,各タスクで分類器を学習した場合より小さい汎化誤差上限で抑えられる
アルゴリズム
- 1. 各タスクのデータを学習用とバリデーション用に分割
- 2. 各タスクが用いる学習器をランダムに割り当て
- 3. 各学習器に割り当てられたタスクの全学習用データでの損失最小化問題を解き,学習器を更新
- 4. 各タスクのバリデーションデータに関して一番予測精度の高い学習器に割り当て直す
- 5. 一定の回数反復,あるいは一定の収束基準を満たすまで,3.4ステップを反復
- 6. 学習用とバリデーション用データを用いて各学習器を更新
雑感
- パーソナライゼーション系のマルチタスク学習には相当強そう
- タスクの分割が大雑把だったとしても上手く動きそうなのが素晴らしい
- 実装は簡単,背後の理論は複雑かつ盤石,と良い研究のお手本