본문 바로가기
딥러닝 with Python

[딥러닝 with Python] Self Supervised Learning(SSL) (2) : Pretext 활용

by CodeCrafter 2024. 11. 15.
반응형

 

1. Pretext Task

- Pretext 란, "표면상의 이유" 또는 "구실", "핑계" 라는 뜻을 가지고 있습니다.

 

- Self Supervised Learning에서 Pretext Task란 모델이 유용한 표현을 학습하기 위해 설정된 임시 과제의 역할을 말합니다.

 

- 이를 활용하는 방법은 아래와 같습니다.

 * Pretext를 활용해 모델을 사전 학습 시키고, 이렇게 학습된 모델을 활용해 Fine tuing하여 다양한 Down stream task에 이용하는 것입니다.

 * 이렇게 하면, 레이블이 부족한 또는 하기 어려운 상황에서 다량의 unlabeled된 데이터를 활용해 학습하고, 이를 소량의 label된 데이터에 맞게 fine tuning하여 효율적이면서도 좋은 성능을 낼 수 있게 하는 것입니다.

 

 

2. Pretext task를 활용한 다양한 방법들

 

1) Context Prediction 

 

 * 원본 이미지에서 중요한 부위에서 3x3 patch를 추출하고

 * Center patch를 Patch 1로, 주변 패치 중 임의로 선택된 한개의 패치를 Patch 2로 지정합니다.

 * 그리고 여기서 주어지는 Pretext task는 바로, Center patch를 고려했을때 Patch2의 위치를 8개 중 하나로 맞추는 8-way classification을 하는것입니다.

 

 

2) Jigsaw Puzzle

 

* 이번에는 모델에게 퍼즐을 맞추게 하는 방법입니다. 

* 이번에도 중요한 부위에 3x3 패치를 추출한 다음, 패치의 순서를 섞습니다.(Permutation)

* 그리고 섞어진 패치들의 순서를 맞추게 하는 것입니다.

* 예를들어 (b)와 같이 무작위로 섞어 놓은 다음 좌상단부터 우하단까지 순서대로, 원래 몇번째에 있었는지를 맞추는 것입니다.

 

* 이때 각 패치들이 들어가는 인코더는 weight sharing을 하며, 섞인 순서의 경우의 수인 순열(Permutation)의 숫자가 9!(약 36만 2천개)가 되다보니 이러한 순서 쌍 중 일부만을 선택하여 학습을 진행합니다.

 

 

3) Space-Time Cubic Puzzles

 

- 이번에는 비디오 데이터에서 활용하는 Jigsaw 퍼즐입니다.

 

- 비디오 데이터는 Spatial 한 정보뿐만 아니라, Temporal한 정보도 있기 때문에 이 두가지에 대해서 Jig saw Puzzle을 하다보니 3차원의 Jigsaw 퍼즐을 푸는, 즉 Cubic Puzzle을 푸는 문제가 되는 것입니다.

 

4) Colorization

 

- 이번에는 이미지를 Gray scale로 만든 뒤, 원본 이미지의 색을 맞추게 하는 Task입니다.

 

- Colorization 작업은 각 픽셀에 대해 색상정보를 예측해야 하므로 모든 픽셀에 대한 세밀한 예측을 하는 Dense Prediction이 필요한 Task입니다.

 

- 이때, Hypercolumn이라는 개념이 등장하는데

 * Hyper Column은 다양한 레이어의 feature map을 concat하여 입력 이미지의 세부적인 정보와 전체적인 문맥 정보를 함께 활용하는 방법을 말합니다.

 

- 여기서는 Classification 문제로 선정해, 특정한 색상 범주를 맞추는 것입나다.

 

5) Rotation

 

- 이 방법은 원본 이미지의 각도를 4방향(0, 90, 180, 270)으로 돌린 뒤, 돌아간 각도가 몇 도인지를 맞추게하는 것입니다.

- 특히 이 방법은 간단하기때문에, 다양한 방법론들에서 많이 활용되었습니다.

 

 

 

 

 

** 이러한 Pretext task의 경우, 1) 활용하는 데이터의 도메인에 대한 지식이 없을 경우 잘못된 pretext를 설정할 수 있다는 점, 2) 데이터가 많을 경우 패치기반의 방법론들의 경우 너무 Computation cost가 크다거나 Colorization의 경우 Gray scale과 같이 1channel 이미지에 대해서는 적용할 수 없다는 점, 그리고 3) 적절한 데이터에 대한 Pre processing이 없을 경우 jigsaw 퍼즐에서 의미적인 순서를 찾는것이 아닌 색깔의 유사성만을 가지고 찾게 되어 학습이 적절히 이루어지지 못하게 된다는 단점을 가지고 있습니다.

 

 

반응형

댓글