Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Taskonomy: Disentangling Task Transfer Learning #42

Open
kzmssk opened this issue Jul 4, 2018 · 1 comment
Open

Taskonomy: Disentangling Task Transfer Learning #42

kzmssk opened this issue Jul 4, 2018 · 1 comment

Comments

@kzmssk
Copy link
Member

kzmssk commented Jul 4, 2018

転移学習における事前学習と転移先のタスクの相性を解析・可視化し,最適な組み合わせを求める手法を提案.

論文本体・著者

  • Taskonomy: Disentangling Task Transfer Learning
  • Authors: Amir Zamir, Alexander Sax, William Shen, Leonidas Guibas, Jitendra Malik, Silvio Savarese
  • Affiliations: Stanford University, University of California, Berkeley
  • Project page
  • arXiv

解きたい問題

  • Computer Vision(CV)の問題を深層学習モデルで解くためには多くの学習計算が必要
  • 別のタスクを解くことができるモデルの重みを再利用することで計算量を抑えたい(転移学習)
  • どのタスクが事前学習として最適なのかを知りたい
    • たとえばSurface normalの推定と深度推定はどちらかが分かれば,もう一方も推定できる
    • 深度推定のモデルは画像シーンのラベル付けに使えるか?

新規性

  • 複数のタスク間の組み合わせを実際に試し,タスク間の転移学習効率を解析し可視化したこと
  • 26個のCVタスクの関係性を深層学習モデルの転移学習効率という尺度で整理したこと

実装

taskonomy_2
論文 Fig. 2 より

Source→Targetという2つのタスク間の転移学習を想定.1つの画像に対してタスクごとに異なる教師データを持つデータセットを用意しておく.

多くのSourceタスクを解いたモデルとTargetタスク解決の際に入力するSourceモデルからの特徴量のバリエーションを増やせば性能がよくなるが,実際にはSourceタスクを学習するためのコスト(計算量,データセット作成の手間)がかかる.そのため本論文ではBudget=Sourceタスクの数,と定義し,Budgetと転移学習後の性能のトレードオフ関係を考慮している.

  1. Sourceタスク群をEncoder/Decoderの構造を持つCNNでSourceタスクを学習
  2. Source+Targetの全タスクで追加学習
    • Encoderから得られた特徴量を入力としてDecoderのみを新たに学習
  3. タスク間での転移の効率を評価した行列(Task affinity matrix)を作成.
    • TargetタスクでのLossを指標にすると予測結果の精度と線形の関係になっていない場合に正規化がうまくいかない
    • 何パーセントのテストデータが成功したのかを指標にする
    • Sourceタスクごとに正規化
    • タスクをエッジとした固有ベクトル中心性を求める
  4. タスク間の指向性グラフ(Task taxonomy = taskonomy)を作成
    • あるTargetタスクを解くためにもっとも良いSourceタスクの組み合わせを求める.
      • 3で求められたTask affinity matrixと,ユーザーが指定したパラメータを拘束条件として求める
        • Targetタスクの重要性(ユーザーが決める)
        • 教師データを作るときのコスト(ユーザーが決める)
        • 転移は1回だけ
        • ユーザーが決めたBudgetを上回らない
        • Boolean Integer Programmingで解く(数秒で解ける)

実験・議論

方法

  • 26のタスクを用意.内,4つはsourceタスクのみに使う
    • Surface normal,オブジェクトのクラス,シーンのクラス,色付け,セグメンテーションなど
  • EncoderはFully convolutional ResNet-50,Decoderは2層程度の小さいモデル
  • 複数のSourceタスクのEncoderから入力できる特徴量の数は4まで
    • 組合せ爆発が起きるのでBeam searchを使う
  • データセットの大きさはTraining: 120k, Validation: 16k, Test: 17k
    • ValidationをTargetタスクの学習時に使う

結果

Budgetを最大(全タスクをSourceとして考慮)にしても,Validationデータでスクラッチから学習するよりも良い結果を出し,かつTraining dataでスクラッチの場合と近い精度を出すタスク組み合わせが得られた.

taskonomy_8
論文 Fig. 8 より Budgetと最大のSourceの数を変更しながらTaskonomyを作成した結果 デモサイト
  • 得られたTaxonomyの評価を転移学習後のモデルと他の条件で学習したモデルとの比較を通して行なった
    • Gain: Targetタスクを事前学習なしに学習した場合との比較
    • Quality: TargetタスクでTraining dataset (120k)を使って学習した場合との比較
    • デモサイトでどのタスクの組み合わせがよい結果を出すのかをグラフで閲覧できる
    • Sourceの数とBudgetを増やすと性能向上する傾向がみられた
    • 未知のタスクに対して転移学習をしたい場合を想定して,Targetタスクが1つのみの場合も実験した
      • 既存モデル(Imagenetなど)を事前学習なし,かつ提案手法よりも多くのデータで学習した場合と比べて〜60%の精度がでた
    • RandomにSourceとTargetを選んだ場合より提案手法が良いGainとQualityを出した
    • データセットが転移学習時に変わった場合を比較
      • ImageNet,MIT Placesデータセットでも得られるTargetタスクの性能順位に相関がみられた
    • モデルの構造,データ量,タスクの選び方などを変えてもほとんど同じTaskonomyが得られた
    • Taskonomyを使ってタスクのSimiarity Treeを作成した
      • Task affinity matrixを利用して作成
      • Semantic,低次元データの予測,2D画像の予測,3Dデータの予測というタスクのクラスタがみられた

読んだ中での不明点などの感想

  • 結果が大きく悪くなるSourceタスクの組み合わせも知りたい!
  • 論文中で最後に触れられているが,ロボットのEnd-to-End制御モデルへの応用が可能なのかは興味深い

関連論文

@kogaki
Copy link
Member

kogaki commented Jul 5, 2018

CVPR2018 Best Paper

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants