이번에는 Self-Supervised Learning에 대해서 알아보겠습니다.
1. Self-supervised Learning
- Deep Neural Network는 많은 분야에서 괄목할만한 성과를 거두면서 점차 그 확장가능성을 보여왔지만, 이때 Network의 학습을 위해서는 Label이 달려있는 데이터, 즉 Supervised Learning을 위한 데이터가 많이 필요하다는 문제점이 있었습니다.
- 이때 Labeling을 하는 작업은 많은 시간과 돈이 소모되며, 일반인들이 할 수 없는 전문적인 영역(의료 도메인, 생산공정 등)에서는 전문가들이 이러한 Labeling을 해야하다보니 더 많은 어려움이 있었습니다.
- 이를 극복하기 위해 탄생한 학습 방법이 Self Supervised Learning(SSL)입니다.
- SSL은 레이블링이 되어있지 않은 데이터셋으로부터 좋은 Representation을 학습하기 위한 Represneation Learning의 방법 중 하나입니다.
* 이렇게 학습된 좋은 Representation을 활용해 적은 수의 Labeling 된 데이터만을 가지고도 좋은 성능을 낼 수 있게 된다는 것입니다.
* 즉, SSL은 모델이 Input 데이터에 대한 고수준의 정보를 추출할 수 있도록 이해하는 것입니다.
* 이렇게 잘 학습된 모델을 바탕으로 간단한 모듈을 접합해서 다양한 Downstream Task를 구현할 수 있는데, 이렇게 학습된 모델을 Foundation 모델이라고도 합니다.
- 그렇다면, Self Supervision의 품질은 어떻게 평가해야 될까요?
1) 이미지넷 데이터셋과 같은 Large scale의 데이터셋에서 모델을 학습시킨 뒤
2) 다양한 Downstream task에 활용하기 위해 학습된 모델을 바탕으로 전이학습(Transfer Learning)을 하여 그 성능을 평가합니다
- Self Supervised Learning은 현재 크게 3가지로서 분류되고 있습니다.
1) Pretext Task : Maximize I(Z(X); Y) where Y is pretext label of X (I : mutual information of two random variables)
* Pretext task란 임의로 정의한 task를 의미하며, 예를 들어 이미지의 일부분을 가려놓고 나머지 부분을 통해 원래 이미지를 예측하는 것 등이 되겠습니다.
2) Invariance : Maximize I(Z(X1); Z(X2)) where X1, X2 are invariant data
* 이는 모델이 같은 데이터에 대해 다양한 변환(Rotation, Enlargement, Color jittering 등)을 하더라도 일관된 Representation을 추출하도록 하는, 즉 Invariant 한 속성을 활용하는 방법입니다.
3) Generation : Maximize I(Z(X_hat); X) where X_hat is pertubated version of X
* 모델이 원본 데이터의 변형된 버전(노이즈 추가, 일부분 Masking 등)을 보고도 원래 데이터와 관련된 유용한 특징을 학습하도록 돕는 방식을 말합니다.
이 3가지 방법들에 대해서는 다음 포스팅에서 자세히 알아보겠습니다.
댓글