데이터 분석 일지

[Deep Learning] Probabilistic Perspective 본문

Lecture or Textbook Review/Deep Learning

[Deep Learning] Probabilistic Perspective

-ˋˏ ♡ ˎˊ- 2024. 2. 23. 21:40

0. Introduction

 

딥러닝의 목적은 가상의 함수를 모사하여 원하는 출력 값을 반환하는 신경망의 파라미터를 찾고자 하는 것이다. 따라서 지금까지 gradient descent, back-propagation, feature vector 등에 대해 다뤄보았다. 이 생각을 확장시켜야 한다. 

 

세상은 확률에 기반한다. 예를 들어 아래의 그림과 같은 모호한 그림을 보았을 때, 토끼라고 인식할 확률과 오리라고 인식할 확률을 비교하여 더 높은 확률을 가지는 쪽으로 인식하게 된다. 이러한 것도 확률분포라고 할 수 있다. 지금까지는 함수를 모사하는 것이었지만 앞으로는 확률분포를 모사하도록 학습시켜야 한다. 

 

토끼와 오리 착시 그림

 

함수를 모사하는 방법에서는 deterministic target 값을 예측했었다. 시야를 조금 더 넓혀서 생각한다면 확률분포함수를 배우는 것이 인간의 생각과 더욱 가깝게 생각하는 것이라고 할 수 있다. 이때 수학적으로 더 설명이 가능하게 되고, 불확실성까지 학습하게 된다. 대부분 최신 논문들은 이 관점에 기반을 두고 만들어진다. DNN을 확률분포로 보았을 때, 가능한 이론들에 대해 앞으로 이야기할 것이다. (Likelihood, Maximum Likelihood Estimation, Maximum A Posterior Estimation, Cross Entropy & KL-Devergence 등)

 

1. Basic Statistics

 

1. 1. Random Variable & Probability Distribution

 

확률변수(random variable)는 어떤 변수 X가 x라는 값을 가질 확률을 의미한다. 가능한 모든 x에 대한 확률을 분포로 나타낸 것을 확률분포라고 한다. 이를 아래의 수식과 같이 쓸 수 있다. 간단하게 P(x)라고도 쓸 수 있다. 

 

P(X=x)

 

확률분포함수를 x가 이산적인 값을 가질 때와 연속적인 값을 가질 때로 나눌 수 있고, 이를 각각 이산확률분포와 연속확률분포라고 한다. 

 

1. 2. Discrete Probability Distribution

 

이산적인 값을 가지는 예로는 주사위가 될 수 있다. 주사위는 1부터 6 사이의 이산적인 값을 가지게 된다. 각 주사위 눈이 나올 확률은 1/6으로 모든 확률 값을 다 더하면 1이 된다. 또한 각 확률은 0에서 1 사이의 값만 가질 수 있다. 이러한 이산적인 값을 가지는 함수이산확률변수라고 하는데, 이 함수는  Probability Mass Function(확률 질량 함수, PMF)로 나타낼 수 있다. 

 

1. 3. Continuous Probability Distribution

 

이산적인 값을 가지는 것과 반대로 연속적인 값을 가지는 함수연속확률변수라고 하는데, 이 함수는 Probability Density Function(확률 밀도 함수, PDF)로 나타낼 수 있다. 이 함수가 나타내는 면적의 합은 1이 된다. 이때는 함숫값이 1보다 큰 경우에도 면적의 합만 1을 만족하면 되므로 함숫값이 1보다 클 수 있다. 확률 밀도 함수 그래프에서는 함숫값의 높이가 확률값이 되는 것이 아니라 구간의 면적이 확률값이 된다. 따라서 연속확률변수의 경우 어떤 샘플이 주어졌을 때 확률값을 알 수 없다. 

 

1. 4. Joint Probability

 

결합분포는 두 개 이상의 확률변수가 결합이 되었을 때의 확률분포를 의미한다. 이 분포 함수는 아래의 그림과 같이 나타낼 수 있다. 

 

joint probability

 

1. 5. Conditional Probability

 

조건부확률분포는 x가 주어졌을 때의 y의 확률값을 의미한다. 수식으로는 다음과 같이 표시하고, 그 아래의 수식으로 변형해서도 표시할 수 있다. 

 

P(y|x)=P(x,y)P(x) P(x,y)=P(y|x)P(x)

 

1. 6. Bayes Theorem

 

