안녕하세요. 이번 시간에는 CVPR 2018에 발표된 taskonomy라는 논문을 소개해 드리도록 하겠습니다. 이 논문은 multi-task learning에서 최소한의 labeling 비용으로 가장 많은 성능을 얻을 수 있는 방법을 소개합니다. CVPR 2018에서 best paper award를 받을 정도로 많은 인정을 받았는데요, 이에 걸맞게 검증이나 실용성 측면에서 좋은 연구라는 생각이 듭니다.

이 논문은 다음과 같은 질문을 던지면서 시작합니다. “과연 task들이 관계를 가지고 있을까?” 여기서 말하는 task는 object classification, semantic segmentation 등등 컴퓨터 비전 분야에서 풀고자 하는 문제들을 의미합니다. 일단 task들이 관계를 가지고 있을 것은 당연해 보입니다. 왜냐하면 실제로 많은 증거들이 있기 때문입니다. 예를 들어서 풀고자 하는 visual task의 데이터셋이 부족할 때(심지어는 부족하지 않더라도), object classification을 다룬 imagenet 데이터셋을 transfer learning 시키면 더 높은 성능을 얻을 수 있다는 것은 최근에는 거의 상식으로 받아들여지고 있습니다. 이것은 풀고자 하는 task가 visual task이므로 object classification과 비슷한 관계를 가지고 있기 때문에 가능합니다. 하지만 각각의 task가 얼마나 object classification과 비슷한지는 다 다르기 때문에 transfer learning 이후의 성능은 다 제각각입니다.

Transfer learning과 task relation은 실제 문제를 해결할 때 굉장히 중요한 이슈입니다. 만약 우리가 풀고자 하는 target task A가 labeling cost가 많은 문제라고 가정합시다. 그래서 이에 대한 해결책으로 비슷한 task이면서 label을 얻기 쉬운 다른 source task B를 골라서, B의 dataset을 모으(거나 기존의 데이터셋을 활용하)고 task B -> task A의 transfer learning을 사용해서 최대한의 성능을 끌어내는 방법을 사용하기로 결정했다고 가정합니다. 그러면 어떤 task A, B를 골라야 가장 효율적인 학습이 가능할까요? Taskonomy는 최적의 source task 및 target task를 고를 수 있는 fully-computational한 방법을 제시합니다.

Task

Taskonomy에서 사용하는 task들은 다음과 같습니다. Taskonomy에서 관심을 가지는 task들은 indoor-scene 문제들입니다. 물론 taskonomy는 어떤 컴퓨터 비전 문제에든 적용이 가능하긴 하지만, 개인적인 생각으로 indoor-scene task들이  특히 taskonomy가 필요한 환경을 가지고 있는 것 같습니다. 그 이유는 다음과 같습니다.

많은 task

실제 논문에서 제시한 task는 총 26개입니다. 모든 task들은 실제 indoor scene inference에서 많이 쓰입니다.

  • Surface Normals
  • Image Reshading
  • 2D Texture Edges
  • Vanishing Points
  • Unsupervised 2.5D Segm.
  • Room Layout
  • Scene Classification
  • 3D Keypoints
  • 3D Occlusion Edges
  • Autoencoding
  • Euclidean Distance
  • Semantic Segmentation
  • Unsupervised 2D Segm.
  • 3D Curvature
  • 2D Keypoints
  • Object Classification
  • Z-buffer Depth
  • Denoising
  • Autoencoding
  • Colorization
  • Image In-painting

각 task에 대한 더 자세한 내용은 논문 보충 자료에 있습니다.  Task들이 워낙 많다 보니 이 task들을 일일이 label을 얻는 것도 힘들고, 설사 공들여 label을 받았다 하더라도 거의 비슷한 task들도 있고 그래서 “이 중에 몇 개만 fully-annotation 받고, 나머지는 fine-tuning 하면 되지 않을까?”라는 생각을 할 수 있습니다.

Dataset labeling 비용

한 예로, image reshading은 영상에서 reflectance와 shading을 구별해내는 문제입니다. Intrinsic image decomposition으로 불리기도 합니다.

I = R * S

