01-04 연속확률분포
def) 연속확률분포(Continuous Probability Distribution): 확률변수 $X$가 취할 수 있는 값이 무한한, 즉 셀 수 없을 경우의 확률변수에 대한 확률분포
이산확률분포와 함께 연속확률분포도 정리해보겠습니다. 이산확률분포가 셀 수 있는 확률변수에 대한 분포를 나타냈다면, 연속확률분포는 무수히 많아서 셀 수 없는 확률변수에 대한 기법입니다. 대표적인 예로 이번 장에서 가장 중요하다고도 볼 수 있는 정규분포가 있습니다. 다시 말하면, 특정한 값 $x$에 대한 확률 값을 표현할 수 없기 때문에, 일반적으로 어떤 구간 $a\ge x\ge b$에 대한 확률을 나타냅니다.
확률밀도함수
def) 확률밀도함수(Probability Density Function, PDF): 연속확률변수가 주어진 구간 내에 포함될 확률을 출력하는 함수
cf) 이산확률변수에는 확률질량함수(Probability Mass Function, PMF) 개념이 존재합니다.
연속확률분포의 성질
- 확률변수 $X$가 어떠한 구간에 속할 확률은 0과 1 사이입니다.
- 확률변수 $X$가 값을 가질 수 있는 모든 구간의 확률을 합치면 1이 됩니다(전체 면적이 1입니다). 즉, 각 구간이 서로 겹치지 않는다는 가정 하에 모든 구간의 확률을 다 더하면 1이 나와야 합니다. 수식으로 풀어서 쓰면 아래와 같습니다.
$$\int_{-\infty}^{\infty} f\left(x\right)\ dx=1$$
$$P\left(a \ge X \ge b\right)=\int_{-\infty}^{\infty} f\left(x\right)\ dx$$
균등 분포
def) 균등 분포(Uniform Distribution): 모든 확률변수에 대해 일정한 확률을 가지는 확률 분포
정규분포
def) 정규분포(Normal Distribution): $X \sim N\left(\mu, \sigma\right)$
통계학에서 가장 중요하게 다루는 확률분포이자 머신러닝에서도 핵심적인 부분을 담당하는 분포로 가우시안 분포라고도 합니다. 평균 $\mu$와 표준편차 $\sigma$를 모수로 가지며, 특히 $\mu=0$, $\sigma=1$인 케이스를 표준 정규분포라고 부릅니다.
정규분포의 확률밀도함수
평균 $\mu$와 분산 $\sigma^2$에 의해 결정되는 분포의 모양은 다음과 같습니다. ($-\infty<x<\infty;\sigma >0$)
$$f\left(x\right)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{1}{2\sigma^2}\left(x-\mu\right)}$$
현실 세계의 많은 데이터는, 이유는 뭔지 몰라도 상당수가 정규분포에 가깝게 표현되는 경향이 있습니다. 이 때문에 현실 세계에서 수집된 데이터의 분포는 이 정규분포를 이용해서 근사하게 됩니다.
지수분포
이산확률분포에 푸아송 분포가 있다면 연속확률분포에는 이와 비슷한 지수분포가 존재합니다. 푸아송 분포가 일정 시간 동안 발생하는 사건의 횟수 에 대한 확률분포라면, 지수분포는 다음 사건이 일어날 때까지의 대기 시간 개념으로 접근합니다. 단위 시간 동안 평균 사건 발생 횟수를 $\lambda\left(\lambda > 0\right)$라고 하면, 확률밀도함수는 아래와 같습니다.
$$f\left(x\right)=\lambda e^{-\lambda x} , x\ge 0$$
지수분포가 가지는 중요한 특성으로 무기억성(memoryless)이 있습니다. 무기억성을 가지는 분포는 특정 시점(확률변수)에서의 확률, 즉 소요되는 시간이 과거로부터 영향을 받지 않음을 의미합니다. 다만, 현실의 데이터는 과거의 소요된 시간의 데이터가 현재 시점에서의 예상 소요 시간의 데이터에 영향을 미치지 말라는 법은 없으므로, 범용적으로 모델링하기에는 지나치게 단순하다는 한계가 존재합니다.
이미지 데이터에 대한 확률 분포
ML, 특히 딥러닝(DL) 모델에는 생성 모델이라는 기법을 도입하곤 합니다. 이 모델은 입력받은 이미지 데이터셋의 분포를 근사해, 실제로 있을 법한 가상의 이미지를 생성할 수 있습니다. 사람의 얼굴에 통계적인 평균치가 존재한다는 것이 이러한 모델의 골자입니다.
참고로 생성 모델은 딥러닝 모델의 생성적 적대적 신경망(GAN, Generative Adversarial Network) 모델에서 실제 사진과 생성 모델이 만든 가짜 이미지 중 어떤 것이 진짜 이미지인가를 판가름할 수 있게 모델을 훈련시킬 때 이용됩니다.
파이썬에서의 구현
파이썬으로 그려본 정규분포 그래프는 아래와 같습니다. 세 그래프 중 파란색은 평균이 0, 표준편차가 1이므로 표준정규분포의 그래프가 되겠습니다. 먼저 numpy
라이브러리로 함수를 직접 정의해서 그려보면 아래와 같습니다.
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(123)
mu1, mu2, mu3 = 0, 1, 2.5
sigma1, sigma2, sigma3 = 1, 2, 7
x1 = np.linspace(-9, 9, 1000)
x2 = np.linspace(-9, 9, 1000)
x3 = np.linspace(-9, 9, 1000)
y1 = (1 / np.sqrt(2 * np.pi * sigma1**2)) * np.exp(-(x1-mu1)**2 / (2 * sigma1**2))
y2 = (1 / np.sqrt(2 * np.pi * sigma2**2)) * np.exp(-(x2-mu2)**2 / (2 * sigma2**2))
y3 = (1 / np.sqrt(2 * np.pi * sigma3**2)) * np.exp(-(x3-mu3)**2 / (2 * sigma3**2))
plt.figure(figsize=(16, 9))
plt.plot(x1, y1, label=r'N(0, $1^2$)')
plt.plot(x2, y2, label=r'N(1, $2^2$)')
plt.plot(x3, y3, label=r'N(2.5, $7^2$)')
plt.xlabel(r'$x$', fontsize=12)
plt.ylabel(r'$f(x)$', fontsize=12)
plt.title('Normal Distribution with different ' + r'$\mu$'+', '+ '$\sigma$')
plt.grid()
plt.legend(loc='upper left')
plt.show()
한편, 또다른 과학연산용 라이브러리인 SciPy에서도 norm
패키지를 이용해 원하는 정규분포를 만들 수 있습니다. 이 패키지의 pdf
메서드는 평균을 loc
에, 표준편차를 scale
에 할당해 인수를 지정하면 그 정규분포의 확률밀도함수를 구해줍니다.
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
np.random.seed(123)
mu1, mu2, mu3 = 0, 1, 2.5
sigma1, sigma2, sigma3 = 1, 2, 7
x1 = np.linspace(-9, 9, 1000)
x2 = np.linspace(-9, 9, 1000)
x3 = np.linspace(-9, 9, 1000)
plt.figure(figsize=(16, 9))
plt.plot(x1, norm.pdf(x1, loc=0, scale=1), label=r'N(0, $1^2$)')
plt.plot(x2, norm.pdf(x2, loc=1, scale=2), label=r'N(1, $2^2$)')
plt.plot(x3, norm.pdf(x3, loc=2.5, scale=7), label=r'N(2.5, $7^2$)')
plt.xlabel(r'$x$', fontsize=12)
plt.ylabel(r'$f(x)$', fontsize=12)
plt.title('Normal Distribution with different ' + r'$\mu$'+', '+ '$\sigma$' +'\nwith SciPy library')
plt.grid()
plt.legend(loc='upper left')
plt.show()
4일차 후기
사람이 습관 붙이기까지 보통 60일 정도 걸린다고 하는데, 4일차 만에 힘에 부치기 시작합니다... 자기만의 페이스 조절이 필요하다고 새삼 느끼는 시점입니다.
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
[패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr](http://bit.ly/3Y34pE0)
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'[패스트캠퍼스 환급챌린지]딥러닝 > Chapter 1. 통계' 카테고리의 다른 글
[패스트캠퍼스][환급 챌린지]Chapter 1. 딥러닝을 위한 통계 01-06 독립변수와 종속변수 (0) | 2023.02.25 |
---|---|
[패스트캠퍼스][환급 챌린지]Chapter 1. 딥러닝을 위한 통계 01-05 표준정규분포 (0) | 2023.02.24 |
[패스트캠퍼스][환급챌린지] Chapter 1. 딥러닝을 위한 통계 01-03 이산확률분포 (1) | 2023.02.22 |
[패스트캠퍼스][환급 챌린지]Chapter 1. 딥러닝을 위한 통계 01-02 확률변수와 확률분포 (0) | 2023.02.21 |
[패스트캠퍼스][환급챌린지]Part 1. 딥러닝을 위한 통계: 01-01 확률 개요 (0) | 2023.02.20 |