Introduction

최근 딥러닝 기반의 모델이 다양한 task에 대해서 좋은 성능을 보여주고 있습니다. 일반적으로 특정 종류의 task를 수행하기 위해서는 해당 task를 위한 input과 label의 쌍을 지닌 데이터셋을 확보하고, 이를 활용해 딥러닝 모델을 학습하게 됩니다.

하지만 여러 종류의 task를 수행하기 위해서는 각각의 task를 위한 모델을 따로 구축해야 하므로 수행해야 하는 task의 개수가 늘어날 때 마다 점진적으로 보유해야 하는 모델의 개수가 늘어나는 한계점이 있습니다. 이는 모델의 유지보수 입장에서도 까다로우며 저장용량 측면에서도 비효율적입니다. 최근에는 이러한 문제를 해결하기 위한 노력과 시도들이 다양하게 일어나고 있으며 본 글에서는 그 중에서도 Multi-Domain Learning이라는 연구주제에 대해 간략히 살펴보려 합니다.

 

Multi-Task Learning & Multi-Domain Learning

20181206 Multi-Domain Learning - Google Slides 2018-12-21 14-51-22
Multi-task learning과 multi-domain learning의 차이
ECCV2014.png (583×330) 2018-12-21 14-57-21.png
Multi-task learning 예시. 출처

여러 종류의 task를 수행하기 위한 환경의 조건은 크게 multi-task 또는 multi-domain 두 종류로 분류할 수 있습니다. Multi-task learning의 경우 학습하려는 여러 종류의 task가 동일한 domain에 존재할 경우를 칭합니다. 얼굴 데이터로부터 얼굴 인식, 표정 인식, 성별 분류, 포즈 분류 등의 task를 모두 하나의 모델로 처리하고자 하는 경우를 예로 들 수 있습니다.

 

20181206 Multi-Domain Learning - Google Slides 2018-12-21 15-04-56
Multi-domain learning 예시. 출처

반면 Multi-domain learning의 경우 학습하려는 여러 종류의 task가 각각 다른 domain에 존재할 경우를 칭합니다. 예를 들어 의료 이미지에서의 병변 검출, 일상 이미지에서의 카테고리 검출, 문자가 포함된 이미지에서의 문자열 검출 등의 task를 모두 하나의 모델로 처리하고자 할 경우입니다. 방금 말씀드린 예시는 조금 극단적인 상황을 가정했지만, 어플리케이션을 구축할 때 여러 종류 domain의 다른 task들을 수행해야 하는 경우가 종종 발생하게 됩니다.

 

Objective of Multi-Domain Learning

20181206 Multi-Domain Learning - Google Slides 2018-12-21 15-17-02.png
universal feature extractor. 출처

여러 task를 수행하고 싶으면 그냥 여러 개의 모델을 만들면 되지 궂이 어렵게 하나의 모델을 구축하려고 하는 이유가 있을까요? Multi-domain learning을 성공적으로 수행할 경우 얻을 수 있는 이점은 크게 두 가지 정도가 있습니다.

우선, 여러 domain 또는 task에서 동시에 잘 작동할 수 있는 shared feature를 학습할 수 있다면, 각각 독립적으로 모델을 구축했을 때 대비 굉장히 많은 양의 파라미터를 줄일 수 있습니다. 딥러닝 모델이 전통적인 머신러닝 모델들과 다른 점은 data-driven feature를 학습한다는 것인데, 직관적으로 생각해 봤을 때 low-level feature 혹은 mid-level feature는 task가 다르더라도 거의 공통적으로 사용되는 (중복될 수 있는) feature들이 다수 존재할 것이라 볼 수 있습니다. 이를 중복적으로 사용하는 대신 여러 task에 공통된 하나의 feature 집합을 구성하더라도 충분히 좋은 성능을 낼 수 있을거라 예상할 수 있습니다.

