Posted at

「タスクの転移しやすさ」でタスクを分類する 「Taskonomy: Disentangling Task Transfer Learning」

転移学習のしやすさという観点で「タスクを分類する」研究があります。

CVPR2018年ベストペーパー受賞。


Reference

文中の図表は論文より引用しています。

この記事は、Wantedlyの勉強会で取り上げられた論文・技術をまとめたものです。

2018年に読んだ機械学習系論文・技術まとめ at Wantedly Advent Calendar 2018 - Qiita


モチベーション

機械学習の新しい問題が出てくるたびにデータを作り学習していては、訓練データが無限に必要になってしまいます。

そこで、別なタスクのネットワークの重みを再利用する方法が転移学習で広く使われています。

人間の直感的には、タスクが似ているほど転移学習はうまくいきやすいと考えます。たとえば、画像中のオブジェクトをピクセル単位で色塗りして分類するSegmentationタスクは、画像中のエッジを見つけるタスクと「似ている」と考えるのは自然な発想です。

そこで、「どのタスクはどのタスクに転移学習しやすいのか、最小の計算コストでタスクを解くにはどうすればいいか」考えて実験してみたのがこの論文です。


Taskonomy

この論文ではCV(Computer Vision)系のタスク26個を用意して、タスクAからタスクBに転移学習したときの精度の差を比較しました。

image.png

設定:予算(限られた計算資源)のなかで、タスクの集合の精度を最大化する。


  • 1. sourceタスクをゼロから学習する


    • 各タスクのデータセットは用意している



  • 2. sourceタスクからtargetタスクへ転移学習する
    - 上で学習したモデルをEncoderとして利用して(パラメータは固定)、targetタスクのレイヤーに入力(パラメータは学習する)。


    • 一対一だけでなく、複数のSourceタスクを入力するパターン(high order)もある。この場合、複数のEncoderを結合して入力する。



  • 3. 上の結果から転移しやすさを計算

  • 4. 転移しやすさのMatrixから、タスクのグラフ構造を定義する

上の予算は、「ゼロから学習してもいいSourceタスクの数」と定義されます。

Taskonomyという言葉は、「転移しやすさ(転移したときのGain)」でタスクの分類を行ったところが面白いところです。

image.png

下のサンプルは、予算8(ゼロから学習していい数)で、Order4(最大の組み合わせ数=4)でタスクのGainを最大化するとしたら、この転移学習をする、と解釈できます。

image.png

オンラインで結果を見れるサイトも存在します。

http://taskonomy.stanford.edu/


まとめと感想

人間のアノテーションタスクも得意不得意があります。例えば自動運転用に走行画像のSegmentationのデータを精度良く作るのは難しく、各社ある意味で職人芸のようなアノテータを雇ってコストをかけてデータを作っています。

コストという意味で考えたときに、人間がもっと抽象的な問題を解いてその学習結果が転移できたら上のような労働集約的な行為がいらなくなるかもしれません(全て想像です)。

この論文では、もし人間が難しくてアノテーションしやすいタスクが見つかった場合、それを効率的に転移させることもできるかもという意味で将来的に価値がある研究だと思いました。