위의 개념들을 사용하여 베이지 정리도 이해할 수 있다. 베이지 정리를 이용하면 아래와 같이 데이터 D가 주어졌을 때 가설 h의 확률을 의미하는 수식을 만들 수 있다. 

 

P(h|D)=P(D|h)P(h)P(D)

 

1. 7. Function of Value

 

다음은 헷갈리지 말아야 할 개념이다.

  • 확률값: P(x)
  • 확률분포: P(X)

 

이에 따라서 P(y | x)는 P(Y = y | X = x)와 같이 나타낼 수 있으며, 이는 확률값이 x일 때 확률값이 y일 확률을 의미한다. P(Y | x)는 P(Y | X = x)와 같이 나타낼 수 있으며, 이는 확률값이 x일 때의 y의 확률분포를 의미한다. 마지막으로 P(y | X)는 P(Y = y | X)와 같이 나타낼 수 있으며, 이는 x의 확률분포가 주어졌을 때 확률값이 y일 확률을 의미한다. 즉, 함수 f(X)를 의미하는 셈이다. 

 

1. 8. Monti-Hall Problem

 

몬티홀 문제는 베이지 정리를 통해 풀 수 있는 대표적인 확률 문제이다. 이 문제는 아래와 같다. 

당신이 한 게임 쇼에서 3개의 문 중에 하나를 고를 수 있는 상황이라고 가정하자. 한 문 뒤에는 자동차가, 다른 두 문 뒤에는 염소가 있다. 당신이 1번 문을 고르자, 문 뒤에 무엇이 있는지 아는 사회자는 3번 문을 열어서 염소를 보여줬다. 그리고는 "2번 문으로 바꾸시겠습니까?"라고 물었다. 이 상황에서, 당신의 선택을 바꾸는 게 유리할까?

 

이 문제에서의 확률변수를 아래와 같이 정의할 수 있다. 

  • A: a door index what I selected at the first time
  • B: a door index what host selected (host will not open the answer)
  • C: a door index of the answer

door index는 0, 1, 2로 이루어져 있다. 위의 문제를 조건부확률로 나타내면 아래와 같이 나타낼 수 있다. 

  • P(C = 0 | A = 0, B = 1)
  • P(C = 2 | A = 0, B = 1)

위의 두 확률 중 더 큰 값을 가지는 문을 선택하면 된다. 위 확률을 풀어쓰면 답을 구할 수 있다. 이는 아래의 수식과 같다. 

 

위의 수식을 통하여 결론적으로 처음 선택한 문에서 새로운 문으로 바꿀 때 정답을 맞힐 확률이 더 크다는 것을 보인다. 

 

1. 9. Marginal Distribution

 

주변확률분포는 결합분포에서 한 변수를 적분한 형태를 나타낸다. 이를 수식으로 쓰면 아래와 같이 나타낼 수 있다. 

 

 

위의 수식에 따르면 P(z | x)를 z로 미분할 때 1이 된다는 것이다. 

 

1. 10. Expectation and Sampling

 

기댓값을 아래의 수식과 같이 표현할 수 있다. f(x)라는 함수가 있을 때 P(x)에서 sampling 한 x를 함수에 대입한 값의 평균을 계산한 것이다. 

 

EXP(X)[f(x)]

 

위의 수식을 전개해 보면 아래의 수식과 같이 나타낼 수 있다. 

 

EXP(X)[f(x)]=xχP(x)f(x)

 

간단하게 주사위를 예시로 수식을 작성하면 아래와 같다. 

 

Example: Rolling a Dice

 

1. 11. Monte-Carlro

 

몬테카를로 샘플링은 확률분포로부터 샘플링을 통해 함수 f의 가중 평균을 구하는 것이다. 이는 아래와 같은 방법으로 이루어진다. 

  1. 해결하고자 하는 문제에 포함된 변수들의 확률분포를 정의한다.
  2. 확률분포로부터 무작위로 변숫값들을 샘플링한다.
  3. 샘플링된 변숫값들을 이용하여 주어진 함수의 결괏값을 계산한다.
  4. 계산 결과들을 종합하여 결과를 도출한다. 

이때 이 샘플링하는 횟수가 많아질수록 결괏값이 더 정확해진다. 이를 수식으로 쓰면 아래와 같다. 

 

EXP(X)[f(x)]1ni=1nf(xi),wherexiP(X)

 

2. Maximum Likelihood Estimation

 

2. 1. Likelihood Function (without Deep Learning)

 