여기서 reflectance는 영상의 고유한 색상을 의미하고, shading은 빛에 의해 밝게 되는 값을 의미합니다. 예를 들어서 영상 내 어떤 물체의 일부에 그림자가 져 있다면, 물체의 reflectance는 같지만 shading만 다릅니다.

 

image reshading 문제는 수학적으로 ill-posed problem이고 데이터셋을 얻는 것 부터가 힘든데요, 정말 특수한 장비를 쓰지 않는 한 값을 얻는게 불가능합니다. intrinsic images in the wild 라는 논문에서 소개된 바과 같이 user input을 사용해서 generation하는 것이 최선입니다. Labeling 비용이 상당하죠.

Taskonomy

Taskonomy는 어떤 task 들의 set에서 어떤 task를 labeling하고 어떤 task를 fine-tuning하면 되는지를 나타낸 도식입니다. Taskonomy의 예제는 논문 홈페이지에서 확인하실 수 있습니다. 그래프의 각 node는 task를 나타내고 edge의 source는 source task, target은 target task를 의미합니다. 그래프를 보시면 한 target에 2개 이상의 source가 있는 경우가 있는데, 말 그대로 2개 이상의 source를 사용해 fine-tuning한 것을 의미합니다. 논문의 demo를 보시면 maximum order of transfer function이라는 parameter를 사용해서 최대 몇 개의 source task를 동시에 사용할 수 있는지를 지정할 수 있습니다. 그리고 budget이라는 개념도 있는데 이것은 얼마 만큼 많은 label을 받았는지를 의미합니다. 만약 budget이 아주 많다면 모든 task에 대해서 fully-annotation을 받으면 되고, 반대로 budget이 부족하다면 최대한 작은 task만  source task로 정의해서 annotation을 받고 나머지는 조금만 labeling을 받아서 source task를 fine-tuning해야 합니다.

Generating taskonomy

Taskonomy 방법 overview: Transferability 모델링 및 taxonomy 생성 과정

Taskonomy는 다음과 같은 방식으로 만들어집니다.

  1. Task-Specific Modeling
  2. Transfer Modeling
  3. Ordinal Normalization using Analytic Hierarchy Process (AHP)
  4. Computing the Global Taxonomy

여기서는 간략하게만 설명합니다. 더 자세한 설명은 논문여기여기를 참조하세요.

Task-Specific Modeling

먼저 Source task를 학습시킵니다. 이 때 network는 encoder와 decoder로 이루어져 있습니다. Encoder의 결과로 image의 task에 대한 representation들이 학습되고, decoder를 통해서 pixel-level prediction 혹은 single prediction이 학습될 것입니다.

figure.png

Transfer Modeling

Encoder는 고정한 채 target task들에 대해서 decoder를 fine-tuning합니다. 여기에 쓰이는 데이터는 source data에 비해서 훨씬 작은 양으로 학습이 가능합니다. 논문의 실험들에서는 step 1은 training set (120k)에 대해서 시행되었고, step 2는 validation set (16k)에 대해서 시행되었습니다. 후술할 step 3에서는 각각의 fine-tuning된 네트워크에 대한 성능을 계산해야 하는데 이것은 test set (17k)에 대해서 시행됩니다. 또한 taskonomy를 만들기 위해서는 모든 source task와 target task의 pair에 대해서 transfer learning을 시행해야 합니다.

Transfer network의 구조

High-Order transfer

하나의 target task를 학습시키는 데 두 개 이상의 source task의 representation이 필요합니다. Taskonomy를 만들기 위해서는 물론 이 pair들 모두에 대해서도 학습을 시켜 봐야 합니다. 하지만 high-order로 갈 수록 가능한 조합의 수가 많아지기 때문에 현실적으로 어렵습니다. 따라서 논문에서는 beam search를 사용했습니다: 가장 성능이 좋은 5개(k≤5인 경우) source task들에 대해서만 combination을 해서 다음 order 후보군을 fine-tuning합니다.

Ordinal Normalization using AHP

