머신러닝&딥러닝/논문리뷰

논문 리뷰: multi-task learning using uncertainty to weigh losses for scene geometry and semantics

Like_Me 2021. 9. 12. 22:12
반응형
"multi-task learning using uncertainty to weigh losses for scene geometry and semantics" (CVPR 2018) - Gal et al.

multi-task learning 시 loss는 여러 task에 대한 sum으로 주게 된다. 이때 loss를 주는 비율이 중요한데 보통은 hyper-parameter로 주어진다. 그런데 이 논문은 Uncertainty를 사용하여 weight를 learning 하게 해 줄 수 있는 방법을 제시한다.

 


Introduction

 

Multi-task learning은 여러 task를 한 번에 풀어내는 neural network를 만들어내므로 efficient 한 장점이 있으며 shared representation을 뽑을 수 있으므로 accuracy 향상을 가져오기도 한다. 한편 여러 task를 학습시키려면 figure 1에 나온 것처럼 loss를 각 task loss의 sum으로 표현해야 한다.

figure 1.

각 loss의 sum을 똑같은 비율로 넣어서 학습할 수도 있겠지만 다르게 해서 넣을 수도 있다. 그렇게 되면 hyper-parameter가 task 개수만큼 많아지므로 좋지 않다. 그래서 논문은 uncertainty를 사용하여 각 task loss의 weight를 주려한다.


Uncertainty 및 Objective function

 

uncertainty에 대한 설명은 지난 글에서 자세히 해두었다. 하지만 이 논문에서는 추가적인 개념이 나오므로 Aleatoric uncertainty에 대해 더 자세히 보고 넘어가겠다.

Aleatoric uncertainty는 데이터의 noise를 나타내는 지표라고 하였다. 대표적으로는 동전 던지기나 가위바위보 같이 데이터가 아무리 주어져도 예측하기 힘든 것들을 말한다. 지난 글에서는 이미지 segmentation에서는 물체 사이의 경계 부분이 aleatoric uncertainty가 높음을 보았다. 이 논문에서는 aleatoric uncertainty를 2개로 나눌 수 있다고 한다.

1) Data-dependent or Heteroscedastic uncertainty

2) Task-dependent or Homoscedastic uncertainty

첫 번째 uncertainty는 원래 알고 있던 개념을 그대로 따라 input data의 noise에 반응하고 model output으로 예측할 수 있는 값이다.

두 번째 uncertainty는 입력 데이터의 noise에 영향을 받지 않고 각 task 별로 다른 값을 가지게 되는 값이다. 그러므로 이 논문은 두 번째 uncertainty를 이용한다.

 

두 번째 uncertainty는 model output으로 predict 할 수 있는 값은 아니고 따로 learnable parameter로 두어 update 한다. mse를 사용하고 output distribution이 gaussian일 경우 식은 다음과 같다.

$\sigma_{1}, \sigma_{2}$가 각 task별 uncertainty를 나타내는 learnable parameter이고 전체 loss를 minimize 할 때 함께 update 된다. 위의 loss 식은 본래 aleatoric uncertainty를 loss로 줄 때 식과 같다. 각 uncertainty가 크면 해당 task loss는 update에 영향을 덜 끼치게 된다 ($\frac {1} {2\sigma^{2}}$이 L(W)에 곱해지므로). 한편 $\sigma$가 무작정 커져서 Loss가 작아지는 것을 원하진 않으므로 뒤에 regularization term으로 $log\sigma$가 더해지게 된다.

 


Experiments

 

실험 결과는 흥미롭다. 저자들이 grid search로 찾은 optimal weights 보다 성능이 좋은 것은 물론이고 보통 사용하는 동일한 비율로 줬을 때의 loss 보다 훨씬 outperform 했다.

table 1.

위 결과를 보면 weight가 segmentation 쪽으로 치우쳐 있는 것을 볼 수 있다. 아마 segmentation loss가 다른 loss보다 작아서 더 커진 게 아닐까 싶다. 다시 생각해보면 동일한 크기로 loss 비율을 맞춰 주면 어느 정도 안정적인 성능을 낼 것 같다는 생각이 든다.

 

 

반응형