AI: Contrastive/Self-supervised 학습

ㅁ Contrastive/Self-supervised 학습

ㅇ 정의:
– 레이블이 없는 데이터에서 데이터의 표현을 학습하는 방법으로, 데이터의 변환/증강을 통해 서로 다른 뷰를 생성하고, 유사한 것은 가깝게, 다른 것은 멀게 학습하는 방식.

ㅇ 특징:
– 대규모 비라벨 데이터 활용 가능
– 데이터 증강 기법이 성능에 큰 영향
– 사전학습(pretraining)과 전이학습(finetuning)을 분리

ㅇ 적합한 경우:
– 라벨 데이터가 부족한 경우
– 다양한 변환에도 불변하는 특징을 학습해야 하는 경우

ㅇ 시험 함정:
– Self-supervised는 Unsupervised와 다르며, 사전 정의된 pretext task가 있음
– Contrastive 학습은 반드시 negative sample이 필요한 것은 아님

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Self-supervised 학습은 라벨 없이 데이터 표현을 학습한다.”
X: “Self-supervised 학습은 항상 negative sample을 사용한다.”

================================

1. SimCLR

ㅇ 정의:
– Google에서 제안한 대규모 contrastive self-supervised 학습 프레임워크. 데이터 증강과 projection head를 활용하여 같은 이미지의 다른 뷰를 가깝게 학습.

ㅇ 특징:
– 강력한 데이터 증강(색상 왜곡, 크롭 등)
– projection head로 비선형 변환 후 contrastive loss 계산
– 대규모 배치와 많은 negative sample 필요

ㅇ 적합한 경우:
– 강력한 하드웨어 자원이 있고, 대규모 데이터셋에서 사전학습할 때

ㅇ 시험 함정:
– projection head는 학습 후 버릴 수 있음
– negative sample이 반드시 다른 클래스일 필요는 없음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “SimCLR은 projection head를 사용하여 표현 공간을 변환한다.”
X: “SimCLR은 적은 배치 크기에서도 높은 성능을 낸다.”

================================

2. BYOL

ㅇ 정의:
– Bootstrap Your Own Latent. negative sample 없이 online network와 target network를 사용하여 자기 지도 학습을 수행.

ㅇ 특징:
– momentum encoder를 사용하여 target network 업데이트
– contrastive loss 대신 예측 일치 손실 사용
– negative sample 불필요

ㅇ 적합한 경우:
– negative sample 확보가 어려운 경우
– 작은 배치로도 학습해야 하는 경우

ㅇ 시험 함정:
– BYOL은 collapse를 방지하기 위해 momentum update를 사용
– contrastive loss를 사용하지 않음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “BYOL은 negative sample 없이도 학습이 가능하다.”
X: “BYOL은 SimCLR과 동일하게 negative sample을 필요로 한다.”

================================

3. negative sample

ㅇ 정의:
– contrastive 학습에서 anchor와 다른 데이터 포인트로, representation 공간에서 멀어지도록 학습하는 샘플.

ㅇ 특징:
– 다양하고 많은 negative sample이 성능 향상에 기여
– batch 내 다른 데이터 사용 또는 memory bank 활용

ㅇ 적합한 경우:
– contrastive loss 기반 학습

ㅇ 시험 함정:
– negative sample이 반드시 다른 클래스일 필요는 없음
– self-supervised에서도 positive/negative 정의는 태스크에 따라 다름

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Negative sample은 anchor와 representation 공간에서 멀어지도록 학습한다.”
X: “Negative sample은 반드시 다른 클래스여야 한다.”

================================

4. projection head

ㅇ 정의:
– representation을 contrastive loss 계산 전 임시 변환하는 신경망 모듈.

ㅇ 특징:
– 주로 MLP 구조 사용
– 학습 후 downstream task에서는 제거 가능

ㅇ 적합한 경우:
– contrastive loss 계산 시 표현 공간을 조정해야 하는 경우

ㅇ 시험 함정:
– projection head를 제거하면 성능이 떨어진다고 오해하기 쉬움

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Projection head는 contrastive loss 계산을 위한 임시 변환 모듈이다.”
X: “Projection head는 downstream task에서도 반드시 사용된다.”

================================

5. Masked Autoencoder(MAE)

ㅇ 정의:
– 입력 데이터의 일부를 마스킹하고, 이를 복원하는 self-supervised 방식. 특히 비전 트랜스포머(ViT)에서 이미지 패치 마스킹 후 재구성.

