정답(label)을 알고 있는 데이터가 충분해야 지도학습이 가능하다. 그러나 실제로는 정답을 생성하는 데 상당한 비용이 들기 때문에, 충분한 양의 라벨 데이터를 확보하기 어렵다.
이러한 문제를 해결하기 위한 방법으로 자기지도학습(Self-Supervised Learning)이 제안되었다.
이미지는 일반적으로 n×nn \times n 형태의 픽셀 행렬로 표현되며, 이를 작은 영역 단위인 패치(patch)로 나눌 수 있다. 하나의 패치를 기준으로 주변에서도 동일한 크기의 패치를 추출할 수 있으며, 이들 사이에는 공간적 관계가 존재한다.

자기지도학습에서는 이러한 패치 간의 관계를 이용하여 가짜 문제(pretext task)를 정의한다. 예를 들어, 두 개의 패치를 입력으로 주고 “이 패치가 기준 패치의 어느 위치에 있는가?”를 예측하도록 학습시킬 수 있다.

이처럼 별도의 정답이 없는 데이터에서도, 데이터 자체로부터 학습 문제를 만들어낼 수 있다.
이러한 방식으로 사전 학습(pre-training)을 수행한 모델은, 이후 실제 라벨이 있는 데이터로 학습할 때 더 좋은 성능을 보인다. 즉, 단순히 적은 양의 라벨 데이터로 학습하는 것보다, 사전에 표현을 학습한 뒤 사용하는 것이 훨씬 효과적이다.
그렇다면 왜 패치의 상대적 위치를 학습하는 것이 성능 향상에 기여할까?
이미지는 단순히 무작위 픽셀의 집합이 아니라, 구조와 맥락(context)을 가진 데이터이기 때문이다. 예를 들어, 얼굴 이미지에서는 눈, 코, 입이 일정한 위치 관계를 가지며, 사물 역시 구성 요소들이 서로 연관된 위치에 존재한다.
따라서 패치 간의 상대적 위치를 맞추는 과정은 단순한 위치 예측이 아니라,
이미지의 구조와 의미를 이해하는 과정으로 이어진다.
이처럼 데이터 내부에서 스스로 정답을 생성하여 학습한다는 점에서 이를 자기지도학습이라고 한다. 이는 스스로 연습문제를 만들어 풀어본 뒤, 실제 시험 문제를 푸는 과정과 유사하게 이해할 수 있다.
데이터 안에서 셀프로 만든 label을 만들어서 학습하기에, 자기지도 학습이라고 인식하면 된다.
내가 연습문제를 만들어서 잘 외우고, 이후 실전에 들어가는 것과 유사하다.
이 연구(Doersch et al., 2015)에서는 이러한 가짜 문제를 Pretext Task라고 정의하고, 이를 통해 사전 학습을 수행하는 과정을 Pre-training이라고 설명한다. 이 과정을 거친 모델은 Pre-trained Model이 된다.
이후 실제 문제(예: 이미지 분류)를 해결하기 위해, 해당 모델을 기반으로 Downstream Task를 학습하게 된다. 이때 기존 모델의 구조를 일부 수정하여 사용하는데, 이를 Transfer Learning이라고 한다.
결과적으로, 사전 학습을 거친 모델은 적은 데이터로도 더 높은 성능을 내는 분류 모델로 발전할 수 있다.
정리하면, 기존 지도학습은 주어진 정답을 기반으로 직접 분류 문제를 학습하는 방식이라면, 자기지도학습은 데이터로부터 새로운 문제를 정의하고 이를 해결하는 과정에서 의미 있는 표현을 학습한다. 이후 이 표현을 활용하여 실제 문제를 풀기 때문에 성능 향상이 가능하다.
Contrastive learning
여기서 한 단계 더 나아가, 최근에는 이러한 자기지도학습을 더욱 효과적으로 수행하기 위한 방법으로 컨트라스트 러닝(Contrastive Learning)이 널리 사용된다.
컨트라스트 러닝의 핵심은 매우 단순하다.
같은 데이터에서 나온 표현은 가깝게,
다른 데이터에서 나온 표현은 멀어지도록 학습한다.
이를 위해 하나의 데이터를 기준(anchor)으로 두고,
같은 의미의 의미를 가지는 데이터를 positive pair, 다른 의미를 가지는 데이터는 negative pair로 구성한다.
모델은 anchor와 positive 간 거리를 줄이고, anchor와 negative 간의 거리는 늘리는 방향으로 학습한다.

