2장 - 지도, 자기지도, 약지도 학습
2장. 지도, 자기지도, 약지도 학습
오늘 강의를 마치고 나면, AI 프로젝트에서 더 나은 의사결정을 내릴 수 있게 될 것이다. 딥러닝 연구자, 엔지니어, 과학자가 산업 현장에서 어떻게 문제를 풀어가는지 함께 살펴보자. — Kian Katanforoosh
2.1 신경망 기초 복습
지도 학습(Supervised Learning)의 기본 흐름은 다음과 같다.
입력(이미지, 텍스트, 오디오 등) → 모델(아키텍처 + 파라미터) → 출력(분류, 회귀, 생성)
모델은 두 가지 구성 요소로 이루어진다.
구성 요소 |
설명 |
|---|---|
아키텍처(Architecture) |
모델의 청사진, 골격 구조 |
파라미터(Parameters) |
학습을 통해 조정되는 값. 수십 개에서 수십억 개까지 가능 |
실제 배포된 AI 시스템(예: ChatGPT)은 본질적으로 클라우드 어딘가에 있는 두 개의 파일이다. 하나는 아키텍처를 기술하고, 다른 하나는 훈련된 파라미터를 담고 있다.
학습 과정
- 고양이 이미지를 모델에 통과시킨다.
- 초기 모델은 훈련되지 않았으므로 틀린 예측을 한다 (예: "고양이 아님").
- **손실 함수(Loss Function)**로 예측값과 정답을 비교하여 오차를 계산한다.
- **경사 하강법(Gradient Descent)**으로 파라미터를 조금씩 조정한다.
- 수백만 장의 이미지로 이 과정을 반복하면 파라미터가 보정되어 고양이를 올바르게 인식한다.
이진 분류에서 다중 분류로
고양이 탐지(이진 분류)를 고양이/개/기린 탐지(다중 분류)로 확장하려면 세 가지를 바꿔야 한다.
- 출력층: 뉴런 1개 → 동물 수만큼(3개) 확장
- 데이터: 개와 기린 이미지 추가
- 레이블: 0/1이 아닌 원-핫 벡터(One-Hot Vector) 사용 — 고양이
[0,1,0], 개[1,0,0], 기린[0,0,1]
한 이미지에 여러 동물이 있으면 **멀티-핫 벡터(Multi-Hot Vector)**를 사용한다. 고양이+개가 함께 있으면 [1,1,0]이 된다. 데이터를 변경하면서 레이블 형식을 잊는 것이 프로젝트에서 가장 흔한 실수다.
뉴런의 계층적 특성 학습
깊은 신경망을 얼굴 데이터로 훈련한 뒤 각 뉴런을 조사하면 흥미로운 패턴이 드러난다.
위치 |
학습하는 특성 |
|---|---|
초기 층 |
대각선, 수직, 수평 에지(edge) |
중간 층 |
눈, 코, 귀 같은 부분적 형태 |
깊은 층 |
얼굴 전체 형태, 과제에 가까운 고수준 특성 |
이 개념을 **인코딩(Encoding)**이라 부른다. 인코딩 중에서도 벡터 간 거리가 의미를 갖는 경우를 **임베딩(Embedding)**이라 한다. 임베딩은 검색, 유사도 비교 등 많은 AI 시스템의 핵심 연결 조직이다.
특성 공학 vs 특성 학습
- 특성 공학(Feature Engineering): 딥러닝 이전 방식. 눈 탐지기, 입 탐지기를 수동으로 만들어 조합
- 특성 학습(Feature Learning): 딥러닝 방식. 데이터가 스스로 말하게 하여 모델이 자동으로 특성을 학습 (end-to-end 학습)
2.2 사례 1: 주야간 분류
문제 정의
주어진 이미지가 낮인지 밤인지 분류하는 모델을 만든다. 파운데이션 모델 없이, 밑바닥부터 접근한다.
과제 정의의 중요성
동일한 "주야간 분류"라도 과제 정의에 따라 난이도가 극적으로 달라진다.
시나리오 |
난이도 |
|---|---|
특정 공원의 고정 카메라 |
쉬움 |
세계 어디든 임의의 야외 사진 |
중간 |
실내 사진 포함 |
매우 어려움 |
새벽/황혼 구분 필요 |
매우 어려움 |
노르웨이 북부 (백야/극야) |
극도로 어려움 |
과제 범위가 넓을수록 더 많은 데이터와 더 큰 모델 용량(capacity)이 필요하다.
해상도 결정: 인간 실험
해상도를 어떻게 정할까? 인간을 프록시로 사용한다. 다양한 해상도로 인쇄한 사진을 사람들에게 보여주고 주야간을 구분할 수 있는지 확인한다. 특정 해상도 이하에서는 인간도 구분하지 못한다.
결과적으로 64x64x3이 적절한 해상도였다. 3채널(RGB)을 유지한 이유는, 파란 하늘이 주야간 판별에 본질적인 정보를 제공하기 때문이다. 색상을 제거하면 인간에게도 과제가 훨씬 어려워진다.
설계 결정 요약
- 입력: 64x64x3 이미지
- 출력: 0(밤) 또는 1(낮)
- 최종 활성화: Sigmoid
- 아키텍처: 얕은 합성곱 신경망(과제가 단순하므로 큰 용량 불필요)
- 손실 함수: 이진 교차 엔트로피(Binary Cross-Entropy, 로지스틱 손실)
- 핵심 교훈: 인간 실험으로 빠르게 가설을 검증하라
2.3 사례 2: 트리거 워드 탐지
문제 구조
가상 비서(Alexa, Siri, Google Home 등)는 단일 모델이 아니라 **모델 캐스케이드(cascade)**로 동작한다.
활동 감지(볼륨) → 트리거 워드 탐지 → 명령 이해 → 실행
이 사례는 두 번째 단계, 즉 10초 오디오에서 특정 단어("activate")를 탐지하는 문제에 집중한다.
데이터 수집 전략
캠퍼스를 돌며 사람들에게 "activate"와 다른 단어들을 말해달라고 녹음한다. 이때 고려할 다양성 요소가 있다.
- 억양: 독일인 친구들은 초기 모델을 작동시키지 못했다
- 연령: 캠퍼스 평균 나이와 실제 사용자 나이 분포가 다르다
- 말하는 속도(cadence): 빠르게/느리게 말하면 주파수 패턴이 완전히 달라진다
- 성별: 평균적으로 다른 주파수 분포를 가진다
- 배경 소음: 스탠포드 캠퍼스에는 지하철 소음이 없다 — 뉴욕 사용자에게는 작동하지 않을 수 있다
"activate"와 유사한 단어("deactivate" 등)도 반드시 부정 데이터에 포함시켜야 한다. 참고로 아마존이 "Alexa"를 선택할 때도 일상 대화에서 잘 쓰이지 않는 단어를 골라야 했다.
레이블링 전략: 인간 실험
두 가지 레이블링 방식을 비교하는 인간 실험을 진행했다.
방식 |
설명 |
결과 |
|---|---|---|
방식 1: 전체 클립에 0/1 |
10초 클립에 "activate" 포함 여부만 표시 |
인간도 단어를 찾기 어려움 |
방식 2: 시간별 0/1 |
각 시간 단계마다 "activate" 위치를 표시 |
인간이 훨씬 쉽게 인식 |
인간에게 쉬우면 모델에게도 쉽다. 방식 2는 레이블링 비용이 천 배 더 들지 않지만, 필요한 데이터량을 천 배 줄여준다.
데이터 불균형 문제
방식 1로 10초 클립에 0/1을 부여하면 양성 레이블이 극소수여서, 모델이 항상 0을 출력하고도 99.9% 정확도를 달성한다. 이를 해결하기 위해 양성 구간에 연속된 1을 배치하여 양성/음성 비율을 균형 있게 맞춘다.
합성 데이터 생성
세 개의 데이터베이스를 구축한다.
- 양성 단어: "activate" 녹음
- 부정 단어: 다른 단어들의 녹음
- 배경 소음: 온라인에서 무료로 수집 가능
파이썬 스크립트로 10초 배경 소음 위에 단어들을 무작위로 겹치지 않게 삽입한다. 스크립트가 삽입 위치를 알고 있으므로 자동 레이블링이 가능하다. 데이터 증강(주파수 변조, 속도 조절 등)을 추가하면 3시간 만에 수백만 개의 훈련 데이터를 생성할 수 있다.
테스트 세트는 합성 데이터가 아닌 실제 데이터로 수동 레이블링해야 한다.
설계 결정 요약
- 입력: 10초 오디오 클립 (특정 샘플 레이트)
- 출력: 시간 단계별 시그모이드 출력 (순차적 이진 분류)
- 아키텍처: RNN 계열
- 손실 함수: 순차적 이진 교차 엔트로피
- 핵심 교훈: 데이터 수집/레이블링 전략이 프로젝트 성패를 가른다
2.4 사례 3: 얼굴 인증
문제 정의
학생이 카드를 스와이프하면, 데이터베이스의 학생 ID 사진과 카메라가 촬영한 실시간 사진을 비교하여 동일인인지 확인한다.
픽셀 비교의 한계
가장 단순한 방법인 픽셀 단위 비교가 실패하는 이유는 다음과 같다.
- 조명 차이: 배경의 밝기 차이가 의미 없는 거대한 오차를 만든다
- 평행이동: 같은 사진이 3픽셀만 이동해도 비교 결과가 완전히 달라진다
- 스케일/회전: 카메라와의 거리, 고개 기울기에 민감
- 외모 변화: 안경, 모자, 수염, 헤어스타일, 노화
인코딩 기반 접근
깊은 신경망으로 얼굴 이미지를 128차원 벡터로 인코딩한다. 같은 사람의 두 사진은 가까운 벡터를, 다른 사람의 사진은 먼 벡터를 만들도록 훈련한다.
학생 ID 사진 → 신경망 → 벡터 A (128차원)
카메라 사진 → 신경망 → 벡터 B (128차원)
거리(A, B) < 임계값 → 통과
해상도는 412x412x3으로, 주야간 분류보다 훨씬 높다. 홍채 색상처럼 미세한 디테일이 필요하기 때문이다. 공항 보안은 이보다도 훨씬 높은 해상도를 사용한다.
트리플렛 손실 (Triplet Loss)
훈련 데이터를 **삼중항(triplet)**으로 구성한다.
요소 |
설명 |
|---|---|
앵커(Anchor, A) |
기준 이미지 |
양성(Positive, P) |
앵커와 같은 사람의 다른 이미지 |
음성(Negative, N) |
앵커와 다른 사람의 이미지 |
손실 함수의 목표:
- distance(enc(A), enc(P))를 최소화
- distance(enc(A), enc(N))를 최대화
수백만~수십억 개의 삼중항으로 훈련하면, 모델은 특성 공학 없이 스스로 눈, 코, 귀 등의 특성을 학습한다. 이 방법은 FaceNet 논문(2015)에서 소개되었다.
알파 마진(alpha margin)이 없으면, 모든 벡터를 0으로 만드는 것이 최적해가 되어 모델이 불안정해진다.
인증에서 식별로, 그리고 클러스터링으로
과제 |
방법 |
|---|---|
얼굴 인증(Verification) |
카드 스와이프 + 카메라 → 1:1 비교 |
얼굴 식별(Identification) |
카메라만 → 데이터베이스 전체 벡터와 비교. K-최근접 이웃(KNN) 알고리즘 사용 |
얼굴 클러스터링(Clustering) |
레이블 없이 → 벡터 공간에서 K-평균 등 비지도 학습으로 자동 그룹화 (스마트폰의 사진 앨범 자동 분류) |
2.5 자기지도 학습 (Self-Supervised Learning)
레이블링은 비용이 크다. 레이블 없이 학습할 수 있는 방법은 없을까?
대조 학습 (Contrastive Learning)
SimCLR 등의 방법은 데이터 자체에서 학습 신호를 만들어낸다.
- 하나의 이미지를 가져온다 (예: 강아지 사진).
- 데이터 증강으로 변형본 두 개를 생성한다 (회전, 크롭, 노이즈 추가 등).
- 두 변형본의 인코딩 벡터가 가까워지도록 훈련한다.
삼중항을 수동으로 만들 필요가 없다. 스크립트로 이미지를 스크래핑하고 자동으로 쌍을 만들면 된다. 이것이 현대 모델이 수십억 장의 레이블 없는 이미지로 훈련되는 원리다.
텍스트의 자기지도 학습: 다음 토큰 예측
GPT 계열 모델의 핵심 훈련 목표는 **다음 토큰 예측(Next Token Prediction)**이다.
"deep learning is so" → 예측: "cool"
인터넷 텍스트를 가져와서 다음 단어를 맞추는 과제를 반복하면, 모델은 명시적으로 가르치지 않은 **창발적 행동(Emergent Behaviors)**을 학습한다.
예시 |
창발적 행동 |
|---|---|
"I poured myself a cup of _" |
물리적 상식 (컵에 담기는 액체) |
"The capital of France is _" |
사실적 지식 인코딩 |
"She unlocked her phone using her _" |
의미론적 이해 (fingerprint, face, password) |
"The cat chased the _" |
확률적 추론 (mouse, ball, dog 등 여러 답) |
"If it's raining, I should bring an _" |
인과 추론과 조건 연결 |
다른 모달리티의 자기지도 학습
동일한 원리가 다양한 데이터 형식에 적용된다.
- 오디오: 시간 구간을 마스킹하고 복원
- 비디오: 프레임을 제거하고 예측
- 단백질 구조: 아미노산 서열을 마스킹하고 복원
2.6 약지도 학습 (Weakly Supervised Learning)
세상은 다중 모달(multimodal)이다. 텍스트, 이미지, 소리, 동작이 함께 존재한다. 이를 연결하는 것이 약지도 학습의 핵심이다.
자연 발생 쌍 (Naturally Occurring Pairs)
수동 레이블링이 아니라, 세상에 이미 존재하는 모달리티 간 연결을 활용한다.
모달리티 쌍 |
출처 |
|---|---|
이미지 + 캡션 |
인스타그램, 위키피디아 |
오디오 + 비디오 |
유튜브 영상 (개가 짖는 소리 + 개 영상) |
비디오 + 자막 |
영화 자막 |
음악 + 곡명 |
스트리밍 플랫폼 |
유전자형 + 표현형 |
생물학 데이터베이스 |
게임 화면 + 키보드 입력 |
게임 로그 |
ImageBind와 공유 임베딩 공간
Meta의 ImageBind 논문은 대부분의 모달리티가 하나의 중심 모달리티를 통해 연결될 수 있음을 보여주었다. 텍스트와 이미지가 그 중심 축 역할을 한다.
열화상 데이터 ↔ 이미지 ↔ 텍스트 ↔ 오디오
결과적으로 "drums"이라는 텍스트를 입력하면 드럼 소리(오디오)와 드럼 이미지를 모두 검색할 수 있고, 개가 짖는 오디오를 입력하면 해변 위의 개 이미지를 찾을 수 있다. 이러한 **공유 임베딩 공간(Shared Embedding Space)**의 구축이 최근 몇 년간 가장 중요한 혁신 중 하나다.
2.7 핵심 정리
이번 강의에서 다룬 개념들을 정리하면 다음과 같다.
학습 패러다임 |
레이블 |
핵심 기법 |
|---|---|---|
지도 학습 |
수동 레이블 필요 |
이진/다중 분류, 트리플렛 손실 |
자기지도 학습 |
레이블 불필요 |
대조 학습, 다음 토큰 예측, 마스킹 |
약지도 학습 |
자연 발생 쌍 활용 |
다중 모달 연결, 공유 임베딩 |
프로젝트를 진행할 때 기억해야 할 실전 원칙:
- 과제를 명확히 정의하라 — 범위에 따라 난이도가 극적으로 달라진다
- 인간 실험을 활용하라 — 해상도, 레이블링 전략 등의 의사결정을 빠르게 검증한다
- 데이터 수집/레이블링 전략이 핵심이다 — 모델 아키텍처보다 중요할 수 있다
- 반복 속도가 곧 경쟁력이다 — 빠르게 시도하고, 빠르게 실패하고, 빠르게 고쳐라
- 전문가에게 물어라 — 수개월의 삽질을 30분의 대화로 줄일 수 있다
이전 장: 1장 - 딥러닝 입문 다음 장: 3장 - 딥러닝 프로젝트의 전체 사이클