ㅇ 특징:
– 입력의 일부만 인코딩하여 효율성 향상
– reconstruction loss 사용

ㅇ 적합한 경우:
– 대규모 비전 데이터 사전학습
– 효율적인 인코딩 필요 시

ㅇ 시험 함정:
– MAE는 contrastive loss를 사용하지 않음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “MAE는 입력의 일부를 마스킹 후 복원하는 방식이다.”
X: “MAE는 negative sample을 사용한다.”

================================

6. Jigsaw Puzzle

ㅇ 정의:
– 이미지를 여러 조각으로 나누고 순서를 섞은 후 원래 순서를 맞추는 pretext task.

ㅇ 특징:
– 공간적 구조 학습
– 간단하지만 강력한 self-supervised 태스크

ㅇ 적합한 경우:
– 이미지의 공간 관계를 학습해야 하는 경우

ㅇ 시험 함정:
– Jigsaw Puzzle은 레이블 없는 데이터에서도 가능

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Jigsaw Puzzle 태스크는 이미지 조각의 순서를 맞추는 것이다.”
X: “Jigsaw Puzzle 태스크는 반드시 라벨이 필요하다.”

================================

7. pretext task

ㅇ 정의:
– self-supervised 학습에서 representation 학습을 위해 인위적으로 설정한 과제.

ㅇ 특징:
– 라벨 없이도 수행 가능
– downstream task 성능 향상을 위한 중간 학습 목표

ㅇ 적합한 경우:
– 라벨 데이터가 부족하고, 사전학습이 필요한 경우

ㅇ 시험 함정:
– pretext task 자체 성능이 최종 목표가 아님

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Pretext task는 downstream task 성능 향상을 위한 중간 과제이다.”
X: “Pretext task 성능이 곧 모델의 최종 성능이다.”

================================

8. downstream task

ㅇ 정의:
– 사전학습된 모델을 활용하여 실제 목표 과제를 수행하는 단계.

ㅇ 특징:
– fine-tuning 또는 feature extraction 방식 사용

ㅇ 적합한 경우:
– 사전학습 모델을 실제 응용에 적용할 때

ㅇ 시험 함정:
– downstream task는 pretext task와 동일하지 않음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Downstream task는 사전학습된 모델을 실제 목표에 적용하는 단계이다.”
X: “Downstream task는 pretext task와 동일하다.”

ㅁ 추가 학습 내용

Contrastive/Self-supervised 학습에서 중요한 개념 정리

1. InfoNCE loss
– Positive/Negative 샘플 쌍을 구분하는 대표적인 손실 함수
– Temperature 파라미터: 로짓의 스케일을 조절하여 샘플 간 유사도 분포를 제어, 구분 능력에 큰 영향

2. Momentum Contrast (MoCo)
– 메모리 뱅크 또는 큐(queue)를 사용하여 많은 negative 샘플을 효율적으로 관리
– Momentum encoder를 사용해 representation의 일관성 유지

3. SwAV
– Clustering 기반 self-supervised 학습
– Contrastive loss 없이도 representation 학습 가능

4. DINO
– Teacher-Student 구조 사용
– Self-distillation 방식으로 학습, label 없이도 안정적인 학습 가능

5. BYOL과 SimSiam의 collapse 방지 메커니즘
– BYOL: Momentum encoder 사용
– SimSiam: Stop-gradient 기법 사용

6. MAE와 BERT의 마스킹 전략 비교
– MAE: 이미지 패치 단위 마스킹, 비복원 영역은 학습에 사용하지 않음
– BERT: 토큰 단위 마스킹, 일부는 [MASK] 토큰으로 대체, 일부는 원래 토큰 유지

7. Pretext task vs Auxiliary task
– Pretext task: self-supervised 학습에서 representation을 학습하기 위한 주요 과제
– Auxiliary task: 주 학습 목표를 돕기 위해 추가로 설정한 보조 과제

8. Downstream task 평가 지표
– Linear evaluation protocol: 학습된 표현 고정 후, 단순한 선형 분류기로 성능 평가

9. Contrastive 학습에서의 batch size, memory bank, queue 메커니즘
– Batch size가 클수록 negative 샘플 수가 많아져 성능 향상 가능
– Memory bank/queue를 통해 효율적으로 negative 샘플 확보

10. Negative sample 없이 성능을 내는 방법
– 예: BYOL, SimSiam
– 장점: negative 샘플 관리 불필요, 구현 단순
– 단점: collapse 위험 존재, 안정화 기법 필요

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*