likelihood는 입력으로 주어진 확률분포(파라미터; μ, σ)가 데이터를 얼마나 잘 설명하는지를 나타내는 점수이다. likelihood 함수는 이러한 점수를 출력하는 함수이다. 데이터가 해당 확률분포에서 높은 확률 값을 가질 때 데이터를 잘 설명한다고 할 수 있다. 수식은 아래와 같이 쓸 수 있다. 

 

Likelihood(μ,σ)=i=1np(xi;μ,σ)

 

단순하게 확률이 조작된 주사위를 예로 들어보겠다. 주사위를 20번 던졌을 때 나온 숫자의 횟수는 아래 그림과 같다. 이때의 확률분포를 나타내는 방법을 단순하게 확률값으로 나타내면 아래의 그림과 같이 나타낼 수 있다. 

example by simple solution

 

2. 1. 1. Example by Maximum Likelihood Estimation

 

likelihood를 사용하여 주사위의 확률분포를 나타내보자. 먼저 임의의 확률분포 θ_1과 θ_2를 생성한다. 이때의 각각의 likelihood를 계산하면 아래의 수식과 같다. 

 

L(θ1)=i=1n=20Pθ1(X=xi)=.13×.13×.11×.13×.15×.55=3.125e17

L(θ2)=i=1n=20Pθ2(X=xi)=.53×.13×.11×.13×.15×.15=1.25e18

 

이에 따라 θ_1의 likelihood 함숫값이 더 크기 때문에 주사위의 확률분포를 더 잘 설명한다고 할 수 있다. 이와 같이 임의의 확률분포를 계속해서 생성해 나가면서 likelihood 값을 구한다. 이때 가장 큰 likelihood 함숫값을 가지는 확률분포가 데이터를 가장 잘 설명한다고 할 수 있는 것이다. 

 

2. 2 Log Likelihood

 

앞에서 설명한 예제에서 볼 수 있듯이, likelihood는 확률의 곱으로 표현한다. 이때 값이 매우 작아지게 되면서 이를 계산하는 과정에서 underflow가 일어날 가능성이 높다. 따라서 log를 취하여 곱셈을 덧셈으로 바꾸고, Log Likelihood로 문제를 해결할 수 있다. 또한 덧셈이 곱셈보다 연산도 빠르다. Log Likelihood의 수식은 아래와 같다. 

 

i=1nlogPθ(X=xi)

 

2. 3. MLE via Gradient Ascent

 

Loss 함수에서는 gradient descent하여 함숫값을 최소화하는 파라미터를 찾았다. Likelihood는 최대화해야 하므로 임의로 확률분포를 생성하는 대신에 gradient ascent를 통하여 likelihood 값을 최대로 만드는 파라미터(θ)를 찾으면 된다. 이때의 업데이트되는 θ 수식은 아래와 같다. 

 

θθ+αL(θ)θ

 

2. 3. 1. Example of MLE via Gradient

 

동전을 100번(= n) 던졌을 때, 앞면이 27번(= k) 나오는 동전이 있다. 이 동전의 확률분포를 추정해보고자 한다. 동전 던지기는 앞면, 뒷면의 두 가지 선택지를 가지고 있기 때문에 Binomial Distribution이라고 할 수 있다. Binomial Distribution의 수식은 아래와 같다. 

 

L(θ)=n!k!(nk)!×θk×(1θ)nk

 

Likelihood graph

 

위의 그래프에서 최댓값을 가지는 θ를 구할 수 있게 되는 것이다. 

 

3. Deep Neural Network with MLE

 

아래는 각각 모두 같은 표현이라는 것을 짚고 넘어가자. 

 

Pθ(x)=P(x;θ)=P(x|θ) Pθ(y|x)=P(y|x;θ)=P(y|x,θ)

 

3. 1. Parameters for Probability Distribution

 

아래는 Bernoulli Distribution과 Gaussian Distribution에서의 파라미터를 나타낸다. 

  • Bernoulli Distribution: θ = {p}
  • Gaussian Distribution: θ = {μ, σ}

 

이와 같이 DNN에서의 파라미터는 각 레이어의 가중치와 편향이라고 할 수 있다. 따라서 DNN도 마찬가지로 Gradient Ascent를 통해 Likelihood를 최대로 하는 파라미터를 찾을 수 있다. 

 

3. 2. Negative Log Likelihood (NLL)

 