앞선 step에서 계산된 네트워크를 가지고 affinity matrix를 구합니다. 논문에서는 이 matrix를 그냥 구할 시에는 각 task별 bias 때문에 제대로 된 affinity가 구해지지 않으므로 사회학 등에서 사용하는 AHP라는 방법을 사용해 normalization을 진행한다고 합니다.

k >= 1일 때의 task affinity matrix 예시<br><small>(여기에서는 값이 작을수록, source->target transferability가 높음)</small>

Computing the Global Taxonomy

위에서 계산된 affinity matrix를 사용해서 global taxonomy를 계산합니다. 앞서 설명한 바와 같이 global taxonomy의 목적은 어떤 task를 source task로 삼아서 labeling하고 어떤 task를 fine-tuning하면 되는지를 알아보는 것입니다. 따라서 다음과 같은 제약 사항이 들어갑니다.

  1. if a transfer is included in the subgraph, all of its source nodes/tasks must be included too
  2. each target task has exactly one transfer in
  3. supervision budget is not exceeded

1번 조건은 그래프 모양을 만들기 위해서 필요합니다. 그리고 하나의 target task를 학습시키기 위한 두가지 이상의 방법을 제시할 필요는 없기 때문에 2번 조건이 존재합니다. 그리고 budget 상황에 따라서 다양한 taskonomy를 제시하기 위해서 3번 조건이 필요합니다. 논문에서는 binary integer programming(BIP)를 사용해서 문제를 해결했습니다. 문제를 BIP로 수식화 할 수 있으면, 보통 library를 사용해서 optimization을 수행할 수 있기 때문에 현명한 접근입니다.

Experiments

앞서 설명한바와 같이 dataset은 training set (120k), validation set (16k), 그리고 test set (17k)으로 구성되어 있습니다. Encoder의 학습에는 training set, transfer learning에는 validation set, 그리고 성능 검증에는 test set을 사용합니다.

또한 본 연구에서 성능을 측정하기 위해서 win-rate라는 개념을 사용합니다. Network가 두개 있을 때, test set의 각각 샘플을 하나씩 두 network의 출력이랑 비교해서 ground-truth에 가까운 network가 이겼다고 판별합니다. 모든 test set에 대해서 이것을 구한 후 한 network가 다른 network를 이긴 비율을 win rate라고 정의합니다.

Win rate를 사용해서 두 가지 measure를 정의할 수 있습니다.

Gain

  • win rate (%) against a network trained from scratch using the same training data as transfer networks

Quality

  • win rate (%) against a fully supervised network trained with 120k images (gold standard)

Gain 같은 경우에는 transfer learning 없이 validation set만 가지고 학습을 시키므로 최소 0.5의 값을 가집니다. 0.5이면 baseline과 비교해서 transfer learning의 gain이 없다고 할 수 있습니다. 반면에 Quality같은 경우에는 0.5가 나오면 training set를 다 써서 학습시킨 것과 무승부를 기록했으므로 최고의 성능을 가졌다고 말할 수 있습니다.

Sanity Test

Task-specific network들의 각 task 별 성능 검증 결과

먼저 학습이 제대로 되었는지를 확인하기 위해 가짜 network와 win-ratio를 비교합니다.

Rand는 정규분포로부터 샘플링한 랜덤한 값들을 그대로 task-specific network의 weight들로 사용하여 테스트하는 방법이고 avg는 encoder의 출력, 즉 representation을 실제 레이블들의 평균으로 채운 값을 사용한 방법입니다. 결과적으로 거의 모든 sample에서 더 나은 성능을 보임을 확인할 수 있습니다.

How good are the trained task-specific networks?

Sanity test와 더불어서 학습된 network의 실제 성능이 얼마 정도 나타나는지를 알아보기 위해 depth estimation task에 대해서 taskonomy를 사용해 학습된 network와 state-of-the-art 방법(I. Laina et. al., Deeper depth prediction with fully convolutional residual networks)을 비교하였습니다. 결과는 win-rate 88%로 이겼다고 합니다. 물론 state-of-the-art 방법에 비해 prior-knowledge를 잔뜩 쓴 network로 fine-tuning시켰기 때문에 공정한 비교는 아니지만, 학습된 network가 굉장히 좋은 성능을 가짐을 알 수 있습니다.

