Contrastive Learning

FSA·2024년 1월 21일
0

딥러닝 기초

목록 보기
11/38

개요

  • Contrastive Learning은 unsupervised learning 분야에서 중요한 개념으로, 데이터 포인트들 사이의 유사성과 차이를 학습하는 방법론
    • 레이블이 없는 대규모 데이터셋을 활용할 수 있게 해줌
  • 이 접근 방식은 주로 특징 추출(feature extraction)표현 학습(representation learning)에 사용
  • Contrastive Learning의 핵심 아이디어는 유사한 데이터 샘플들을 가깝게, 다른 샘플들을 멀게 표현하는 것

Contrastive Learning의 주요 요소들

1. Positive and Negative Pairs:

  • Positive Pairs: 유사한 데이터 포인트들로 구성된 쌍
    • 예를 들어, 같은 이미지의 약간 변형된 버전
    • 여러 가지 데이터 증강 기술(예: 회전, 크기 조정, 색상 조정 등)을 적용하여 이미지의 변형된 버전을 생성
  • Negative Pairs: 서로 다른 데이터 포인트들로 구성된 쌍
    • 이들은 서로 다른 클래스에 속하거나, 서로 관련이 없는 특성을 가질 수 있습니다.

2. Embedding Space:

  • Embedding network를 통해, Positive Pairs 및 Negative Pairs의 각 이미지를 임베딩으로 변환
  • 데이터 포인트들을 저차원의 벡터 공간(embedding space)에 매핑
  • 이 공간에서, 유사한 데이터 포인트들은 서로 가까이, 다른 데이터 포인트들은 멀리 위치하도록 학습

3. Loss Function:

  • Contrastive Learning의 핵심은 효과적인 손실 함수(loss function)
  • 가장 흔히 사용되는 것은 Triplet LossContrastive Loss
  • 이들은 모델이 positive pairs를 가깝게, negative pairs를 멀게 매핑하도록 유도

3.1. Triplet Loss

  • Triplet Loss는 '세 개의 쌍'을 이용
    • 하나의 '기준' 이미지(Anchor),
    • 그 기준 이미지와 유사한 이미지(Positive),
    • 기준 이미지와 다른 이미지(Negative)가 사용
  • 목표: 기준 이미지는 유사한 이미지와 가깝게, 다른 이미지와는 멀게 배치
  • 예시: 손가락으로 'V'자를 만든 사진이 기준 이미지라면, 또 다른 'V'자 사진은 가깝게, 'O'자를 만든 사진은 멀게 배치됩니다.

3.2. Contrastive Loss

  • Contrastive Loss는 '두 개의 쌍'을 사용합니다.
  • 하나의 이미지 쌍이 주어지며, 이 쌍이 유사한지 다른지를 판별
  • 목표: 유사한 이미지 쌍은 가깝게, 다른 이미지 쌍은 멀게 배치되어야 합니다.
  • 예시: 두 개의 사과 사진(유사한 쌍)은 가깝게, 사과와 오렌지 사진(다른 쌍)은 멀게 배치됩니다.

3.3. InfoNCE Loss

  • Information Noise-Contrastive Estimation: InfoNCE
  • InfoNCE Loss는 '다수의 쌍'을 사용하며, 주로 대량의 데이터에서 유사성을 학습하는 데 사용
  • 목표: 하나의 기준 이미지여러 유사한 또는 다른 이미지들 사이의 관계를 학습
  • 예시: 하나의 고양이 사진(기준 이미지)다른 여러 고양이 사진(유사한 이미지들)개 사진(다른 이미지들)을 비교하여,
    • 고양이 사진들이 서로 가깝고 개 사진들과는 멀게 배치되도록 합니다.

3.4. MoCo (Momentum Contrast) loss


4. 장점과 한계:

4.1. 장점:

  • 레이블이 필요 없거나 적은 데이터로도 효과적인 학습이 가능합니다.
  • 데이터의 복잡한 내부 구조를 학습하여 강력한 특징 표현을 생성할 수 있습니다.

4.2. 한계:

  • 적절한 positive와 negative pairs의 선택이 중요하며, 이는 경우에 따라 어려울 수 있습니다.

5. 예시 적용:

5.1. 비슷한 이미지 검색:

  • 학습된 모델을 사용하여 데이터베이스 내의 이미지들을 임베딩으로 변환
  • 특정 이미지에 대해 가장 가까운 임베딩을 가진 다른 이미지들을 찾아, 비슷한 이미지들을 검색할 수 있음

5.2. 이미지 클러스터링:

  • 임베딩을 사용하여 비슷한 이미지들을 그룹화하고, 이를 통해 데이터셋 내의 자연스러운 패턴이나 분류를 발견할 수 있음

5.3. 비디오 데이터셋에서의 적용

  • 비디오를 프레임 또는 짧은 시퀀스로 분리합니다.
  • 각 프레임/시퀀스에 대해, 유사한(positive) 및 다른(negative) 쌍을 형성합니다.
    • 예를 들어, 동일한 비디오 내의 연속적인 프레임들은 유사한 쌍으로, 다른 비디오의 프레임들은 다른 쌍으로 간주될 수 있습니다.
profile
모든 의사 결정 과정을 지나칠 정도로 모두 기록하고, 나중에 스스로 피드백 하는 것

0개의 댓글