콘텐츠로 이동

표현학습은 "바로 정답을 맞히기 전에 데이터를 읽는 공통 언어를 먼저 배우는 일"입니다. self-supervised learning은 그 공통 언어를 사람의 라벨 없이 만드는 방법입니다. 이 강의에서는 왜 라벨 없이도 학습이 가능한지, 그리고 왜 좋은 표현이 분류, 검색, 생성까지 넓게 도움이 되는지를 순서대로 설명합니다.

먼저 알아둘 말

  • 표현: 데이터를 숫자 벡터로 바꾼 결과다.
  • 벡터 표현: 데이터 하나를 여러 숫자의 묶음으로 나타낸 것이다.
  • 라벨: 사람이 붙인 정답표다.
  • 표현학습: 바로 최종 문제를 풀기 전에, 데이터를 잘 구분할 수 있는 표현을 먼저 배우는 일이다.
  • self-supervised learning: 데이터 자체에서 문제와 정답을 만들어 학습하는 방식이다.
  • pretext task: 표현을 배우기 위해 먼저 푸는 연습 문제다.
  • embedding: 데이터를 벡터 공간의 한 점으로 나타낸 것이다.
  • positive pair: 같은 의미를 담고 있다고 보고 가깝게 두려는 두 데이터다.
  • negative pair: 서로 다른 의미라고 보고 멀게 두려는 두 데이터다.
  • contrastive learning: positive pair는 가깝게, negative pair는 멀게 만드는 학습 방식이다.

이 강의에서 답할 질문

  • 좋은 표현은 왜 최종 문제보다 먼저 배워 두는가?
  • 라벨이 없어도 모델은 무엇을 기준으로 공부하는가?
  • 가리고 맞히는 방식과 비교하며 묶는 방식은 각각 무엇을 배우게 하는가?

먼저 떠올릴 장면

  • 아이는 처음부터 "이 사진은 고양이다"라는 정답표를 많이 받지 않아도, 같은 고양이를 여러 각도에서 보면서 공통된 모습을 익힙니다.
  • 문장을 읽는 사람도 어떤 단어가 빠졌을 때 앞뒤 문맥으로 어느 정도 맞힐 수 있습니다.
  • 즉 사람도 많은 경우 정답표보다 데이터 자체의 반복 구조를 통해 먼저 감각을 만듭니다.

생각의 순서

  1. 먼저 좋은 표현이 왜 필요한지 생각합니다.
  2. 그다음 라벨이 없을 때도 만들 수 있는 학습 신호가 무엇인지 봅니다.
  3. 이어서 예측 기반 방법과 비교 기반 방법을 나눠 봅니다.
  4. 마지막으로 이렇게 얻은 표현이 실제 AI 문제에 어떻게 재사용되는지 연결합니다.

본문

분류, 검색, 추천, 생성은 겉으로는 다른 문제처럼 보입니다. 하지만 이 문제들은 공통으로 "데이터를 의미 있게 숫자로 바꾸는 일"을 필요로 합니다. 예를 들어 이미지 검색은 비슷한 사진을 가까운 위치에 두어야 하고, 분류는 같은 종류를 한 덩어리로 모을 수 있어야 하며, 생성 모델도 의미 있는 잠재 구조를 잡아야 합니다. 이 공통 기반이 바로 표현입니다.

표현을 만드는 함수를 다음처럼 적을 수 있습니다.

$$ z = f_\theta(x) $$

여기서

$$ x $$

는 원래 데이터이고,

$$ z $$

는 그 데이터를 바꿔 얻은 벡터 표현입니다. 목표는 단순히 숫자를 많이 만드는 것이 아닙니다. 비슷한 것은 가깝고, 중요한 차이는 드러나며, 나중 작업에 다시 쓰기 쉬운 표현을 만드는 것이 목표입니다.

가장 쉬운 방법은 라벨을 붙여 직접 학습하는 것입니다. 하지만 현실에서는 라벨이 비쌉니다. 이미지, 문장, 음성 원본은 아주 많아도, 사람이 하나하나 정답을 붙인 데이터는 적습니다. 그래서 self-supervised learning은 "데이터 자체 안에서 공부할 문제를 만들자"는 생각으로 출발합니다.

핵심은 학습 신호를 사람 대신 데이터가 제공한다는 점입니다. 문장에서는 일부 단어를 가려 둘 수 있고, 이미지에서는 한 장의 사진을 두 번 다르게 자를 수 있습니다. 음성에서는 앞부분과 뒷부분의 연결 관계를 이용할 수 있습니다. 즉 원본 데이터 안에 이미 구조가 있으므로, 그 구조를 이용해 연습문제를 만들 수 있습니다.

첫 번째 계열은 예측 기반 방법입니다. 이 방법은 "숨긴 것을 맞혀 보라"는 질문을 던집니다. 문장에서 빠진 단어를 맞히려면 문맥을 이해해야 하고, 이미지의 가려진 부분을 복원하려면 형태와 위치 관계를 파악해야 합니다. 즉 일부를 예측하는 과정에서 전체 구조를 배우게 됩니다. 이때 pretext task는 최종 목적 자체는 아니지만, 좋은 표현을 얻게 만드는 훈련 역할을 합니다.

