[ToDo] Contrastive Learning 알아보기

2022. 8. 13. 16:12관심있는 주제/분석 고려 사항

What is Contrastive Learning?

대조 학습(Contrastive Learning)은 레이블이 지정되지 않은 데이터 요소가 서로 병치되어 어떤 점이 유사하고 다른 모델을 가르칠 수 있는지 기계 학습 패러다임입니다.

 

즉, 이름에서 알 수 있듯이 샘플은 서로 대조되며, 동일한 분포에 속하는 샘플은 임베딩 공간에서 서로 밀린다.

이와는 대조적으로, 서로 다른 분포에 속하는 이들은 서로 끌어당긴다.

Representation Learning

2가지 접근법이 존재 (생성 모델, 판별 모델)

 

생성 모델로 데이터의 표현을 학습하는 경우, 비지도 학습이기 때문에 데이터 구축 비용이 낮다는 장점

또한 저차원 표현을 학습하는데에 있어 목적함수가 보다 일반적이라는 장점이 잇다.

 

판별 모델의 경우에는 계산 비용이 적고 비교적 학습이 용이하다는 장점

대부분 라벨링된 데이터에 의존하기 때문에 데이터 구축 비용이 크다는 장점이 있습니다. 비용이라 함은 단순히 금전적 비용을 떠나 시간적 비용, 민감한 정보 유출, 데이터 라벨링 작업자의 편견 개입 등 보다 포괄적인 의미입니다. 

 

 

Contrast란?

 

그것들을 비교할 때 분명한 두 가지 혹은 더 많은 것 사이의 큰 차이이다.

 

대상의 차이가 없다 있다라는 유사와 비유사가 될 것 같고, 그 기준은 어떻게 될 지가 애매한 것고 어떤 기준에 삼느냐에 따라 굉장히 달라진다고 한다.

 

 

 

The importance of Contrastive Learning

지도 학습은 모델이 다수의 레이블링된 예제를 사용하여 훈련되는 기계 학습 기술이다.

데이터 레이블의 품질은 감독 모델의 성공에 매우 중요하다.

그러나 특히 전문 의사가 데이터에 주석을 달아야 하는 생물의학 이미징과 같은 영역에서 이러한 고품질 레이블 데이터를 얻는 것은 번거로운 작업이다.

이것은 비용이 많이 들고 시간도 많이 소요됩니다. 지도 학습 ML 프로젝트에 소요되는 시간의 80%는 모델 교육을 위한 데이터 획득 및 정리에 투자된다.

 

따라서, 최근 딥 러닝 연구의 초점은 모델 훈련의 감독 요건을 줄이는 데 맞춰졌다. 이를 위해 준지도 학습, 비지도 학습 및 자기지도 학습과 같은 몇 가지 방법론이 제안되었다.

준지도 학습에서는 소량의 레이블링된 데이터가 많은 양의 레이블링되지 않은 데이터와 함께 사용되어 심층 모델을 훈련시킨다. 비지도 학습에서 모델은 데이터 레이블이 없는 비정형 데이터를 이해하려고 한다.

 

SSL(Self-Supervised Learning)은 접근 방식이 약간 다르다.

비지도 학습에서와 마찬가지로 비정형 데이터는 모델에 대한 입력으로 제공된다. 그러나 모델은 자체적으로 데이터에 주석을 달며, 높은 신뢰도로 예측된 레이블은 향후 모델 훈련 반복에서 실제 정보로 사용된다.

이렇게 하면 모델 가중치가 계속 개선되어 더 나은 예측을 할 수 있습니다. 전통적인 감독 방법과 비교하여 SSL 방법의 효율성은 몇몇 컴퓨터 비전 연구자들의 관심을 끌었다.

 

SSL에 사용된 가장 오래되고 가장 인기 있는 기술 중 하나는 "긍정적" 및 "부정적" 샘플을 사용하여 딥 러닝 모델을 안내하는 대조적 학습이다.

대비 학습은 그 이후 더욱 발전하여 현재 완전히 감독되고 준감독된 환경에서 사용되고 있으며 기존의 최첨단 기술에 성능을 향상시킨다.

학습 방식은 다음과 같습니다.

 

How does Contrastive Learning work in Vision AI?

대조 학습은 인간이 학습하는 방식을 모방합니다.

예를 들어, 우리는 수달이 무엇인지, 회색곰이 무엇인지 모를 수 있지만 이미지(아래 그림 참조)를 보면 최소한 어떤 사진이 같은 동물인지 유추할 수 있습니다.

 

 

기본 대비 학습 프레임워크는 "anchor"라는 데이터 샘플과 앵커와 동일한 분포에 속하는 데이터 포인트인 "긍정적" 샘플과 "부정적" 샘플이라는 다른 분포에 속하는 다른 데이터 포인트를 선택하는 것으로 구성된다.

SSL 모델은 잠재 공간에서 앵커와 양의 샘플, 즉 동일한 분포에 속하는 샘플 사이의 거리를 최소화하고 동시에 앵커와 음의 샘플 사이의 거리를 최대화하려고 한다.