Evaluation of computed Taxonomy

계산된 taxonomy가 얼마나 좋은 성능을 나타내는지를 보는 실험입니다. 총 22개의 target task, 그리고 4+22개의 source task에 대해서 budget을 올려 갈수록 taskonomy의 성능이 얼마나 좋은지를 나타낸 표입니다.

완성된 taskonomy에 기반한 transfer 규칙을 각 target task에 적용하였을 시의 테스트 결과<br><small>(클릭하면 확대하여 보실 수 있습니다)</small>

Budget이 증가할 수록 gain이 커지고, quality가 0.5에 근접함을 알 수 있습니다. 이것은 budget이 클 수록 더 많은 task에 대해서 full-annotation을 받을 수 있기 때문입니다. 하지만 budget을 반 정도만 사용하더라도(특히 transfer order가 증가하면) 대부분의 task에서 0.5 quality를 얻을 수 있고, gain도 올라감을 확인할 수 있습니다.

Generalization to Novel Tasks

새로운 task에 대한 일반화 성능 검증 ê²°ê³¼<br><small>(좌측: Gainê³¼ Quality; 우측: 상기 명시된 방법들을 baseline으로 한 win rate(%))</small><br><small>(클릭하면 확대하여 보실 수 있습니다)</small>새로운 task에 대해서 얼마나 좋은 성능을 내는지 확인하기 위해서 target task로 해당 task를 놓고, 나머지를 모두 source task로 옮겼을 때, taskonomy를 통해서 얻어진 방법의 성능입니다. 오른쪽 표가 기존의 self-transfer learning method들과의 비교인데, 놀랍게도 기존의 모든 self-transfer learning method를 압도하는 성능을 보입니다.

Significance Test

랜덤한 transfer policy 대비 Taskonomy 방법으로 찾은 최적의 transfer policy 적용 성능 비교 결과<br><small>(녹색: Taskonomy; 회색: 랜덤 transfer policy)</small>

Sifnificance test에서는 random하게 선택한 taxonomy(회색)과 computational하게 선택한 taxonomy(초록색)의 성능을 비교합니다. 큰 차이로 앞서 나감을 확인할 수 있습니다.

Evaluation on MIT Places & ImageNet

만약 dataset이 바뀐다면, taxonomy도 바뀔까요? 이를 확인하기 위한 실험입니다. Taskonomy의 실험을 위해서 사용한 dataset에는 image classification과 scene estimation도 존재하는데요, 여기에 쓰이는 대표적인 데이터셋인 ImageNet과 MIT Places를 사용해서, 두 데이터셋에 대해서 taskonomy를 구한 후 유사도를 구했습니다.

ImageNet, MIT Places 데이터셋으로의 transferability 결과와의 상관성 조사 결과<br><small>(클릭하면 확대하여 보실 수 있습니다)</small>

두 함수의 유사도를 구하는 함수인 Spearman’s correlation이 0.8 이상의 값을 가짐을 확인할 수 있습니다. 다시 말하면, 실험에 쓰인 dataset을 다른 dataset으로 바꾸더라도 유사한 taskonomy를 가지기 때문에 task space는 dataset에 비교적 invariant하다고 주장할 수 있습니다. (물론 완전히 똑같을 수는 없겠죠.)

Universality of the Structure

엄격한 검증을 위해 다음 조건을 바꿔 가면서 실험하였습니다.

  1. architecture of task-specific networks
  2. architecture of transfer function networks
  3. amount of data available for training transfer networks
  4. datasets
  5. data splits
  6. choice of dictionary

모두 다 taskonomy의 결과 및 결과 performance가 안정적이었다고 합니다.

결론

이 연구에서는 task space가 존재해서 특정 task에서 다른 task로 fine-tuning했을 때 최고의 성능을 보이는 방법이 있다는 것을 검증하고, 그것을 찾을 수 있는 계산적인 방법을 제시했습니다. 검증 면에서나 실용성 측면에서나 많은 것을 신경 썼다고 느껴지는 좋은 연구인 것 같습니다.

 

Posted by:jhlee525

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s