두 번째로는, 딥러닝 모델이 배우는 feature는 data-driven 하므로 특정 task를 위한 dataset으로 모델을 학습 할 경우, 해당 데이터로부터 배울 수 있는 feature는 해당 task를 잘 수행할 수 있는 집합 내로 한정됩니다. 만약 각 domain 간에 서로 시너지를 줄 수 있는 feature가 존재하고 이를 공유할 수 있다면, 하나의 task만 수행했을 때 보다 더 나은 성능을 기대할 수도 있을겁니다.

 

Model Architecture

20181206 Multi-Domain Learning - Google Slides 2018-12-21 15-52-21
Model architectures for multi-domain learning. [1]

Multi-task learning 또는 multi-domain learning을 수행하기 위한 모델 구조로는 크게 두 가지로 분류할 수 있습니다. 위 그림에서 w는 shared feature, α는 task-specific feature를 의미합니다.

(b) universal feature extractor 구조는 low-level feature와 mid-level feature 모두를 share하고 high-level feature만 task-specific하게 학습하는 경우를 말합니다. 주로 multi-task learning을 학습할 때 활용되는 경우가 많으며, input data가 존재할 때 한 번의 feed-forward로 여러 종류의 task를 동시에 수행할 수 있는 장점이 존재합니다.

(a) universal parametric family 구조의 경우에는 low-level feature부터 high-level feature 까지 모든 부분에서 task-specific feature가 존재하고 있습니다. low-level 까지도 모두 task-specific한 부분이 들어가기 때문에 각각의 task의 유사성이 떨어지고 많이 다를 경우엔 (b) 구조보다 더 잘 작동한다고 알려져 있습니다 [1]. (b)와 달리 한 번의 feed-forward에는 한 가지 종류의 task밖에 수행할 수 없다는 상대적인 단점이 존재하지만, 어차피 multi-domain learning 환경에서는 한 종류의 데이터셋에 대해서는 한 종류의 task만을 수행하게 되므로 해당 환경에서는 단점으로 작용하지 않게 됩니다. 최근 multi-domain learning에서 state-of-the-art 성능을 보이고 있는 모델들의 대부분은 (a) universal parametric family 구조를 적극 활용하고 있습니다.

 

Public Dataset for Multi-Domain Learning

특정 종류의 알고리즘 성능을 비교분석하기 위해서는 public dataset에서의 비교 성능을 살펴보는 것이 용이합니다. 어느정도 공정한 상태에서의 성능 비교분석이 가능하기 때문입니다. Multi-domain learning의 경우 Oxford University의 Visual Geometry Group (VGG) 연구실에서 공개한 Visual Decathlon Dataset이 존재합니다.

20181206 Multi-Domain Learning - Google Slides 2018-12-21 16-15-46.png
Visual decathlon dataset

Visual Decathlon dataset은 총 10가지 종류의 서로 굉장히 다른 domain의 데이터들을 모아 둔 데이터셋입니다. 모든 10가지의 데이터셋은 기존에 이미 공개가 되어 있는 public dataset들이며, 10종류의 domain에 대한 성능을 비교해야 하는 task의 특성상 실험 시간이 오래 걸리는 것을 고려해 모든 데이터의 이미지 크기를 가장 긴 축이 72px가 되도록 resize 해 두었습니다.

20181206 Multi-Domain Learning - Google Slides 2018-12-21 16-19-38.png
Visual Decathlon에서 각 알고리즘의 성능 비교. [2]

위 테이블에서는 각 dataset에 대해 accuracy를, 가장 오른쪽의 score는 decathlon score [2]라고 정의한, baseline fine-tuning 모델 대비 얼마나 성능이 좋은지를 각 데이터셋마다 상대적인 값을 측정한 뒤 모두 더한 score입니다.

여러 알고리즘들을 비교 해 봤을 때, Parallel Residual Adapter [1]이 decathlon score를 기준으로 다른 알고리즘들 대비 성능이 높음을 확인할 수 있습니다.

 

Parallel Residual Adapters

20181206 Multi-Domain Learning - Google Slides 2018-12-21 17-04-37
Parallel Residual Adapter