하지만 대부분의 딥러닝 프레임워크들은 Gradient Descent만 지원한다. Likelihood는 maximization 문제이기 때문에 이 수식에 마이너스를 취해 이를 minimization하는 문제로 바꿀 수 있다.  

 

3. 3. Summary

 

다시 DNN과 MLE와의 관계를 설명해 보겠다. 분포 P(X)로부터 샘플링한 데이터 x가 주어졌을 때 파라미터 θ를 갖는 DNN은 조건부확률분포를 나타낸다. 이는 아래의 수식과 같다. 

 

P(y|x;θ),wherexP(X)

 

이때 우리는 gradient descent를 통해 NLL을 최소화하는 θ를 아래의 수식으로 찾을 수 있다. 

 

θ^=argminθΘi=1NlogP(yi|xi;θ)

 

Neural Networks 또한 확률분포함수 이므로 MLE를 통해 파라미터를 찾을 수 있다. 이때 최대화 대신 최소화를 위하여 NLL을 gradient descent한다.

 

4. Maximum Likelihood Estimation: Equations

 

위에서 설명한 MLE를 수식으로 다시 정리하면 아래와 같다. 

 

D={(xi,yi)}i=1N θ^=argmaxθΘi=1NlogP(yi|xi;θ)=argminθΘi=1NlogP(yi|xi;θ) θθαθL(θ)

 

위의 수식에서 y_i 값을 구하는 방법은 이미 지난 블로그에서 설명했다. 

 

4. 1. Connection to DNN

 

classification 모델에서 softmax를 사용한다고 설명했다. 이때 softmax 함수의 출력값, 즉 벡터의 element들이 각 분류에 대한 확률값인 것이다. softmax의 출력값으로 구한 P(y_i | x_i ; θ)에 로그를 취하여 다 더한 후 음수를 취한 값을 minimization하면 된다. 이 식을 아래와 같이 표현할 수 있다. 

 

i=1NlogP(yi|xi;θ)=i=1NyiTlogyi^

 

놀랍게도 위의 식에서 도출된 식은 Cross Entropy Loss이다. 

 

4. 2. MLE(NLL) and Cross Entropy Loss

 

따라서 우리는 NLL을 최소화하는 것과 Cross Entropy를 최소화하는 것이 같은 것임을 알 수 있다. 즉 classification을 수행하고, softmax를 수행하고, cross entropy loss를 수행하여 최적화를 수행하는 과정이 결국 MLE를 하기 위한 과정이었던 것이다. 

 

5. Appendix: Maximum A Posterior Estimation

 

5. 1. Bayes Theorem

 

1.6. 에서도 설명한 개념이다. 더 자세히 파고 들어가 보자. 

 

P(h|D)=P(D|h)P(h)P(D)

 

위의 식에서 D는 데이터를 h는 가설을 의미한다. 각각의 항이 의미하는 것은 아래와 같다. 

  • P(h | D): Posterior(사후 확률)
  • P(D | h): Likelihood(가능도, 우도)
  • P(h): Prior(가설의 가능성)
  • P(D): Evidence(데이터의 출현 확률)

 

likelihood를 최대화하는 것이 MLE이었다. 이때 likelihood뿐만 아니라 posterior도 최대화가 가능하다. 즉, 데이터와 가설이 주어졌을 때 likelihood를 최대화하는 방법과 posterior를 최대화하는 방법으로 나누어 볼 수 있다. 

 

5. 2. Maximum A Posterior(MAP) Estimation Example

 

만약 절도 사건이 일어났을 때 범인이 발자국을 남겼다고 한다. 그 발자국의 신발 사이즈가 240일 때, 범인은 남자일 확률이 높을지 여자일 확률이 높을지 생각해 보자. 이는 아래의 식과 같이 생각할 수 있다. 확률변수 x는 신발 사이즈를 의미하고, y는 성별을 나타낸다. 

 

P(X=x|Y=y)

 

여자일 경우에 신발 사이즈가 240일 확률이 높으므로, 범인이 여자일 확률이 높다고 이야기하는 것은 Likelihood의 경우이다. 이에 따른 수식은 아래와 같이 쓸 수 있다. 

 

P(X=240|Y)

 

하지만 범행 장소가 군부대라면 말이 달라진다. 이때는 확률변수 y가 여자일 때보다 남자일 때가 더 많다. 이에 따른 수식은 아래와 같이 쓸 수 있다. 

 

P(Y=male)>P(Y=female)

 

