1. Self-Supervised Learning(SSL)이란?
- SSL(자기지도 학습)은 레이블 없이 데이터를 학습할 수 있는 대표적인 학습기법으로, 최근 AI연구에서 큰 주목을 받고 있는 방법입니다.
- 특히 딥러닝 모델이 사전학습(Pretraining)을 통해 데이터의 패턴을 학습한 후, 지도학습(Supervised Learning)이나 비지도학습(Unsupervised Learning)에 활용할 수 있도록 설계되었는데요.
- SSL의 여러 방법이 있지만 그 중 가장 먼저 알아볼 방법은 Pretext Task입니다.
2. Pretext Task
- Pretext Task는 모델이 데이터를 스스로 학습할 수 있도록 특정한 학습 목표를 설정하는 것을 의미합니다.
- Pretext Task를 우리말로 번역해보면 "사전 과제"입니다.
- 이는, 주어진 데이터에서 인위적으로 레이블을 생성하여 학습하는 방식을 말하며, 이를 바탕으로 모델이 의미있는 표현(Representation)을 학습할 수 있도록 설계하는 방법입니다.
- 즉, Pretext Task를 설정해 의미 있는 Representation을 학습함으로써, 모델이 해당 데이터 도메인에 대한 일반적인 특징을 잘 추출할 수 있게되며, 이를 바탕으로 다양한 Downstream task(분류, 이상 탐지 등)에서 유용한 성능을 낼 수 있도록 해줍니다.
- 대표적인 Pretext task 기법에 대해서 알아보겠습니다.
1) Jigsaw 퍼즐 ( Unsupervised Learning of Visual Representations by Solving Jigsaw Puzzles (Noroozi & Favaro, 2016) )
- Jigsaw 퍼즐 기반 Pretext task는 이미지를 여러개의 조각으로 분할한 후 원래 순서를 맞추도록 모델을 학습시키는 방식입니다.
- 이 과정에서 모델은 객체의 형태, 배경, 질감 등의 특성을 학습할 수 있게되는데요.
- 아래 그림은 해당 논문에서 나온 사진이며, 주요 객체를 3x3의 형태로 나눈 뒤, 각 부분이 어떤 위치에 있는지를 맞추게 하는 Task입니다.
- 자세한 방법은 아래 그림을 통해서 확인해보겠습니다.
* 해당 논문에서 제안한 방법은 Context Free Network(CFN)입니다.
* 1) 먼저 원하는 객체가 담긴 부분을 Crop 한후,
2) 해당 그림을 3x3개의 타일로 분할 합니다.
3) 이후, 9개의 타일을 순서를 섞어서 배열합니다. 즉, 다양한 순열(Permutation)을 만드는 것입니다.
4) 그리고, 이 랜덤하게 생성된 Permutation을 원래의 순서대로 맞추는 작업입니다.
ex. 1x1에 위치한 타일은 1번, 1x2에 위치한 타일은 2번....., 3x3에 위치한 타일은 9번이라고 예측하도록 하는 것입니다.
** 이때, 해당 데이터에 대해 9! 개의 순열이 나오게 되는데 이 모든것을 계산하는 것은 너무 Cost가 크기에 Ablation Study를 통해 hamming distance를 고려해서 1,000개의 Permutation으로 학습을 진행했습니다.
** hamming distance는 두 개의 같은 길이를 가진 문자열(또는 시퀀스) 간 서로 다른 위치의 개수를 측정하는 거리 입니다. 예시는 아래와 같습니다.
2) 회전각도 예측 ( Unsupervised Representation Learning by Predicting Image Rotations (Gidaris et al., 2018) )
- 해당 논문에서는 Rotation Prediction을 Pretext Task로 지정했습니다.
- 즉, 입력 이미지를 0도, 90도, 180도, 270도로 회전한 후, 회전된 각도를 예측하도록 학습시키는 것입니다.
- 아래 그림과 같이 원본 이미지를 각각 회전을 시킨 뒤, Convolutional Network가 도출하는 Class가 0/90/180/270도 중에 하나를 도출하게 하는 것입니다.
- 세부적인 학습과정은
1) 입력 이미지를 랜덤하게 0/90/180/270도로 회전
2) CNN 기반 네트워크를 사용해 이미지가 몇 도 회전되었는지 예측
3) Softmax 분류기로 각도를 4개의 클래스 중 하나로 예측
4) Cross-Entropy Loss를 적용해 모델 학습
- 이를 활용했을때, Supervised로 데이터를 학습시켰을때만큼의 풍부한 Representation을 얻을 수 있다는 것을 보여주는 실험 결과는 아래와 같습니다.
- 이를 통해 얻을 수 있는 장점은
1) 객체의 방향성과 기하학적 특성을 잘학습할 수 있고
2) 데이터 증강 없이도 다양한 변형을 학습할 수 있으며
3) 낮은 연산비용으로도 강력한 특징 표현을 학습할 수 있습니다.
'딥러닝 with Python' 카테고리의 다른 글
[딥러닝 with Python]Vision-Language Models(VLM)와 Data Curation의 중요성 (0) | 2025.03.01 |
---|---|
Contrastive Learning 기초 : EBM, NCE, InfoNCE (0) | 2025.02.28 |
[딥러닝 with Python] Pix2Pix란? (0) | 2025.02.27 |
[딥러닝 with Python] GIN 알아보기(Graph Isomorphism Network) (0) | 2025.02.27 |
[딥러닝 with Python] Online Encoder, Momentum Encoder (0) | 2025.02.27 |
댓글