통계학 맛보기(뒷부분 어려움)
<목차>
1. 통계적 모델링
- 모수적/ 비모수적 방법론
- 확률분포 가정
2. 데이터로 모수 추정하기
- 표집분포/ 표본분포
3. 최대가능도 추정법(MLE)
- 로그가능도
- 예제: 정규분포, 카테고리 분포
- 딥러닝에서의 MLE
4. 확률분포의 거리 구하기
- 쿨백-라이블러 발산
모집단: 통계적 관찰이 되는 집단
모수: 모집단의 특성(모평균, 모분산)을 나타내는 값
통계적 모델링의 목표는 적절한 가정 위에서 확률분포를 추정(inference)하는 것임
하지만 유한한 개수의 데이터만 관찰해서 모집단의 분포를 정확하게 알아내는 것은 불가능하므로 근사적으로 확률분포를 추정할 수 밖에 없음(예측모형은 분포를 정확하게 맞추기보다 데이터와 추정 방법의 불확실성을 고려해서 위험을 최소화하는 게 목적임)
모수적(parametic) 방법론
: 데이터가 특정 확률분포를 따른다고 선험적으로(a priori) 가정한 후 그 분포를 결정하는 모수(parameter)를 추정하는 방법
ex) 정규분포를 가지고 확률분포를 모델링하는 경우: 평균, 분산이 모수임
비모수(nonparametic) 방법론
: 특정 확률분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀜
모수가 없는 게 아님. 모수가 무수히 많거나 바뀌는 경우임
기계학습의 많은 방법론이 비모수 방법론에 속함
확률분포 가정
- 확률분포 가정 방법 : 우선 히스토그램을 통해 모양을 관찰
- 데이터가 2개의 값(0 또는 1)만 가지는 경우 → 베르누이분포
- 데이터가 n개의 이산적인 값을 가지는 경우 → 카테고리분포
- 데이터가 [0,1] 사이에서 값을 가지는 경우 → 베타분포
- 데이터가 0 이상의 값을 가지는 경우 → 감마분포, 로그정규분포 등
- 데이터가 R(실수) 전체에서 값을 가지는 경우 → 정규분포, 라플라스분포 등
- 기계적으로 확률분포를 가정해서는 안 되며, 데이터를 생성하는 원리 먼저 고려
- 각 분포마다 검정하는 방법들이 있으므로 모수를 추정한 후에는 반드시 검정
데이터로 모수를 추정해보자!
- 데이터의 확률분포를 가정한 후 모수 추정
- 정규분포의 경우 모수는 평균 μ 과 분산 σ² 이고, 이를 추정하는 통계량은 아래와 같다
- 통계량(모수 추정치, 표본평균과 표본분산)의 확률분포는 표집분포(sampling distribution)라 부름
- 중심극한정리(Central Limit Theorem) : 표본평균의 표집분포는 N이 커질수록, 표본평균의 확률분포는 정규분포 N(μ, σ²/N)를 따른다. (모집단의 분포가 정규분포를 따르지 않아도 성립한다.) - 표본분표의 확률분포가 정규분포 따르는 것 아님
- 표집분포(sampling distribution)과 표본분표(sample distribution) 구분
표집분포 | - 표본 통계량이 이론적으로 따르는 확률분포 (어떻게 분포되어 있는가) - 이론적으로 표본평균이 중심극한정리(CLT)에 의해 정규분포를 따르는 것을 통해, 표본평균의 표집분포는 정규분포라는 것을 확일할 수 있음 |
표본분표 | - 확률표본(random sample)의 함수 - 모집단의 분포를 파악하기 위해 표본 통계랑을 구함. 하지만 같은 통계량이라더라도 표본을 추출할 때마다 그 값이 달라지기 때문에, 해당 표본 통계량이 모집단을 얼마나 잘 측정하는 지는 확인할 수 없음. - 이때 표본 통계량의 분포를 "표본 분포"라고 함 (해당 표본 통계량이 모집단을 얼마나 잘 측정하는 가) ex) 카이제곱분포, t분포, F분포, 감마분포 등 |
최대가능도 추정법
- Maximum likelihood estimation, MLE
- 표본평균이나 표본분산은 중요한 통계량이지만 확률분포마다 사용하는 모수가 다르므로 적절한 통계량이 달라지게 된다.
- 이론적으로 가장 가능성이 높은 모수를 추정하는 방법 중 하나는 최대가능도 추정법(MLE)
- 가능도 함수 L(θ;x) 는 모수 θ를 따르는 분포가 x를 관찰할 가능성을 뜻하지만 확률로 해석하면 안됨!
- 데이터 X가 주어진 상황에서 θ(변수)를 변형시킴에 따라 값이 바뀌는 함수. θ에 대한 대소비교가 가능하도록 하는 함수로 이해
- 데이터 X가 독립적으로 추출되었을 경우 곱을 사용할 수 있고, 이에 로그함수를 적용하여 로그 가능도를 최적화
로그가능도(Log likehood) 최적화
- 왜 로그가능도를 사용하는가? (로그가능도를 최적화하는 모수는 가능도를 최적화하는 MLE가 되는데도 불구하고 로그 가능도 함수 사용 이유)
- 데이터의 숫자가 많아지면 컴퓨터의 정확도로는 가능도를 계산하는 것은 불가능
- 데이터 독립일 경우, 로그를 사용하면 곱셈을 로그성질에 의해 덧셈으로 바꿀 수 있어서 컴퓨터 연산 가능
- 경사하강법에서 가능도를 최적화할 때 미분 연산을 사용하게 되는데, 로그가능도를 사용하면 연산량을 O(n²)에서 O(n)으로 줄여줌
- 대게의 손실함수의 경우 경사하강법을 사용하므로 음의 로그가능도(negative log-likelihood)를 최적화
- 최대가능도 추정법 예제 1: 정규분포를 따르는 X로부터 독립적인 표본 {x1, x2, ..., x_n}을 얻었을 때, 최대가능도 추정법으로 모수(평균과 분산) 구하기
계산 결과(MLE는 불편추정량 보장 X)
- 최대가능도 추정법 예제 2 : 카테고리 분류 Multinoulli(x; p1, …, p_d)를 따르는 확률변수 X로부터 독립적인 표본 {x1, …, x_n}을 얻었을 때, 최대가능도 추정법을 이용하여 모수를 추정
- 카테고리분포 : 0 또는 1 값만 가지는 K개 베르누이 분포 벡터를 가지는 다변수 확률 분포(다변수 확률 변수의 각 원소 중 하나만 1이 될 수 있다). K개의 값 중 하나가 나오는 확률 변수의 분포(ex. 주사위)
- 카테고리분포 모수의 제약식 :
- 카테고리분포에서의 모수 : 정규분포는 분산과 평균이 모수였는데, 카테고리분포의 경우 각 차원(1~d)에서 어떤 값이 0 또는 1이 될 확률을 의미한다.
- 카테고리분포의 likelihood 함수
구하고자 하는 MLE는 카테고리 분포 모수 제약식을 만족하면서 위의 목적식을 최대화하는 것
딥러닝에서 최대가능도 추정법
- 최대가능도 추정법을 이용해서 기계학습 모델을 학습할 수 있다
- 딥러닝 모델의 가중치 θ = (W(1), …, W(L))라 표기했을 때, 분류 문제에서 소프트맥스 벡터는 카테고리분포의 모수(p1, …, p_k)를 모델링
- 원핫벡터로 표현한 정답레이블 y = (y1, …, y_k)을 관찰데이터로 이용해, 확률분포인 소프트맥스 벡터의 로그가능도를 최적화(이 방향으로 딥러닝의 모수인 세타를 학습시킬 수 있음)
확률분포의 거리 구하기
- 기계학습에서 사용되는 손실함수들은 모델이 학습하는 확률분포와 데이터에서 관찰되는 확률분포의 거리를 통해 유도
- 두 확률분포 사이의 거리 계산 함수
- 총변동 거리(Total Variation Distance, TV)
- 쿨백-라이블러 발산(Kullback-Leibler Divergence, KL)
- 바슈타인 거리(Wasserstein Distance)
- 쿨백-라이블러 발산
- 분류 문제에서 정답레이블을 P, 모델 예측을 Q라 두면 최대가능도 추정법은 쿨백-라이블러 발산을 최소화하는 것과 같다
확률분포 사이의 거리를 최소화하는 것과 로그 가능도 함수를 최대화시키는 것 사이에 밀접한 관련 있음
<Further Question>
1. 확률과 가능도의 차이는 무엇일까요? (개념적인 차이, 수식에서의 차이, 확률밀도함수에서의 차이)
- 개념적인 차이
- 확률 : 어떤 사건의 발생 확률은 그것이 일어날 수 있는 경우의 수 대 가능한 모든 경우의 수의 비. (단, 모든 사건의 일어날 가능성 동일)
- 가능도 : 어떤 확률변수의 표집값과 일관되는 정도를 나타내는 값. 주어진 표집값에 대한 모수의 가능도는 이 모수를 따르는 분포가 주어진 관측값에 대하여 부여하는 확률. 가능도 함수는 확률 분포가 아니며, 합하여 1이 되지 않을 수 있습니다.
- 수식에서의 차이
- 확률
- 가능도 :
- 확률
- 확률 밀도 함수에서의 차이
- 확률
- 가능도
- 확률 질량 함수의 경우 : 확률 = 가능도
- 확률
2. 확률 대신 가능도를 사용하였을 때의 이점은 어떤 것이 있을까요?
이론적으로 가장 가능성이 있는 모수를 추정할 수 있다.
딥러닝에서 확률분포를 못하니까 가능도만 사용가능
3. 다음의 code snippet은 어떤 확률분포를 나타내는 것일까요? 해당 확률분포에서 변수 theta가 의미할 수 있는 것은 무엇이 있을까요?
import numpy as np
import matplotlib.pyplot as plt
theta = np.arange(0, 1, 0.001)
p = theta ** 3 * (1 - theta) ** 7
plt.plot(theta, p)
plt.show()
n = 10, k = 3, p = θ인 이항 분포를 나타냅니다.