본문 바로가기
딥러닝(Machine Deep learning)

Multi-Task Learning-Optimization Strategy [1]

by Park Hyun Kook 2022. 7. 5.

 MTL(Multi-Task Learning)은 여러 Task들을 동시에 학습하는 방식이다. 이 방식은 기본적으로 여러 Task를 동시에 수행하였을 때의 결과가 단일 Task를 수행하였을 때의 결과보다 성능이 향상된다는 연구 결과에 기반한다. 실세계의 예시로 탁구를 분석한다고 생각해보자. 탁구공을 칠 때 탁구공의 현재 위치, 걸려 있는 스핀 그리고 궤적까지 모두 동시에 예측하여 최적의 자세를 잡고 스윙을 하는 것이 최고의 공격을 만들어 낼 수 있다. 비록 탁구공의 회전을 분석하는 것과 탁구공의 현재 위치를 파악하는 것은 완전히 근간이 다른 일이지만, 탁구공의 현재 위치와 스핀에 대한 예측이 높을수록 공의 궤도를 더 잘 예측할 수 있다. 본 예시를 딥러닝에 적용하였을 때, 3가지 Task (탁구공 현재 위치 파악, 스핀 분석, 궤적 예측)를 동시에 수행하는 것이 단일 Task를 수행하는 것보다 성능이 높아질 수 있다는 것이다.

                                                                                               

Fig. 1.  Left: Three single-task networks, each of which uses the same input to predict the spin, distance, or trajectory of the ping-pong ball, respectively. Right: A single multi-task network that simultaneously predicts the spin, distance, and trajectory [3].

 

 위 예시와 같이 MTL은 서로 연관이 있는 개별 Task들을 동시에 학습하여 성능을 높이거나 또는 여러 Task들의 네트워크 구조를 통합함으로 전체 네트워크의 크기를 줄이며 Training/Inference Time을 단축시키는 효과 또한 얻을 수 있다. [1]에서는 MTL의 여러 기법들을 아래 Fig. 2와 같이 크게 2가지로 분류하여 정리한다. 

Fig. 2.  A taxonomy of deep learning approaches for jointly solving multiple dense prediction tasks [1].

 

 Deep Multi-Task Architecture의 경우 여러 Task들의 어떤 방식으로 Grouping할지를 중심으로 생각한다. 아래 Fig. 3, 4와 같이 Hard parameter sharing, Soft parameter sharing, Encoder-focused model, Decoder-focused model 등의 방식이 있으며, Encoder를 통합시키며 구조를 Compact하게 설계하여 Training/Inference Time를 단축시키거나, 여러 Task의 각각의 Encoder를 지속적으로 Parameter Sharing하여 성능을 향상시키는 효과를 얻을 수 있다. 

Fig. 3. Left: Hard parameter sharing,  Right: Soft parameter sharing

 

Fig. 4. Left: Encoder-focused model, Right: Decoder-focused model

 

 Optimization Strategy의 경우는 Task를 어떠한 방식으로 Grouping할지에 대해 생각하기 이전에, 여러 Task들 중 어떠한 Task끼리 Grouping을 진행해야 성능을 향상시킬 수 있을까를 중심으로 생각한다. 본 글에서는 이 Optimization Strategy에 대해서 생각해보고자 한다. 

 

Optimization Strategy - Task Grouping

 MTL 연구에서 여러 Task 중 어떠한 Task끼리 Grouping을 해야 성능이 올라갈지에 대해 아직 대표적인 연구가 없으며  계속해서 연구가 진행되고 있다. 본 글에서는 1. 모든 조합수를 학습하여 Grouping할 Task를 선정하는 방식2. Grouping 알고리즘을 사용하여 네트워크가 최적의 Grouping Task를 선정하는 방식을 설명하고자 한다.

 