위의 수식에서 확률분포 Y가 남자일 경우 99.99, 여자일 경우 0.01의 확률을 가진다고 할 때 결론적으로 범인이 남자일 확률이 더 높다. 이를 MAP라고 한다. 

 

5. 3. MAP Estimation

 

다시 정리하자면 posterior를 maximize함으로써 얻는 h_hat을 찾는 것을 목표로 한다. 이를 수식으로 아래와 같이 표현할 수 있다.

 

h^=argmaxhHP(h|D)=argmaxhHP(D|h)P(h)P(D)=argmaxhHP(D|h)P(h)

 

따라서 likelihood에 prior를 곱한 값을 최대화하는 것이라고도 볼 수 있다. 

 

5. 4. Bayesian vs Frequentist

 

데이터가 주어졌을 때 확률분포를 가장 찰 표현하는 θ를 찾는 것이 DNN의 목표이다. 이를 두 관점에서 생각할 수 있다. 

 

bayesian 관점에서 MAP Estimation 수식을 살펴보면 Likelihood를 최대화하는 것과 동시에 prior도 최대화해야 한다. 이에 따라 파라미터 또한 확률변수가 되고, prior 분포를 따를 것이다. 기존의 MLE에서는 prior를 무시하고, 파라미터를 확률변수가 아닌 단지 최적화해야 되는 대상으로써 취급을 하였다. 즉, frequentist 관점에서는 현재까지의 정보를 바탕으로 추정하였지만, bayesian 관점은 미래의 uncertainty까지 고려하게 되는 것이다. frequentist 관점에서는 overfitting에 취약하지만 bayesian 관점에서는 prior에 대한 가정이 있기 때문에 overfitting을 피할 수 있다. 

 

5. 5. Summary

  • MAP를 통해 posterior를 최대화하는 hypothesis(파라미터)를 찾을 수 있음
  • bayesian 관점에서는 prior에 대한 가정을 통해 앞으로의 uncertainty까지 고려 -> overfitting 문제 해결
  • bayesian DL에 대한 다양한 시도들이 이어지고 있음

 

6. Kullback-Leibler Divergence

 

두 분포에 대해 다름을 측정하는 것을 의미한다. 이 다름을 거리라고 표현하지 않은 이유는, 거리는 어떤 관점에서 측정하여도 같아야 하지만 이 개념은 다르기 때문이다. KLD는 p와 q 사이의 dissimilarity를 측정한다. 이를 아래의 수식과 같이 표현할 수 있다. 

 

KL(p||q)=Exp(x)[logq(x)p(x)]=p(x)logq(x)p(x)dx

 

위의 수식은 p의 관점에서 q와의 다름을 측정한 것이다. 이는 x를 p에서 샘플링하기 때문이다. KLD는 비슷할수록 작은 값을 출력하고, 이 출력값은 0에서부터 무한대까지의 범위를 가진다. 

 

6. 1. DNN Optimization using KL-Divergence

 

이를 DNN에 대입하여 최적화를 수행할 수 있다. KL(p || p_θ)가 0과 가까울수록 최적화를 잘 수행하게 되는 개념이기 때문이다. 이를 아래와 같은 수식으로 표현할 수 있다. 

 

L(θ)=Exp(x)[Eyp(y|x)[logpθ(y|x)p(y|x)]]

 

또한 위의 식을 몬테카를로를 이용하여 정리(expectation을 1/n, 1/k로 변경)하면 아래의 같은 수식을 얻을 수 있다. 

 

L(θ)1Nki=1Nj=1klogpθ(yi,j|xi)p(yi,j|xi)1Ni=1Nlogpθ(yi|xi)p(yi|xi)

 

위 수식을 Loss 함수로 생각하여 gradient descent한다면 KLD 출력값을 최소화하는 파라미터를 찾을 수 있다. 

 

7. Warm-up

 

함수를 모사하는 것에서 더 나아가 확률분포함수를 모사하는 것이 DNN의 목적이다. 함수를 모사할 때는 Deterministic target 값을 예측한다. 확률분포함수를 모사할 때는 수학적으로 더 설명이 가능하고 불확실성까지 학습할 수 있다. 

 

이러한 확률분포함수를 모사하기 위하여 MLE을 사용하고 이는 NLL을 최소화하는 것과 같았다. 또한 NLL은 Cross Entropy와 같은 수식이라는 것을 확인했다. 이를 최적화하기 위한 gradient descent를 수행하기 위해 back-propagation을 수행한다.