About me
home
Portfolio
home

Co2L: Contrastive Continual Learning

링크
연도
2021
인용 수
223
저널
ICCV
진행도
Done
키워드
Continual Learning
Contrastive Learning

배경 소개: Self-Supervised Learning에서의 Contrastive Learning

Self-Supervised Learning
Self-supervised learning 방법은 레이블이 없는 데이터에서 유의미한 특징을 학습한다. 대규모 데이터셋에서 레이블 작업의 비용과 시간을 절약하는 장점이 있다.
Contrastive Learning
Contrastive learning은 유사한 쌍(similar pairs)과 다른 쌍(dissimilar pairs)을 구별하는 방식으로 특징(feature)을 학습한다.
이미지 처리 예시: 동일한 이미지의 augmentation(회전, 크롭)를 전부 유사한 쌍으로, 다른 이미지를 다른 쌍으로 취급한다.
Contrastive learning은 결국 효율적인 feature representation을 배우는 것이다. 이는 레이블이 없는 데이터셋을 학습할 때 유용하다.
이 논문에서 소개하는 Co2L(Contrastive Continual Learning)은 이러한 contrastive learning의 개념을 연속 학습(continual learning)에 적용함으로써, 학습 과정에서 발생하는 catastrophic forgetting 문제를 해결한다.
“Contrastive methods learn representations using the inductive bias that the prediction should be invariant to certain input transformations instead of relying on taskspecific supervisions.”
Inductive Bias (선입견)
Contrastive learning 방법은 데이터의 변형에도 불변하는 특징을 학습함으로써, 특정 태스크에 의존하지 않고 일반화된 표현을 배운다. (즉, 레이블이 지정된 데이터를 사용하여 학습하는 대신, 데이터 자체의 구조와 관계를 통해 학습)

CO2L 프레임워크

현재 태스크의 미니 배치 샘플과 memory buffer에 저장된 과거 태스크의 샘플을 함께 사용한다. 이러한 샘플들은 augmentation을 거쳐 신경망에 입력되며, 이를 통해 모델은 현재 태스크를 학습하면서도 과거 태스크의 정보를 유지할 수 있게 된다.

CO2L의 두 가지 Loss function

1. Asymmetric SupCon(Supervised Contrastive) loss

[현재 태스크의 앵커 샘플들과 다른 클래스의 샘플들을 대조]
작동 방식: Asymmetric SupCon loss는 미니 배치 샘플에서 현재 태스크의 같은 클래스 샘플을 긍정 샘플로 간주한다. 이는 anchor 샘플(기준점이 되는 샘플) 간에만 긍정적인 풀링(pull)이 발생한다는 것을 의미한다. 이는 모델이 클래스 간의 차이를 더 잘 인식하고 학습하는 데 도움이 된다.
"Anchor sample은 contrastive learning에서 사용되는 용어로, 비교의 기준이 되는 데이터 포인트들을 의미한다. 앵커 이미지가 주어지면, 이와 유사한 이미지(positive sample)와 다른 이미지(negative sample)를 비교하여 모델이 feature를 학습하게 된다.

Asymmetric 인 이유

Asymmetric SupCon loss를 사용하면 학습된 특징들의 심각한 변화를 방지할 수 있다.

2. IRD loss

[현재 모델과 이전 모델이 각각 제시하는 인스턴스별 유사도 사이의 차이를 측정]
기본 개념: IRD는 "instance-wise"와 "relation distillation"을 결합한 개념이다. 배치(batch) 내의 샘플들 사이의 특징 관계(feature relation)의 변화를 self-distillation 방법으로 조절한다. 이는 학습된 지식을 효과적으로 보존하는 데 도움이 된다.
작동 방식: 각 배치 내의 샘플 xix_{i} 에 대해 instance-wise similarity vector를 정의한다. 이는 배치 내 다른 샘플들과의 유사도를 나타낸다. IRD 손실은 현재 representation과거 representation 사이의 유사도 차이를 계산한다. 즉 학습된 표현을 현재 모델에 전달함으로써 지식을 보존한다.
지도 학습(Supervised learning)에서 Contrastive learning을 활용하는 방식
지도 학습에서 레이블이 있는 데이터를 사용하여, 같은 클래스에 속하는 샘플들을 긍정 샘플로 간주하고, 다른 클래스의 샘플들을 부정 샘플로 간주한다. 모델은 레이블을 기반으로 유사성과 차이점을 학습할 수 있게 된다.

학습 전략

“we focus on utilizing buffered samples to learn representations continually on a decoupled representation-classifier learning scheme.
"decoupled representation-classifier learning"은 특징을 학습하는 과정과 이 특징을 사용하여 분류를 수행하는 과정이 서로 다른 단계로 처리된다는 것을 의미한다. 그리고 하나의 과정이 다른 과정에 직접적인 영향을 미치지 않는다고 한다.
실제 코드 구현에서도 두 단계를 순차적으로 실행하라고 명시하고 있다.
이렇게 분리된 학습 방식은 효과적인 태스크 간의 지식 전이(transferable representations)를 하도록 해준다.

