Machine Learning

Multi-Task Learning(MTL)

Y30L 2023. 12. 31. 03:10

1. Multi-Task Learning란?

일반적인 Machine Learning(ML) 및 Deep Learning(DL)은 1개의 모델에서 1개의 Task를 수행하는 Single Task Learning 방식으로 동작한다. 하지만, 기존의 ML 및 DL과는 다르게 Multi-Task Learning(이하 MTL)은 서로 연관성이 존재하는 Task를 동시에 학습하여 모든 Task의 성능을 전박적으로 향상시키고자 하는 학습 패러다임이다.

 

Figure 1을 통해 일반적인 Single Task Learning(이하 STL)모델과 MTL의 차이를 보자. STL의 경우 각 Task마다 각각의 Training Data 및 Trained Mode가 존재하는 것을 볼 수 있다. 반면, MTL의 경우 1개의 모델에서 다중 Task를 수행하는 방식으로 동작하며 여러 개의 Task 및 Training Data가  하나의 Trained Model로 Training되는 것을 볼 수 있다.

Figure 1. Multi-Task Learning

 

 

2. 다른 학습들과의 차이

그렇다면 다른 학습(전이 학습,  Multi-Label Learning)과의 차이는 무엇일까?

 

1. 전이 학습

전이 학습은 특정 목적(분류, 객체 감지 등)을 이루기 위해 이미 학습된 모델을 사용하여 다른 작업에 사용하는 것을 말한다. Figure 2와 같이 기존의 모델은 유지한 채 마지막 Layer을 변경하는 작업들을 통해 목적에 맞는 형태로 변경할 수 있다.

Figure 2. 전이 학습(출처 : https://velog.io/@tjdtnsu/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EA%B8%B0%EC%B4%88-%EC%A0%84%EC%9D%B4-%ED%95%99%EC%8A%B5-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0)

 

 

2. Multi-Label Learning

Multi-Label Learning은 하나의 데이터 셋을 사용하지만 각 데이터 샘플마다 다수의 Label이 존재하게 되며, 각 Label을 각각 학습하는 것이 아니라 동시에 여러 Label을 학습한다.

Figure 3. Multi-Label Learning

 

 

 

3. Multi-Task Learning

MTL는 Target Task와 Source Task가 구분되지 않은 채로 동작하며 모든 Task를 잘하는 것이 주된 목표이다. 또한, 각 Task얻은 지식을 공유(Knowledge Sharing)하여 각각의 Task에 활용한다.

Figure 4. Multi-Task Learning(Source Task, Target Task)

 

 

 

3. MTL의 장점 및 단점

장점
  1. 지식 공유
    각 Task들을 학습하며 얻은 정보들이 다른 Task에 영향을 주어 성능 향상을 목적으로 동작하기 때문에 긍정적인 영향을 주게 된다.
  2. Overfitting 방지(감소)
    여러 Task들을 동시에 수행하기 때문에 STL보다 일반화된 특징 표현을 학습하게 되고 이는 Overfitting을 방지할 수 있다.
  3. Computational Effciency(계산 효율성)
    하나의 신경망으로 여러 Task를 동시에 수행하게 되고 파라미터를 공유하는 학습 방법(Soft parameter sharing, Hard parameter sharing)또한 존재하기 때문에 계산적으로 볼 때 효율적이다.

 

 

단점
  1. Nagative Transfer
    연관성이 부족한 Task들을 판단하는 부분을 구현하지 않게 되면 성능에 부정적인 영향을 끼치는 Task의 지식 또한 공유하게 되므로 이는 성능 저하로 이어질 수 있다.
  2. Task balancing의 어려움
    Figure 5는 MTL의 구성을 시각화한 것이다. 왼쪽의 그림을 볼 때 각기 다른 Task들을 수행하고 있다. 모든 Task는 서로 Task를 수행함에 있어 난이도 차이가 존재한다고 가정할 때 서로 다른 Gradient(경사)를 전달하게 된다. 이로 인해 학습 속도에서의 차이가 발생할 수 있으며 성능에 영향을 미칠 수 있다.

    Figure 5. Task Balancing의 어려움(출처 : https://velog.io/@riverdeer/Multi-task-Learning)

 

4. 언제 MTL이 효과적일까?

MTL은 각 Task가 가지게 되는 데이터 양이 비슷한 경우각 Task에서 낮은 수준의 특징을 공유할 때 효과적이게 된다. 각 Task에서 낮은 수준의 특징을 공유할 때는 각 Task에서 난이도 차이가 비교적 낮기 때문에 학습 속도에 있어 차이가 발생할 가능성이 적게 된다. 데이터 양이 비슷한 경우에는 데이터 양이 처리되는 시간을 고려할 때 비슷하므로 학습 속도에 있어 차이가 적게 된다.

 

 

5. Reference

  1. https://gaussian37.github.io/dl-concept-mtl/
  2. http://dmqm.korea.ac.kr/activity/seminar/340
  3. https://velog.io/@riverdeer/Multi-task-Learning
  4. https://colab.research.google.com/drive/1_hEKSoi9_UMZ5el-7PbjwwRedLYgS1w3?usp=sharing#scrollTo=35DotW3Q2i9h
  5. https://github.com/hosseinshn/Basic-Multi-task-Learning/blob/master/MTL-Tensorflow.ipynb
  6. https://github.com/saeu5407/image_MTL/tree/main
  7. https://velog.io/@tjdtnsu/딥러닝-기초-전이-학습-이해하기