1. 모든 조합수를 학습하여 Grouping할 Task를 선정하는 방식

 [2]에서는 아래 5개의 Task들의 Grouping 방식을 제안하며 실제로 학습이 가능한 모든 조합수뿐만 아니라 여러 Setting (네트워크 크기, 데이터셋 양)을 조절하며 실험한 연구 결과를 제시한다. 실제로 실험 결과 5개 Task에 해당하는 최적의 네트워크 구조는 Fig. 5과 같다. 

 

  1. Semantic Segmentation
  2. Depth Estimation
  3. Keypoint Detection
  4. Edge Detection
  5. Surface Normal Prediction

Fig. 5. Given five example tasks to solve, there are many ways that they can be split into task groups for multi-task learning. How do we find the best one? 

 

 위 Fig. 3에서 제시한 최적의 네트워크 구조는 가장 낮은 Total loss를 가지며, 2.5 units의 Computational Budget을 사용한다. 본 네트워크는 총 3개의 네트워크(A, B, C)로 구성된다.

 

  • 네트워크 A는 Semantic Segmentation, Depth Estimation, Surface Normal Prediction (삭제 가능)
  • 네트워크 B는 Keypoint Detection, Edge Detection, Surface Normal Prediction (삭제 가능)
  • 네트워크 C는 Surface Normal Prediction (네트워크 A,B의 절반 크기의 Encoder를 사용)

 네트워크 A와 B에서 Surface Normals Prediction을 함께 사용하였을 때 그 이외의 네트워크 성능(네트워크 A의 경우 Semantic Segmentation, Depth Estimation의 성능, 네트워크 B의 경우 Keypoint Detection, Edge Detection의 성능)을 향상시키는 반면, Surface Normals Prediction은 다른 네트워크와 함께 학습하는 것보다 단독으로 학습하였을 때 가장 성능이 가장 높다는 실험 결과를 바탕으로 설계되었다. 제안하는 네트워크 성능은 5개를 모두 동시에 학습하는 네트워크 또는 5개를 각각 학습한 네트워크보다 향상된 성능을 보였다. 그렇다면 본 논문에서는 어떻게 위와 같은 최적의 네트워크를 구성할 수 있었을까?

 

------논문 실험 결과------

본 연구에서 실험한 모든 조합수와 Setting은 아래와 같다. 

- 5개의 task (One Semantic task, two 3D tasks, two 2D tasks)

 

  1. Semantic Segmentation
  2. Depth Estimation
  3. Keypoint Detection
  4. Edge Detection
  5. Surface Normal Prediction

 

- Setting 종류들 

  Network Training dataset size Purpose
Setting 1 Xception17(Light version) 3.9 million Network Size
Setting 2 Xception 3.9 million Control
Setting 3 Xception 200 thousand Dataset size
  • Setting 1: Network의 size가 MTL에 영향을 주는지 확인 (Setting 2보다 작은 크기의 Network)
  • Setting 2: Control (가장 큰 Network size, 가장 많은 Dataset)
  • Setting 3: Dataset의 size가 MTL에 영향을 주는지 확인 (Setting 2보다 적은 양의 Dataset)

 

- Multi Task 통합 실험 결과 (단일 Task 결과와 Multi Task 결과 성능 비교)

 아래 Table. 1에서 Multi-Task의 성능과 단일 Task의 성능을 비교한다. 

Table. 1. Performance of multi-task learning relative to independent(single-task) training.

 

 첫 번째 행은 Fig.6과 같이 Multi-task와 Single-task의 성능을 비교한 결과를 보여준다. Multi-task는 Single-task과 비교하였을때 오히려 성능이 저하되는 것을 확인할 수 있다. 하지만 Single Task에서 사용한 Total budget은 Multi-task에서 사용한 Total Budget보다 5배를 더 사용한다. 따라서 동일한 Total Budget에서의 성능 비교를 위해 단일 Task의 Budget을 줄인다. 예를 들어 4개의 Task의 성능 비교시 단일 Task의 네트워크 크기를 1/4로 줄이며 동일 Total Budget에서의 성능을 비교한다.

 Fig. 6. 첫 번째 행에서 비교한 Multi-Task와 Single-Task의 구조, Left: Multi-task architecture, Right: Single-task architecture

 

 두 번째 행은 Fig. 7과 같이 동일한 Total Budget에서의 Multi-Task와 Single-Task(1/n)를 비교한 결과를 보여준다. 본 실험 결과에서 3가지 Task 이상으로 Multi-Task Learning을 진행하였을 때 단일 Task 보다 성능이 향상되는 것을 확인할 수 있다. 본 실험을 바탕으로 동일한 Total Budget에서 성능을 비교할때 Multi-Task를 사용하는 것이 Single Task보다 성능이 향상된다는 것을 알 수 있다. 