Supervised learning vs Self-supervised learning

지도 학습레이블이 있는 데이터를 사용해 모델을 훈련시킨다. 그러나 이 방식은 학습 데이터에 과도하게 학습되어 다른 상황(task)에서는 성능이 떨어질 수 있다. 반면, Self-supervised learning레이블이 필요 없으므로, 더 다양하고 포괄적인 데이터에서 특징을 학습할 수 있다.

Constrastive learning

대조적 학습은 데이터 샘플 간의 유사성과 차이점을 학습하는 방식으로, 주로 Self-supervised learning의 일부로 사용된다. 이 방식에서는 긍정 샘플(유사한 샘플)과 부정 샘플(다른 샘플)을 비교하여 모델이 유사성과 차이점을 학습하도록 한다.

지도 학습에서의 Constrastive learning 활용

지도 학습에서 Constrastive learning 방식을 활용하는 방법은 레이블을 사용하여 긍정 샘플의 정의를 확장하는 것이다. 즉, 지도 학습에서 레이블이 있는 데이터를 사용하여, 같은 클래스에 속하는 샘플들을 긍정 샘플로, 다른 클래스의 샘플들을 부정 샘플로 간주한다. 이를 통해 모델은 레이블을 기반으로 유사성과 차이점을 학습할 수 있으며, 이는 대조적 학습의 주요 개념을 지도 학습에 적용하는 것이다.
따라서 논문에서는 Supervised Contrastive Loss를 사용한다.

논문에 나오는 수식 정리

수식 (5): 모델 구성 요소

w(·) is the linear classifier and fϑf_ϑ(·) is the representation
이 수식은 모델이 representation 학습 부분과 선형 분류 부분으로 구성되었다는 것을 의미한다.
먼저 representation 학습 단계에서 입력 데이터로부터 중요한 특징을 추출하고, 이후 선형 분류 단계에서 이러한 특징을 사용하여 최종적인 예측을 수행하게 된다.

수식 (6): feature mapping

배치 내의 sample들을 d차원 Euclidean sphere로 매핑하는 방법을 설명한다.
g는 projection map이고, ziz_i는 최종적으로 각 sample들의 feature vector를 의미한다.
논문에 나오는 좌측 그림이 feature vector를 표현한 것이다. 실제로는 2차원이 아닌 d차원 공간이다.

수식 (7): Supervised Contrastive Loss

이 수식은 Supervised Contrastive learning에서 사용되는 손실 함수를 정의한다.
여기서 τ는 Temperature hyperparameter이다.

수식 (8): Set of positive samples

앵커 샘플에 대한 긍정적 샘플들의 인덱스 집합을 정의한다.
동일한 레이블을 가진 다른 샘플들을 긍정적 샘플로 간주된다.

GitHub 코드 분석

train 함수 코드
IRD (current):
코드 내에서 features 변수는 모델을 통해 얻어진 현재 태스크의 특징들을 나타낸다.
features1_prev_task 변수에 현재 태스크의 특징들이 저장된다.
이어서, 이 특징들 사이의 유사성(similarity)을 계산하고, 이 유사성을 기반으로 logistic function를 적용하여 소프트맥스 확률을 계산한다.
IRD (past):
여기서는 과거 태스크의 특징들을 다룬다.
model2는 과거 태스크에서 학습된 모델이다.(teacher 모델 역할)
이 유사성을 기반으로 손실 함수를 계산하여, 과거 데이터로부터 학습된 지식을 현재 태스크의 학습에 distillation한다.
Asym SupCon (Asymmetric Supervised Contrastive Learning):
feature들을 두 부분(f1, f2)으로 나누고, 각 부분을 서로 다른 차원(dimensions)에 배치하여 contrasive learning을 수행한다.
train() 함수 내에서의 modelmodel2
main.py 파일의 train 함수에서 continual learning을 위해 modelmodel2 두 개의 모델이 사용한다. continual learning은 여러 다른 태스크를 순차적으로 학습하는 과정에서, 이전에 학습한 지식을 유지해야 하고 새로운 지식을 습득해야 한다. 따라서 직전까지의 태스크의 지식을 보유한 model2(과거 모델)을 teacher 모델로 사용하고, 현재 새로운 태스크를 학습해나갈 model(현재 모델)을 student 모델로 설정한 후, CO2L 프레임워크에 도입해 knowledge distillation을 수행한다.
1.
model (현재 모델):
model은 현재 태스크에서 학습되고 있는 모델(student 모델)
이 모델은 새로운 데이터를 학습하면서 최신 지식들을 습득
2.
model2 (과거 모델):
model2는 이전 태스크에서 학습된 모델의 복사본(teacher 모델)
이 모델은 이전 태스크의 지식을 보존하는 데 사용된다. 즉, model2는 freeze 되어 새로운 태스크에 대해 학습되지 않으므로, 과거 태스크에 대한 정보를 계속 기억하고 있다.
현재 모델(model)에 Loss fuction을 이용해 knowledge distillation이 이루어지고 이를 통해 catastrophic forgetting 현상을 방지한다.