예를 들어 하나의 이미지에서 서로 다른 두 패치를 추출하거나, 동일한 이미지를 서로 다른 방식으로 변형(augmentation)한 두 데이터를 생각해볼 수 있다. 이 둘은 본질적으로 같은 이미지에서 나온 것이므로, 모델이 생성한 벡터 표현(embedding) 역시 서로 가깝게 위치하도록 학습한다.
고양이 사진 한 장이 있다고 하자. 이 사진을 두 번 다르게 변형한다.

첫 번째는 일부를 잘라내고, 두 번째는 색감을 바꾸거나 회전시키는 식이다.
두 이미지는 겉보기에는 조금 다르지만, 원본이 같기 때문에 본질적으로는 같은 고양이 사진이다.
컨트라스트 러닝에서는 이 둘을 positive pair, 즉 양성 쌍이라고 부른다.
반면, 전혀 다른 이미지에서 추출한 데이터는 서로 다른 의미를 가지므로, 이들의 벡터 표현은 최대한 멀어지도록 학습한다.
예를 들어 자동차 사진이나 다른 동물 이미지 등은 negative pair(음성 쌍)로 간주된다.
이때 중요한 점은, 모델이 이미지를 직접 비교하는 것이 아니라,
이미지를 고차원 벡터로 변환한 뒤 그 거리나 유사도를 기준으로 학습한다는 것이다.
이 벡터를 embedding 또는 representation이라고 한다.
이를 공간적으로 표현하면, 모델은 데이터를 고차원 벡터 공간에 매핑하게 되며, 유사한 데이터는 서로 가까운 위치에, 다른 데이터는 서로 먼 위치에 배치되도록 학습된다.
이러한 과정을 통해 모델은 단순히 픽셀 값을 기억하는 것이 아니라, 데이터의 본질적인 특징(feature representation)을 학습하게 된다.

또한, 이 과정에서 데이터에 다양한 augmentation을 적용하는 것이 중요한 역할을 한다. 색상 변화, 자르기, 회전과 같은 변형에도 동일한 의미를 유지하도록 학습함으로써, 모델은 보다 강건한 표현을 학습할 수 있다.
결과적으로, 이러한 표현 학습은 이후 분류, 검색, 추천과 같은 다양한 다운스트림 태스크에서 매우 강력한 성능을 발휘한다.
정리하면, 기존 지도학습은 주어진 정답을 기반으로 직접 문제를 학습하는 방식이라면, 자기지도학습은 데이터로부터 새로운 문제를 정의하고 이를 해결하는 과정에서 의미 있는 표현을 학습한다. 그리고 컨트라스트 러닝은 이러한 표현 학습을 더욱 정교하게 만들어, 데이터 간의 유사성과 차이를 효과적으로 반영할 수 있도록 한다.
이러한 흐름을 통해, 적은 양의 라벨 데이터만으로도 높은 성능을 달성할 수 있는 기반이 마련된다.
'STUDY > ML DL' 카테고리의 다른 글
| numpy : 배열 연산, 사칙연산, 원소별 곱, 행렬곱 (0) | 2026.05.08 |
|---|---|
| numpy : ndarray, random, randn, rand, shape, dim, size, zeros, ones, arange, linspace (1) | 2026.05.08 |
| SGD와 mini-batch SGD, Momentum과 RMSProp 기반 Adam (0) | 2026.05.08 |
| 인공신경망 이해하기 (0) | 2026.04.30 |
| 강화 학습 Reinforcement Learning (1) | 2026.04.30 |