위의 예에서 보듯이, 같은 클래스에 속하는 두 개의 이미지는 임베딩 공간("d+")에서 서로 가까이 있고 다른 클래스에 속하는 이미지("d-")는 서로 더 먼 거리에 있다. 따라서, 대조적인 학습 모델(위의 예에서 "theta"로 나타냄)은 거리 "d+"를 최소화하고 거리 "d-"를 최대화하려고 한다.

Anchor와 관련하여 양성 및 음성 샘플을 선택하는 몇 가지 기술이 존재하며, 다음에 논의하기로 한다.

 

방법

Instance Discrimination Method

이 대비 학습 클래스에서 전체 이미지는 변환을 거치기 위해 만들어지며 앵커 이미지에 대한 양성 샘플로 사용된다.

예를 들어 개의 이미지를 앵커로 선택하면 이미지를 미러링하거나 그레이스케일로 변환하여 양성 샘플로 사용할 수 있습니다. 음의 샘플은 데이터 세트의 다른 이미지일 수 있다.

 

즉 여기서는 같은 이미지에 여러 기법을 통해 positive를 만들고, 다른 것들에 대해서는 negative로 하여 학습하게 한다.

 

아래 이미지는 인스턴스 판별 기반 대조 학습 기법의 기본 프레임워크를 보여줍니다.

거리 함수는 유클리드 거리에서 임베딩 공간의 코사인 거리에 이르기까지 무엇이든 될 수 있습니다.

Instance Discrimination 기반 Contrastive Learning에 널리 사용되는 이미지 증강 방법은 다음과 같습니다.

 

 

 

Color Jittering: 여기서 RGB 이미지의 밝기, 대비 및 채도는 무작위로 변경됩니다. 이 기술은 모델이 씬(scene)의 색상으로 지정된 객체를 암기하지 않도록 하는 데 유용합니다. 출력 이미지 색상은 인간의 해석에 이상하게 보일 수 있지만, 이러한 확대는 모델이 색상보다 물체의 가장자리 및 모양을 고려하는 데 도움이 된다.

 

Image Rotation: 영상이 0-90도 내에서 임의로 회전합니다. 이미지를 회전하는 것은 이미지에 포함된 핵심 정보를 변경하지 않기 때문에(즉, 이미지의 개는 여전히 개일 것이다), 모델은 강력한 예측을 위해 회전 불변으로 훈련된다.

 

Image Flipping: 영상이 수직 또는 수평으로 가운데를 중심으로 플립(미러링)됩니다. 이것은 이미지 회전 기반 확대 개념의 확장입니다.

 

Image Noising: 픽셀 단위로 이미지에 랜덤 노이즈가 추가됩니다. 이 기술을 통해 모델은 이미지의 노이즈에서 신호를 분리하는 방법을 학습할 수 있으며 테스트 시간 동안 이미지의 변화에 보다 견고하게 한다. 예를 들어, 이미지의 일부 픽셀을 무작위로 흰색 또는 검은색으로 변경하는 것을 소금과 후추 노이즈라고 합니다(아래에 예가 나와 있음).

 

Random Affine: 아핀은 선과 평행성을 보존하는 기하학적 변환이지만 거리와 각도가 반드시 그렇지는 않습니다.

 

Image Subsampling/Patching Method

이 클래스의 대비 학습 방법은 단일 이미지를 고정 차원의 여러 패치(예: 10x10 패치 창)로 나눈다. 패치 간에 어느 정도 중복될 수 있습니다.

이제 고양이의 이미지를 가져와서 패치 중 하나를 앵커로 사용하고 나머지는 양성 샘플로 활용한다고 가정해 봅시다. 다른 이미지의 패치(예: 너구리, 부엉이 및 기린 각 패치)가 음의 샘플로 사용됩니다.

 

 

 

Contrastive Learning: Objectives

Contrastive Learning 문헌에는 각각 고유한 기능 세트를 가진 다양한 문제에 적용하기 위해 많은 손실 함수가 정의되어 있습니다. 이 섹션에서 이들 중 일부에 대해 논의해 보겠습니다.

 

  • Max margin Contrastive Loss

여기서 기본 개념은 손실 함수가 표본이 동일한 분포에 속하지 않을 경우 표본 사이의 거리를 최대화하고 대신 표본이 동일한 분포에 속할 경우 표본 사이의 거리를 최소화한다는 것입니다. 그것은 수학적으로 다음과 같이 표현된다.

여기서 "s_i"와 "s_j"는 비교해야 하는 라벨 "y_i"와 "y_j"를 가진 두 표본이고, "theta"는 임베딩 네트워크이며, "epsilon"은 서로 다른 클래스의 샘플들 사이의 하한 거리를 정의하는 하이퍼 파라미터이다.

표본에 대한 레이블은 표본이 동일한 분포에 속하는지 여부에 따라 생성됩니다.

예를 들어 두 샘플이 동일한 이미지의 잘라낸 버전이거나 동일한 샘플의 증강 버전인 경우 레이블이 동일합니다.

 

  • Triplet Loss

