マルチタスク学習(Multi-task Learning)とは、関連する複数のタスクを同時に学習させることで、各タスクの性能を向上させる手法です。タスク間で有用な表現を共有することで、個別に学習するよりも効率的かつ高性能なモデルを構築できます。
なぜ効果があるのか
関連タスクを同時に学習することで、①有用な特徴表現の共有、②暗黙的なデータ拡張効果、③正則化効果(個々のタスクのノイズが相殺される)、④タスク間の相補的な情報の活用、などの利点が得られます。
| ひとことで言うと | 関連する複数の予測を1つのモデルで同時に学習させる手法。 |
|---|---|
| 何がうれしいか | 共通する知識を共有できるため、それぞれ個別に学習するより精度が上がることがある。 |
| 注意点 | 関連の薄いタスクを混ぜると互いに足を引っ張る。損失の重み調整が必要。 |
アーキテクチャ
ハードパラメータ共有(下位層を共有し上位層はタスク別)とソフトパラメータ共有(各タスクが独自のモデルを持ちパラメータ間の距離にペナルティ)の2つのアプローチがあります。
1共通の入力同じデータを使う
▶
2共有部分で学習共通の特徴を抽出
▶
3枝分かれタスクごとの出力層
▶
4同時に学習損失を合算して更新
▶
5互いに補強個別学習より高精度に
活用例
自然言語処理(品詞タグ付けと固有表現認識の同時学習)、自動運転(物体検出とセグメンテーションの同時学習)、レコメンデーション(クリック予測と購入予測の同時学習)など。