Multi-domain learning에서 높은 성능을 보이는 parallel residual adapter의 구조는 위 그림에서의 오른쪽과 같습니다. 기존 ResNet 구조에서 Res block에 존재하는 모든 3×3 convolution layer에 1×1 convolution을 가진 residual connection을 추가한 형태입니다. 여기서, 1×1 convolution을 제외한 다른 모든 layer(shared parameters)들은 ImageNet으로 학습한 pre-trained network의 파라미터로 고정(freeze)해 둔 상태로 학습을 진행합니다. 만약 T개의 task가 존재할 경우, parallel residual adapter에서 추가되는 모든 1×1 convolution layer는 각각 T개씩 존재하며, 각 task별로 따로 fine-tuning이 이루어집니다.

Inference time에는 특정 task t에 대해 inference를 수행하고 싶을 경우 모든 res block의 1×1 convolution 파라미터를 task t에서 학습한 파라미터로 설정한 뒤 feed-forward를 수행합니다. 만약 다른 task t+1을 수행하고 싶다면, 해당 1×1 conv 파라미터들을 t+1에서 학습한 파라미터로 변경한 뒤 feed-forward를 수행하면 되는 구조입니다.

 

Parallel Residual Adapters: Limitation

위 모델 구조는 Visual Decathlon dataset에서 높은 성능을 보이긴 하지만 앞서 말씀드린 multi-domain learning의 목적 중 하나인 domain간의 knowledge share 측면에서 조금 이상한(?) 부분이 존재합니다.

논문에서는 shared parameter가 각 domain이 서로 공유하게 되는 부분인데, 이를 ImageNet에서 학습한 feature로 고정해 둔 상태로 학습을 진행하게 됩니다. 이렇게 학습을 진행할 경우 초기에 ImageNet feature를 학습 해 두고 고정을 함으로써 incremental하게 계속 새로운 task를 네트워크에 추가할 수 있어서 incremental learning이 가능하다는 측면에서는 상당한 이점이 존재합니다. 다만, 각 domain이 share하는 knowledge는 ImageNet이라는 domain으로 한정되게 되므로 진정한 의미로써의 between domain knowledge share는 아니라고 볼 수 있습니다. 물론, ImageNet에서 학습한 feature는 여러 domain에서 어느정도 잘 활용될 수 있는 상당히 general하고 좋은 feature이므로 사용하는데 무리는 없습니다.

만약 논문에서처럼 shared parameter 부분을 freeze하지 않고 함께 fine-tune을 수행하려고 한다면, 한 번의 feed-forward로 여러 task의 loss를 동시에 계산할 수 없는 문제점과, 설령 한 번의 feed-forward로 여러 task에 대한 prediction을 구한다고 하더라도, 해당 input에 대응되는 label은 한 가지 task에 대해서만 존재하므로 loss를 모든 task에 대해 구할 수 없게 됩니다. 앞서 말씀드린 문제들이 해결되더라도 서로 상이한 task loss에서 계산한 gradient들을 동시에 고려하며 optimization을 수행해야 하는 multiple gradient descent 문제를 해결해야 하는 등 여러가지 추가 고려사항들이 발생하게 됩니다.

 

Conclusion

본 글에서는 multi-domain learning에 대해 multi-task learning과의 차이점, 수행의 목적, 주로 사용되는 public dataset, 현재의 state-of-the-art 모델에 대해 간략하게 살펴보았습니다. 최근 들어 해당 주제에 대해 어느정도 활발한 연구가 진행되고 있고, 앞으로 해결해야 하는 부분이 많이 존재하고 있으며, 어플리케이션 측면에서 상당한 이점이 있어 흥미로운 연구 주제라고 사료됩니다.

 

[1] S. Rebuffi et al. Efficient parametrization of multi-domain deep neural networks. CVPR’18.
[2] S. Rebuffi et al. Learning multiple visual domains with residual adapters. NIPS’17.

Posted by:Byungjae Lee

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