삼중항 손실(본 논문에서 제안된)은 유사한 분포 사이의 거리를 최소화하고 서로 다른 분포 사이의 거리를 최대화하려고 하는 대조적 손실과 매우 유사하다.

삼중항 손실의 주요 차이점은 양 및 음의 샘플이 동시에 앵커 샘플과 함께 입력되어 손실을 계산한다는 것입니다. 수학적으로 그것은 다음과 같이 표현된다.

여기서 "s_a", "s+", "s-"는 각각 앵커, 양수 및 음수 표본을 나타냅니다. 삼중항 손실 함수를 사용하는 모형의 성공을 위해서는 음의 샘플과 양의 샘플을 분리하기 어려운 것이 중요합니다.

예를 들어, 너구리와 링테일은 매우 비슷해 보입니다(아래 이미지 참조). 둘 다 줄무늬가 있고, 털이 많은 꼬리를 가지고 있으며, 몸의 털 색깔도 비슷하다. 너구리에 대해 음의 표본을 추출할 때, 링테일을 선택하면 모델이 코끼리를 음의 표본으로 선택할 때보다 더 효과적으로 클래스 간을 구별할 수 있다.

 

  • N-pair Loss

N-pair 손실은 삼중항 손실 함수의 확장입니다.

하나의 음의 표본을 추출하는 대신, 하나의 앵커와 하나의 양의 표본과 함께 "N"개의 음의 표본을 추출한다.

이 손실에 대한 수학적 표현은 다음과 같다.

위에 표시된 N-쌍 손실 함수는 (N+1) 훈련 샘플에 대해 정의되며, 여기서 첫 번째 샘플은 앵커 "s^a", 두 번째 샘플은 양성 샘플 "s+", 나머지 (N-1) 샘플은 음의 예입니다.

이 방정식에서 (N-1) 대신 하나의 음수 샘플만 있으면, 결과 방정식은 다중 클래스 분류 문제에 대한 소프트맥스 손실 함수와 동등해진다.

 

  • InfoNCE

InfoNCE는 NCE가 Noise-Contrastative Estimation(소음 대비 추정)을 나타내는 또 다른 유형의 대조 손실 함수입니다.

만약 "S = {s_1, s_2, …, s_N}"이 하나의 양의 샘플과 "N-1"개의 음의 샘플을 포함하는 "N"개의 무작위 샘플 집합을 나타낸다면, 손실 함수는 다음과 같이 수학적으로 표현될 수 있다.

밀도 비율은 미래 관찰 "s_{t+k}"와 컨텍스트 잠재 표현 "c_t" 사이의 상호 정보를 보존합니다. "p(s_{t+k})"는 생성 모델입니다.

 

  • Logistic Loss

로지스틱 손실은 지도 학습 문헌에서 일반적으로 사용되는 단순한 볼록 손실 함수이다. 그것은 수학적으로 다음과 같이 표현된다.

 

손실은 "y_i"로 표시된 해당 레이블(샘플이 동일한 분포에 속하는지 여부)과 함께 "s_i"로 표시된 "N" 샘플에 대해 정의됩니다.

 

  • NT-Xent Loss

정규화된 온도 스케일 교차 엔트로피 또는 NT-Xent 손실은 온도(T) 매개변수가 추가된 다중 클래스 N 쌍 손실의 수정입니다. 수학적으로 다음과 같이 표현된다.

"sim(.)"은 코사인 유사성 함수를 나타내며, "z_i"와 "z_j"는 각각 샘플 "s_i"와 "s_j"의 인코딩된 특징을 나타낸다.

위의 방정식은 자체 지도 학습에 사용되는 NT-Xent 손실에 대한 식을 보여준다. 지도 학습의 경우, 위에 표시된 대조 손실은 라벨의 존재로 인해 둘 이상의 샘플이 동일한 클래스에 속하는 것으로 알려진 경우를 처리할 수 없다. 임의의 수의 긍정으로 일반화하면 가능한 여러 함수 중에서 선택할 수 있다.

따라서, NT-Xent 손실의 감독 학습 패러다임으로의 확장은 다음과 같이 표현된다.

 

 

 

 

참고

https://daebaq27.tistory.com/97

 

[Contrastive Learning] Contrastive Learning이란

오늘은 contrastive learning에 대해 정리를 해보겠습니다. 처음에 facenet에서 triplet loss를 접하고 흥미 있는 분야라고만 생각해왔는데 self-supervised learning 분야에서 많이 발전을 이룬 것 같습니다. 해..

daebaq27.tistory.com

https://www.v7labs.com/blog/contrastive-learning-guide

 

The Beginner’s Guide to Contrastive Learning

Learn everything you need to know about Contrastive Learning and its most prominent applications.

www.v7labs.com

https://89douner.tistory.com/334

 

Contrastive learning이란? (Feat. Contrastive loss)

안녕하세요. 이번 글에서는 contrastive learning에 대해서 설명하도록 하겠습니다. Contrast라는 용어를 정의하면 아래와 같습니다. "A contrast is a great difference between two or more things w..

89douner.tistory.com

 

728x90