본문 바로가기

카테고리 없음

딥러닝에서의 likelihood, MLE/MAP (베이즈 정리)

베이즈 정리는 어떤 사건 a가 일어났을 때 다른 사건 b가 발생할 확률을 찾는 것

-> 이 확률을 직접 구하기는 어려워도 'b가 발생했을 때 a가 발생할 확률'을 알고 있다면 위 확률을 계산할 수 있게 된다.

그래서 베이즈 정리를 사용하는 것. 보통 구하기 어려운 사후확률을 계산하기 위해 사전확률과 likelihood를 이용

 

  • prior(사전 정보): 파라미터의 확률분포. p(θ)

 

  • posterior: p(θ|x)
    • 우리가 관찰할 수 없는 것(θ)을 구하고자 함.
    • 데이터가 주어졌을 때 최적화된 모델 파라미터를 구하려는 것.
    • 사건 발생 후에 그 원인이 되는 분포를 찾는 것.(사후확률)
    • MAP (Maximum a Posteriori)는 posterior를 최대화함으로써 분포를 찾음

 

  • likelihood(observation): p(x|θ)
    • 우리가 관찰할 수 있는 것(x, 데이터)이 특정 분포로부터 만들어졌을(generate) 확률을 구하고자 함 
    • 데이터가 주어졌을 때 데이터를 가장 잘 설명하는 분포 파라미터를 찾는 likelihood L(θ|x)는 "그 데이터를 given parameter에서 얻어낼 확률 p(x|θ)"과 같다.
      • L(θ|x): 데이터가 주어졌을 때, 그 데이터는 우리가 알지 못하는 파라미터에 대해서 얼마나 정보를 줄 수 있는가?
      • p(x|θ): 파라미터가 주어진 것은 아니지만(파라미터를 모르지만), 결국 우리가 관찰하는 것은 데이터이기 때문에 x가 앞에 온다. 파라미터 분포를 가정하고 들어온 데이터로 loss를 계산해 분포를 업데이트함으로써 정답 분포에 가까워지도록 하는 것
    • p(x|θ)가 높다 = 데이터가 파라미터 분포 에서 나왔을 확률이 높다 = loss가 작다 = negative loss
      • 파라미터(분포)를 줬을 때(given parameter), 그 파라미터에서 나올 수 있는 정답 데이터들이 있을 것.
      • 딥러닝이라면 해당 데이터를 네트워크(파라미터)에 통과시켜 결과값을 뽑아낼 수 있음.
      • 데이터 x가 주어지면 x를 파라미터에 통과시켰을 때 원하는 결과값으로 계산될 확률이 정답(ground truth)을 넣었을 때의 결과값과 같기를 원함 = 그래야 정답 분포를 찾은 거니까
      • 이는 loss값과 같으며, 즉 정답 파라미터와 현재 파라미터 간의 차이로 loss를 계산할 수 있음
    • likelihood를 높이고 싶지만, 식이 미분 불가능
      • 로그를 씌워서 미분 가능하게 만들고, [0,1] 범위이기 때문에 음수 값이 나오므로 마이너스를 붙여줌 = negative loss인 이유
      • 이 값을 최소화하면 maximum likelihood를 구할 수 있음
    • 딥러닝은 결국 likelihood를 푸는 알고리즘이다. 데이터를 잘 설명하는 모델(θ)을 찾고자 하고, 그러려면 likelihood를 높여야 함

 

 

통계적 관점에서 설명

 

discrete이 아닌 continuous(연속)확률에서, 특정 데이터가 나올 확률은 무한히 많은 연속 데이터(continuous data) 중 하나이기 때문에 0이다.

따라서 특정 데이터가 나올 확률을 계산하는 것이 의미 없고(수식적으로는 0이니까),

대신 확률밀도함수(probability density function)를 이용해 '특정 구간'의 데이터가 나올 확률을 계산한다. (다시 discrete하게 생각할 수 있음)

 

  • likelihood
    • 확률밀도함수가 주어졌을 때, 특정 사건이 일어날 density값(y값).
      • 확률밀도함수에서는 데이터의 likelihood를 확률분포에서의 이산확률처럼 특정할 수 있음
    • 즉 특정 사건이 주어졌을 때 어떤 분포에서 왔을지에 대한 확률값이다.
      • 데이터가 10일 때, mean0 std1인 분포에서 왔을 likelihood는 0.1, mean10 std1인 분포에서 왔을 likelihood는 0.9일 수 있다
    • 연속확률에서는 probability가 0이기 때문에, prob density function인 likelihood를 사용해 계산해야 한다.
      • 이산확률에서도 probability 대신 likelihood를 사용할 수 있음(값이 같음)

 

  • Maximum Likelihood Estimation
    • 사건들(주어진 데이터들)의 가능도(likelihood)의 곱이 최대가 되게 하는 분포를 찾는 것.
    • 보통 임의의 분포(정규분포 등)를 가정한다 
    • 이러한 분포의 파라미터(모델 파라미터)를 찾아 그 값을 사용하는 것이 mle. 

 

그래서 likelihood는 분포를 가장 잘 설명하는 파라미터 θ를 찾는 것이지만(θ|x), 데이터 x가 나왔을 확률 p를 통해 그 분포를 구한다(x|θ)