생성 vs 판별

데이터로부터의 추론, 추정, 의사결정

분류기를 만드는 근본적으로 다른 두 가지 방법이 있으며, 이 구분은 머신러닝 전체를 관통합니다. 판별 모델은 클래스 사이의 경계를 곧바로 학습합니다. 생성 모델은 각 클래스가 자신의 데이터를 어떻게 만들어 내는지를 학습하고, 경계는 그 부산물로 끌어냅니다.

형식적으로 말하면, 판별 모델은 조건부 확률 p(y|x)를 곧바로 추정하여 «이 특징이 주어졌을 때 어느 레이블인가?»에 답합니다. 생성 모델은 결합 확률 p(x, y)를 추정한 다음(흔히 p(x|y)와 p(y)를 거쳐), 베이즈 규칙으로 p(y|x)를 얻습니다.

두 명의 미술 학생을 생각해 보세요. 한 명은 기초부터 털, 수염, 귀가 어떻게 조화를 이루는지 마스터하며 고양이를 그리는 법을 배웁니다: 이것은 각 클래스가 어떻게 데이터를 생성하는지 학습하는 생성형(generative) 모델입니다. 다른 한 명은 한 번도 그리지 않지만, 어떤 사진에서든 고양이와 개를 구별하는 데에 아주 뛰어납니다: 이것은 오직 클래스들 사이의 경계만을 학습하는 판별형(discriminative) 모델입니다. 화가는 새로운 고양이를 창조할 수 있습니다; 구분하는 사람은 단지 선을 긋기만 할 뿐이고, 종종 그것에 더 날카롭습니다.

머신러닝에서의 위치이 이분법이 ML의 거대한 영역을 정리해 줍니다. 분류기(로지스틱 회귀, 대부분의 신경망)는 판별로, p(y|x)만 다루고 그 이상은 하지 않습니다. VAE나 확산 모델은 생성으로, 판별 모델은 할 수 없는 새 이미지 합성을 해낼 만큼 p(x)를 충분히 잘 학습합니다. 나이브 베이즈 대 로지스틱 회귀가 고전적인 교과서 짝이라면, VAE 대 분류기는 그것의 현대 딥러닝 판 메아리입니다.
▶ 생성 vs 판별
← ML을 위한 통계 검정기대-최대화 (EM) →