카테고리 없음

Generation_생성모델_최대가능도 추정

jiniby 2025. 1. 6. 18:36
728x90

✅ 최대가능도 추정 

1️⃣ 가능도 (Likelihood)란?

"현재의 데이터가, 특정 모델이나 파라미터로부터 관찰될 가능성"

데이터가 특정한 확률 분포(모델)로부터 나올 "확률값"을 계산

 

※ 예시

 

  • 동전을 던져서 앞면이 나올 확률이 0.7이고, 10번 중 7번 앞면이 나왔다고 합시다.
  • 여기서 가능도는,
    "이 동전이 정말로 앞면 확률이 0.7일 때, '앞면이 7번 나온 이 결과'가 발생할 가능성은?"

 

  • θ : 모델의 파라미터(예: 동전 앞면 확률 0.7).
  • P(데이터) : 주어진 데이터가 모델에서 나올 확률.

2️⃣ **로그 가능도 (Log-likelihood)**란?

곱셈 대신 **로그(log)**를 취해 값을 더하기로 바꾸는 것이 로그 가능도

  • 예: P(A)×P(B)×P(C) → log⁡P(A)+log⁡P(B)+log⁡P(C)

3️⃣ 최대 가능도 추정법(Maximum Likelihood Estimation, MLE)

 ●가능도를 최대화하는 파라미터 𝜃를 찾는 방법

 ●일반적으로 가능도 함수의 미분을 통해 계산

"내가 가진 데이터를 가장 잘 설명할 수 있는 숫자를 찾자!"

MLE는 L(θ)L(\theta)를 가장 크게 만드는 θ를 찾는 것이 목표

 ●동전 던지기 예제:

  ○관측치: 앞면 7번, 뒷면 3번

  ○파라미터 𝜃: 동전을 던질 때 앞면이 나올 확률

  ○확률질량함수: p(앞면; 𝜃) = 𝜃, p(뒷면; 𝜃) = 1-𝜃 

  ○가능도 최대화 = 어떤 𝜃에 대해 앞면 7번, 뒷면 3번이 나올 확률이 가장 클까?

  ○가능도: L(𝜃) = 𝜃7(1-𝜃)3

      L(0.6) = 0.670.43 = 0.0017915904

  ○앞면이 나올 확률의 추정값 = 0.7

 

* 왜 중요할까?

MLE는 머신러닝 모델에서 데이터를 기반으로 최적의 모델 파라미터를 학습하는 데 많이 사용돼요.
예를 들어:

  • 회귀 분석에서 가중치(θ)를 찾는 데 사용.
  • 분류 모델에서 특정 클래스의 확률을 추정.
  • 생성 모델에서 데이터 분포를 학습

4️⃣생성모델의 학습

데이터의 분포 Pdata 를 어떻게 모델링할까? =  모델 P𝜃 를 어떻게 학습할까?

○데이터의 분포 Pdata 와 모델 P𝜃 를 가깝게 하자!

 

  • Pdata : 실제 데이터가 가지고 있는 분포 (예: 강아지 사진들). “진짜 정답”
  • : 모델이 학습한 분포. ”예상 답“
  • d(Pdata,Pθ) : 두 분포의 차이를 측정하는 거리.

 

✔️KL-발산 (Kullback-Leibler Divergence)

KL 발산 값이 작을수록 두 분포가 더 비슷하다는 뜻

  1. Pdata: 우리가 다루고 싶은 실제 데이터의 분포
  2. x1, x2, …, xn: 우리는 실제 데이터(P_data)를 전체적으로 알지 못해요. 대신, 몇 가지 샘플(관측치)만 가지고 있어요. 
  3. : 모델이 생성하고자 하는 데이터 분포 / 이 모델은 θ라는 매개변수에 따라 다르게 작동
  4. d(Pdata, Pθ): 이것은 두 분포(P_data와 P_θ) 간의 차이(또는 거리)를 측정하는 방법 / 모델이 얼마나 잘 구성되었는지를 평가하기 위한 기준
  5. Model family: 여러 가지 가능한 모델들이 모여 있는 공간. 이 공간에서 우리는 가장 적합한 모델을 찾으려 해요.

✔️Wrap - up

  1. 최대 가능도 추정법 (MLE): 최대 가능도 추정법은 데이터를 가장 잘 설명하는 모델의 파라미터를 찾는 방법.
                                                모델이 데이터를 잘 생성하려면 이 가능도를 최대화해야 해요.
  2. 쿨백-라이블러 발산 (KL Divergence): 두 확률 분포의 차이를 측정하는 방법. MLE를 통해 모델이 데이터를 잘 본뜨도록 만드는 데 활용돼요. 하지만 KL Divergence를 계산하려면 실제 데이터의 분포가 필요해요.

    현실에서는 우리가 정확한 데이터 분포(Pdata)를 알 수 없기 때문에, MLE와 KL Divergence를 바로 적용하기 어려움

여기서 p(x)는 실제 데이터 분포이고, q(x)는 모델의 분포예요. KL 발산은 이 두 분포 간의 차이를 측정하는 값

728x90