Fig. 7. 두 번째 행에서 비교한 Multi-Task와 Single-Task의 구조. 동일한 Total budget에서의 성능 비교를 위해 Single-task의 네트워크 크기를 줄인다.  Multi-task architecture, Right: Single-task with 1/3 size Encoder architecture

 

 

- Setting 실험 결과 (네트워크 크기와 데이터셋 크기를 어떻게 해야 할까?)

 아래 3개의 Table을 모두 비교한 결과 Setting 2(가장 큰 Network Size, 가장 많은 Dataset)이 평균적으로 가장 높은 성능을 보이는 것을 확인할 수 있다. 본 실험을 바탕으로 SemSeg, Depth, Normals, Keypoints, Edges task들을 MTL시 네트워크의 크기가 크고, 데이터셋의 양이 많을수록 성능이 좋다는 것을 확인할 수 있다.

Table. 2. Pairwise multi-task relationships in Setting 1.

 

Table. 3. Pairwise multi-task relationships in Setting 2

 

Table. 4. Pairwise multi-task relationships in Setting 3.

 

 

- Task Grouping (어떤 Task끼리 Grouping을 해야 할까?)

 앞서 언급하였듯이 본 논문에서는 어떤 Task끼리 Grouping을 해야할까에 대한 의문을 해결하기 위해 가능한 모든 조합의 네트워크를 설계하고 실험하며 Fig. 5와 같이 가장 작은 Total Loss를 가지는 최적의 Grouping 방식을 찾아냈다. (아래 조합 참조. 총 36개의 조합수)

 

  • (SemSeg), (Depth), (Normals), (Keypoints), (Edges)
  • (SemSeg-half size), (Depth-half size), (Normals-half size), (Keypoints-half size), (Edges-half size)
  • (SemSeg, Depth), (SemSeg, Normals), (SemSeg, Keypoints), (SemSeg, Edges), (Depth, Normals), ....
  • (SemSeg, Depth, Normals), (SemSeg, Depth, Keypoints), (SemSeg, Depth, Edges), (Depth, Normals, Keypoints), ....
  • (SemSeg, Depth, Normals, Keypoints), (SemSeg, Depth, Normals, Edges)
  • (SemSeg, Depth, Normals, Keypoints, Edges)

 

Multi-Task Learning 관련 목차

Multi-Task Learning-Optimization Strategy [1]: https://masterzone.tistory.com/77

Multi-Task Learning-Optimization Strategy [2]: https://masterzone.tistory.com/78

Multi-Task Learning-Deep Multi-Task Architecture [1]: WIP

Multi-Task Learning-Deep Multi-Task Architecture [2]: WIP

 

 

Reference 

[1] S. Vandenhende, S. Georgoulis, W. Van Gansbeke, M. Proesmans, D. Dai and L. Van Gool, "Multi-Task Learning for Dense Prediction Tasks: A Survey," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 44, no. 7, pp. 3614-3633, 1 July 2022.

[2] T. Standley, A. R. Zamir, D. Chen, L. Guibas, J. Malik, and S. Savarese, “Which tasks should be learned together in multitask learning?”, Proc. 37th Int. Conf. Mach. Learn., (ICML) 2020, pp. 9120–9132.

[3] https://ai.googleblog.com/2021/10/deciding-which-tasks-should-train.html

댓글