[아 맞다] 시리즈 첫 번째. 앞으로는 갑자기 디테일이 생각이 안나는 머신러닝 개념들에 대해 풀어보는 시간을 가지고자 한다. 그 시작으로는 Maximum Likelihood Estimation(MLE)에 대한 내용이다.
들어가면서
우리가 ML에서 하고자 하는 것은 최적의 parameters θ를 찾기 위함이다. 따로 다룰지는 모르겠으나, prior, posterior, likelihood에 대해 식만 간단히 정리해 보자.
- prior : P(θ)
- posterior : P(θ|D)
- likelihood : P(D|θ)
θ의 최적값을 찾기 위해서 사용되는 것 중 대표적인 것은 optimize function, 주로 loss function을 optimize 하는 것이다. 즉 모델을 피팅하기 위해서 우리가 하고자 하는 일은 loss(L)를 최소화할 수 있는 상태의, 최적의 θ를 찾는 것이다.
- θ = argmin L(θ)
머신러닝 model fitting의 목적인 최적의 θ를 찾는 다른 방법들이 있으며, Likelihood를 사용해 θ를 최적화하는 방법이 MLE, posterior를 사용해 θ를 최적화하는 방법이 MAP이다.
optional - 사전지식
그러려니 하고 넘어가도 되는 개념에 대해 조금 더 설명하는 부분이다.
- equality constrained optimization
- θ에 규제를 두고 싶어하는 방법이다. loss L(θ)와, θ의 규제가 되어줄 g(θ)라는 함수가 있다고 가정하자. 그렇다면 이 두 함수가 만나는 부분이 최적의 θ가 되는 것이다. 아래 그림은 머피의 머신러닝1 에서 따온 그림이다.
- Lagrange multipliers
- 미분값의 방향이 같은 두 벡터를 찾는 방법으로, 두 벡터의 기울기 방향이 같을 때(==평행) 접하는 부분을 찾고 싶을 때 쓴다. 여기서는 equality constrained optimization을 풀기 위해 쓰인다.
- 같은 기울기 방향을 찾고 싶기 때문에 임의의 두 함수 L(θ), h(θ)에 대해서 다음과 같은 식을 만족한다. 평행하면 됐지 벡터 크기까지 같을 필요는 없기 때문에 크기 차는 λ로 나타낼 수 있다.
- ∇L(θ) = λ * ∇h(θ)
- 이 식을 Lagrangian으로 표현하면 아래와 같이 쓸 수 있다.
- 이걸 equality constrained 상황에 적용해 보면 새로운 Loss 함수를 그릴 수 있게 된다.
- L(θ,λ) = L(θ) + λ * h(θ)
- ∇L(θ,λ) = 0 일 때의 θ가 최적값이 된다.
- ∇L(θ,λ) = ∇L(θ) + λ * ∇h(θ)
- h(θ) 값이 여러개라면 λ * h(θ) -> λ * ∑h(θ) 이 된다.
- L(θ,λ) = L(θ) + λ * h(θ)
MLE
- Maximum Likelihood Estimation. ML에서 많은 경우 optimize 할 때 사용되는 개념이다.
- 이름에 likelihood가 들어가는 것과 다르게 실제로는 prior를 argmax한 값이다.
- θ^ = argmax p(D|θ) -----(1)
MLE 구해보기
likelihood p(D|θ)를 다르게 나타내면 ∏ p(y|x,θ) 으로 표현할 수 있다. 이 식은 D가 independently sampled, identically distributed라는 전제 하에 성립한다. (== 데이터 샘플 D가 특정 bias나 조건 없이 랜덤 하게 샘플링된 D라는 뜻)
- p(D|θ) = ∏ p(y|x,θ)
여기에 log를 씌우면 log likelihood가 된다.
- l(θ) = log p(D|θ) = ∑ logp(y|x,θ)
여기서 MLE를 구해보자. log likelihood가 최대가 되는 θ를 구하는 일이므로 아래와 같이 쓸 수 있다. (1) 수식과 같은 꼴이 됐다.
- θ_mle = argmax ∑ logp(y|x,θ)
우리가 M문제를 풀 때 (log) likelhood를 maximize하는 형태로 문제를 푸는 경우는 드물다. loss를 minimize 하는 게 더 친숙한 형태다. 그러니 이번엔 NLL (Negative Log Likelihood) 꼴로 식을 바꿔보자. (== log likelihood에 - 붙이기)
- θ_mle = argmin -∑ logp(y|x,θ) -----(2)
아하, MLE는 NLL를 minimize하는 형태로 표현할 수 있구나. 이말은 즉, Loss가 최소화되는 θ를 구하는 형태로 귀결된다는 뜻이다. 그렇다는 건 Loss의 gradient == 0 일 때의 θ를 찾는 것으로 해석할 수 있다.
- θ_mle ~== dLoss/dθ = 0을 만족시키는 θ
상황별 MLE
이번엔 distribution이 각각 Bernoili, Categorical, univariate Gaussian, Multivariate Gaussian 일 때의 MLE를 구해보자. 각 distribution에 따른 MLE에 대한 세부 설명은 아래에 기재해 두었다.
Bernoulli | Categorical | |
distribution 예시 | 동전던지기. 앞(Y=1)일까 뒤(Y=0)일까? | 6면체 주사위를 N번 던졌을 때 주사위 번호가 3이 나올 확률은 몇일까? |
NLL(θ) | - [N1* logθ + N0*log(1-θ)] | - ∑Nk * logθk, ∑θ = 1 |
θ_MLE | N1 / N | Nk / N |
Bernoulli
- 베르누이에 대해 간단 스키밍을 해보자. 가장 대표적인 예시로는 동전 던지기가 있다.
- log likelihood : N1*log(θ1) + N0*log(θ0)
- N1 : Y=1이 나온 횟수
- N0 : Y=0이 나온 횟수
- θ : p(Y = 1)으로 가정한다. 현 예시에서는 앞이 나올 확률.
- NLL(θ) = - [N1* logθ + N0*log(1-θ)]
- NLL을 미분해보자. MLE를 위해서 dNLL(θ) / dθ =0을 만족하는 θ를 찾아야 한다.
- d NLL(θ) / dθ = -[N1/θ - N0/(1-θ)] = 0
- θ_mle = N1/(N0 + N1) = N1 / N
- θ_mle를 구했다. 해당 식을 해석하면 θ을 '앞이 나올 확률'로 가정했기 때문에 (앞이 나온 횟수) / (전체 횟수) 가 된다.
Categorical
- categorical distribution을 설명할 때 먼저 나오는 예시는 주사위다. 예를 들어 주사위를 N번 던졌을 때 주사위 번호가 3이 나올 확률은 몇일까?
- log likelihood : ∑Nk * logθk
- Nk : k 가 나온 횟수
- θk : p(Y = k)로 가정한다. k가 나오는 확률. (ex. θ3 : 3이 나올 확률)
- ∑θ = 1 : 주사위가 1이 나올 확률 + 2가 나올 확률 + ... + 6이 나올 확률 = 1
- NLL(θ) = - ∑Nk * logθk
- 여기서 알아야할 점은 우리의 θ는 ∑θ = 1 를 만족하고 있다는 사실이다. loss 수식에 ∑θ = 1 (-> 1-∑θ = 0)이라는 것도 반영해서 최적화를 해야 하는 것이다. ( == equality constraint)
- 그렇기 때문에 loss 함수에 Lagrange multipliers를 적용시켜 식을 살짝 변형시킨다.
- L(θ,λ) ~= - ∑Nk * logθk - λ(1-∑θ)
- 미분하자. MLE를 위해서 dL(θ) / dθ =0을 만족하는 θ를 찾아야 한다.
- dL / dθk = - Nk / θk + λ = 0
- Nk = λ * θk
- N = ∑Nk = ∑ λ * θk = λ *∑θk = λ
- 오, λ는 N이다.
- θ_mle = Nk / λ .
- 위에서 구한 λ = N을 대입하면,
- θ_mle = Nk / N
- Nk = λ * θk
- θ_mle를 구했다. 해당 식을 해석하면 (k가 나온 횟수) / (전체 횟수) 가 된다.
단점
MLE는 오버피팅 나기 쉽다. 위 식들을 봤을 때 MLE는 '횟수' N에 대한 식으로 표현이 되기 때문에, 데이터가 등장한 횟수 N에 대해 민감해진다. 이런 단점을 보완하기 위해 L2 Regularization이나 weight decay, MAP Estimation과 같은 방법론이 대체제로 제안되고는 한다. 따라서 다음 [아 맞다]에선 언젠가 MAP에 대해 정리해 보도록 하겠다.
참고
머피의 머신러닝1
'머신러닝 > 아맞다' 카테고리의 다른 글
EM(Expectation-Maximization) 알고리즘의 완벽한 기초 (3) | 2023.08.13 |
---|---|
[짧] KNN(K Nearest Neighbor) 분류모델 이론 (0) | 2023.08.06 |
Lagrange Multiplier 이론 정리 (0) | 2023.07.29 |
Exponential Family 개념 정리 (0) | 2023.06.24 |
LDA(선형판별분석) 에 대한 완벽 개념 (0) | 2023.06.04 |