본문 바로가기

pattern regonition

생성 모델 VS 판별 모델 - 내가 오해하고 있었음... ㄷㄷ 반복 학습과 단일 계산의 차이가 존재하네

2025.05.23 - [pattern regonition] - 로지스틱 회귀와 소프트맥스 회귀 - 각 클래스의 사후 확률을 특정 함수 형태로 표현한 것!

 

로지스틱 회귀와 소프트맥스 회귀 - 각 클래스의 사후 확률을 특정 함수 형태로 표현한 것!

각 클래스에 대해 입력값 x 가 주어졌을 때의 사후 확률 P(C_k | x) 을 표현하는 방식, 이 사후 확률을 선형 함수 + 시그모이드 / 소프트맥스와 같은 해석 가능한 함수 형태로 바꾸는 과정 Binary Classif

teach-meaning.tistory.com

2025.05.23 - [pattern regonition] - 생성 모델의 관점에서 클래스 조건부 밀도가 특정 분포일 때 이를 바탕으로 MLE 및 베이즈 정리 적용을 통한 사후 확률 계산 - 가정한 함수 형태가 정규분포라는 거야!!! 정규 분포의 모양을 결정하는 것이 평균과 공분산이고!

 

생성 모델의 관점에서 클래스 조건부 밀도가 특정 분포일 때 이를 바탕으로 MLE 및 베이즈 정리

클래스 조건부 밀도를 특정 분포로 가정MLE 로 그 분포의 파라미터를 추정MLE 또는 상대 빈도로 사전확률 추정베이즈 정리를 통해 사후확률 계싼 🎯 이 방법의 본질모델링한 것은 likelihood P(x∣Ck)

teach-meaning.tistory.com

 

 

✅ 1. 생성 모델 vs 판별 모델: 개념 비교

구분                생성 모델 (Generative)                                           판별 모델 (Discriminative)

학습 대상 P(x∣C_k), P(C_k) P(C_k∣x)
예시 Naive Bayes, GMM, LDA Logistic Regression, Softmax Regression, Neural Nets
베이즈 정리 사용해서 P(C_k∣x) 유도 직접 모델링
주요 목적 전체 데이터 분포 파악 + 분류 분류 정확도 향상

 

✅ 2. 계산 관점에서 비교

🔹 생성 모델의 계산 특징

  1. 사전 확률 P(Ck)P(C_k):
    • 단순히 클래스별 샘플 수를 세면 됨 → 아주 간단
  2. 클래스 조건부 밀도 P(x∣Ck)P(\mathbf{x} \mid C_k):
    • 분포(보통 Gaussian) 가정 하에:
      • 클래스별 평균 μk\boldsymbol{\mu}_k, 공분산 Σk\boldsymbol{\Sigma}_k 계산
      • 이는 샘플 평균과 공분산 계산이므로 벡터/행렬 연산으로 간단히 처리 가능
  3. 사후 확률 계산:
    • 베이즈 정리로 유도 → 각 클래스에 대해 조건부 밀도 × 사전 확률 계산 후 정규화
    • 정규화 비용이 클래스 수에 따라 선형 증가
      (보통 적은 수의 클래스라면 매우 빠름)

🟢 요약:

  • 전체적인 수식이 **닫힌 형태(closed-form)**에 가깝고,
  • 수치해석 없이도 예측이 가능하기 때문에
  • 데이터가 적을수록 빠르고 안정적

 

🔸 판별 모델의 계산 특징

  1. 확률 모델 직접 학습:
    • 예: 로지스틱 회귀는 시그모이드 함수에 기반한 최적화 문제
    • 손실 함수: cross-entropy loss
    • 옵티마이저: SGD, Adam, 등 반복 학습 필요
  2. 반복 계산 필요 (gradient descent):
    • 파라미터 초기화 → 반복 → 수렴 확인 → 업데이트
    • 데이터 전체를 여러 번 순회해야 함 (epoch)
  3. 비선형 모델의 경우 계산량 더 증가
    • 예: 신경망의 경우 backpropagation까지 필요

🔴 요약:

  • 계산량은 많지만,
  • 결정 경계를 직접적으로 최적화하므로 예측 성능이 일반적으로 더 좋음

 

항목                                 생성 모델 (예: LDA, GMM)                                    판별 모델 (예: 로지스틱 회귀)

계산 복잡도 평균/공분산 계산 (1-pass) 반복 학습 (epoch 수 만큼)
계산 속도 빠름 (특히 적은 데이터) 느림 (최적화 반복 필요)
분포 가정 필요 (가우시안 등) 불필요 (데이터만 필요)
일반화 성능 적은 데이터에 강함 충분한 데이터에 강함
예측 정확도 구조가 단순하면 제한됨 더 정교하고 유연함

 

✅ 결론

  • 생성 모델닫힌 수식으로 파라미터를 추정하고 예측까지 가능하므로,
    계산적으로 간단하고 빠름.
  • 하지만 **분포 가정(가우시안 등)**이 맞지 않으면 성능이 제한됨.
  • 판별 모델은 데이터를 반복해서 돌려야 하고 수치 최적화가 필요하므로 느리지만,
    예측 정확도는 일반적으로 더 높음.

📌 따라서,
→ 데이터가 적고 빠른 추론이 중요하다면 생성 모델 (예: LDA)
→ 높은 정확도와 유연함이 필요하다면 판별 모델 (예: 소프트맥스, 신경망)

 

 

Discriminative 모델은 결정 함수 만 모델링하기 때문에 파라미터 수는 적지만, 학습은 복잡,

Generative 모델은 데이터 분포 전체를 모델링하기 때문에 파라미터 수는 더 많을 수 있지만, 학습은 종종 단순하다.

 

항목                          Discriminative (로지스틱)                        Generative (LDA/QDA)

목표 P(C_k∣x) P(x∣C_k), P(C_k) 모델링 후 베이즈 정리
파라미터 수 작음 (D+1D+1) 큼 (평균 + 공분산 + prior)
학습 난이도 수치적 최적화 필요 (복잡) 통계량 기반 추정 (단순)
학습 속도 느릴 수 있음 빠름
정확도 데이터 많을 때 강함 데이터 적을 때 강함

 

Discriminative 모델이 적은 파라미터로도 잘 작동하는 이유는 분포 전체가 아닌, 두 클래스가 어디에서 갈리는지만 학습하면 되기 때문

로지스틱 회귀는 오직 결정 경계에만 관심이 있음

 

🔁 결론

  • Discriminative 모델은 파라미터가 적지만, 수치적으로 훈련이 복잡
    (반복 최적화, local minima 등 고려)
  • Generative 모델은 파라미터는 많지만, 수학적으로 훈련이 단순
    (평균/분산 계산이면 끝)