두 번째 계열은 비교 기반 방법입니다. 이 방법은 "이 둘은 같은가, 다른가?"를 묻습니다. 같은 이미지에서 나온 두 변형을 positive pair로 두고, 다른 이미지에서 나온 표현은 negative pair로 둡니다. 그러면 모델은 같은 의미를 담은 벡터는 가까이, 다른 의미를 담은 벡터는 멀리 배치하려고 합니다. 이렇게 하면 벡터 공간 자체가 의미를 반영하는 구조로 바뀝니다.

이 비교 기반 아이디어는 보통 다음과 같은 손실로 나타냅니다.

$$ L = -\log \frac{ \exp(\mathrm{sim}(z_i, z_i^+)/\tau) }{ \sum_j \exp(\mathrm{sim}(z_i, z_j)/\tau) } $$

여기서

$$ z_i $$

는 기준 데이터의 표현이고,

$$ z_i^+ $$

는 같은 의미라고 보는 positive 표현입니다.

$$ \mathrm{sim} $$

은 두 벡터의 닮은 정도를 재는 함수이고,

$$ \tau $$

는 민감도를 조절하는 값입니다. 식을 외우는 것보다 중요한 점은 방향입니다. 기준 벡터와 맞는 짝은 더 닮게 만들고, 다른 샘플들과는 구분되게 만들겠다는 뜻입니다.

예측 기반 방식과 비교 기반 방식은 질문은 다르지만 목표는 같습니다. 데이터에서 공통 구조를 끌어내어, 나중 작업에 잘 쓰이는 표현을 만드는 것입니다. 예측 기반은 "빠진 정보를 맞히는 능력"을 통해 구조를 배우고, 비교 기반은 "같은 것과 다른 것을 구분하는 능력"을 통해 구조를 배웁니다.

좋은 표현이 만들어지면 이후 작업은 훨씬 쉬워집니다. 적은 라벨만으로도 분류기를 붙일 수 있고, 검색에서는 가까운 벡터를 찾는 것만으로 비슷한 대상을 찾을 수 있습니다. 생성 모델에서는 의미 있는 잠재공간을 만드는 데 도움이 됩니다. 그래서 self-supervised learning은 라벨이 없을 때 쓰는 임시 대안이 아니라, 현대 AI에서 공통 기반 능력을 키우는 핵심 방법으로 자리 잡았습니다.

예제

  1. 가린 단어 맞히기 문제: 문장에서 한 단어를 가리고 맞히게 하면 모델은 무엇을 배운다고 볼 수 있는가? 풀이: 앞뒤 문맥을 이용해 빠진 정보를 추론하는 표현을 배우게 된다. 해설: 사람이 정답표를 따로 주지 않아도, 문장 자체가 "무엇이 빠졌는가"라는 학습 신호를 제공한다.

  2. 같은 사진의 두 변형 문제: 같은 사진을 두 번 다르게 잘라 만든 이미지를 왜 positive pair로 두는가? 풀이: 겉모습이 조금 달라도 같은 대상을 담고 있으므로, 공통 의미를 가깝게 묶기 위해서다. 해설: 이렇게 학습하면 모델은 색 변화나 자르기 위치 같은 사소한 차이보다 내용의 공통점을 더 중요하게 보게 된다.

  3. 표현을 먼저 배우는 이유 문제: self-supervised learning으로 만든 표현이 다운스트림 작업에 도움이 되는 이유는 무엇인가? 풀이: 데이터의 중요한 구조가 벡터 안에 먼저 정리되므로, 이후 작업은 그 위에서 더 간단한 판단만 하면 되기 때문이다. 해설: 모든 문제를 처음부터 다시 배우는 대신, 공통 표현을 여러 작업이 함께 재사용할 수 있다.

스스로 점검

연습 문제

  1. self-supervised learning이 라벨 없이도 학습 가능한 이유를 설명하라.
  2. 예측 기반 방식과 contrastive learning의 차이를 설명하라.
  3. positive pair와 negative pair가 각각 벡터 공간에서 맡는 역할을 설명하라.
  4. 좋은 표현이 분류, 검색, 생성에 공통으로 도움이 되는 이유를 설명하라.

복습 질문

  1. 표현학습은 무엇을 먼저 만드는 과정인가?
  2. self-supervised learning은 정답을 어디서 얻는가?
  3. 비교 기반 학습은 벡터 공간을 어떤 모양으로 만들려 하는가?

체크포인트

  1. 표현학습의 목적을 설명할 수 있다.
  2. self-supervised learning의 핵심 아이디어를 말할 수 있다.
  3. 예측 기반 방식과 비교 기반 방식의 차이를 구분할 수 있다.
  4. 좋은 표현이 왜 여러 AI 작업의 공통 기반이 되는지 설명할 수 있다.