learn

discriminative model과 generative model에 대해

출처: Understanding Deep Learning - Simon Prince

핵심 차이: 방향이 다르다

Discriminative model과 generative model의 근본적인 차이는 모델링하는 방향에 있다.

Discriminative model은 입력 x\mathbf{x}(이미지, 센서 데이터 등)로부터 출력 yy(레이블, 예측값)를 직접 예측한다.

y=f(x,  ϕ)y = f(\mathbf{x},\; \phi)

"이 이미지가 고양이인가, 개인가?" — 답을 바로 내놓는 방향이다.

Generative model은 반대다. 출력 yy가 주어졌을 때, 그에 해당하는 데이터 x\mathbf{x}가 어떻게 생겼을지를 모델링한다.

x=g(y,  ϕ)\mathbf{x} = g(y,\; \phi)

"고양이라는 레이블이 주어지면, 고양이 이미지는 이렇게 생겼을 것이다" — 데이터가 생성되는 과정 자체를 모델링하는 것이다.

Generative model의 딜레마: 역함수 문제

Generative model은 x\mathbf{x}를 만들어내는 모델이지, yy를 예측하는 모델이 아니다. 따라서 실제로 예측(inference)을 하려면 함수를 뒤집어야 한다.

y=g1(x,  ϕ)y = g^{-1}(\mathbf{x},\; \phi)

"이 이미지 x\mathbf{x}를 만들어냈을 yy는 무엇인가?"를 역으로 풀어야 하는데, 이 역함수를 구하는 것이 어렵거나 불가능할 수 있다.

Generative model의 장점: 사전 지식 주입

그럼에도 generative 접근이 매력적인 이유가 있다. 세상이 작동하는 원리를 모델 안에 직접 녹일 수 있기 때문이다.

예를 들어 이미지 x\mathbf{x}에서 자동차의 3D 위치·방향 yy를 예측하고 싶다고 하자. Generative 방식이라면 자동차의 형태(shape), 3D 기하학(geometry), 빛의 전달 법칙(light transport)을 gg 함수에 내장해서, "yy 위치에 자동차가 있으면 이런 이미지 x\mathbf{x}가 만들어진다"고 시뮬레이션할 수 있다. 물리적 지식이 곧 모델의 구조가 되는 셈이다.

현실: Discriminative model이 지배한다

하지만 현대 머신러닝에서는 discriminative model이 압도적으로 우세하다.

이유는 단순하다 — 충분한 데이터 + 유연한 모델의 조합이 사전 지식을 수동으로 설계하는 것보다 더 강력하기 때문이다. 물리 법칙을 하나하나 코딩해 넣는 것보다, 수백만 장의 이미지를 보여주고 "패턴을 알아서 찾아라"고 하는 것이 결과적으로 더 잘 동작한다.

정리하면, generative는 "세상의 원리를 알려주는" 접근이고 discriminative는 "답만 잘 맞추면 되는" 접근인데, 데이터가 충분하면 후자가 이긴다는 것이 현대 ML의 경험적 결론이다.