[부스트캠프 AI Tech][Week02]Day10 - 시각화 도구 / 통계학 맛보기

Carvin·2021년 5월 11일
0

Week02 - AI Math

[Day 10] - 시각화 도구 / 통계학 맛보기

1. 시각화 도구

python 시각화 라이브러리인 matplotlibseaborn 에 대한 내용은 추후에 보다 자세하게 다룰 예정입니다..!

데이터 분석을 위한 방법 중 하나로 데이터 시각화가 있습니다.
기존 데이터를 시각화함으로써 데이터 자체에서 볼 수 없었던 특징과 인사이트를 추론할 수 있고 처리된 데이터 혹은 모델 결과를 시각화함으로써 보다 전달력있는 자료를 만들 수 있습니다.
특히 시각화는 데이터 분석 과정에서 EDA(Exploratory Data Analysis),탐색적 데이터 분석에서 주로 사용됩니다. EDA가 데이터 시각화 자체를 의미하는 것은 아니지만, 주어진 데이터 분포 및 값을 검토하고 데이터가 표현하는 현상을 이해하기 위한 EDA 과정에서 시각화가 효과적으로 활용됩니다.
시각화는 데이터 분석을 위한 가장 기초적인 단계로 python에서는 다양한 라이브러리가 존재합니다. 그 중에서 가장 대중적으로 많이 쓰이는 matplotlib, seaborn 모듈에 대해 알아보겠습니다.


2. 통계학 맛보기

모수의 개념과 모수를 추정하는 방법으로 최대가능도 추정법이 있습니다. 정규분포, 카테고리분포에서의 예제로 최대가능도 추정법을 설명합니다.

표본분포와 표집분포, 가능도(likelihood)와 확률 등 헷갈릴 수 있는 개념들이 많이 있으므로 각각의 정확한 의미와 차이점을 충분히 공부해야 합니다.

최대가능도 추정법을 통해서 정답에 해당하는 확률분포와 모델이 추정하는 확률분포의 거리를 최소화함으로써 모델을 학습시킬 수 있으며, 이 원리는 딥러닝/머신러닝에서 아주 유용하게 사용되기 때문에 확실하게 이해하는 것이 좋을 것 같습니다.

1) 모수

모수는 모집단의 특성(모평균,모분산 등..)을 나타내는 값으로, 이 값은 모집단을 전수조사해야만 알수있는 값입니다. 그러나 실질적으로 모집단의 크기와 범위가 너무 방대하기에 전수조사는 불가능에 가까우며 대신에, 일부를 의미하는 표본조사를 함으로써 표본평균, 표본분산 등을 구하고 모평균, 모분산 등을 추정하는 과정을 가지게 됩니다.

통계적 모델링은 적절한 가정 위에서 확률분포를 추정(inference)하는 것이 목표이며, 기계학습과 통계학이 공통적으로 추구하는 목표입니다. 그러나 표본집단에서 모집단의 분포를 정확히 알아내는 것은 불가능하므로, 근사적으로 확률분포를 추정할 수 밖에 없습니다.

❗️예측 모형의 목적은 분포를 정확하게 맞추는 것보다는 데이터와 추정 방법의 불확실성을 고려해서 위험을 최소화하는 것이라고 합니다.

  • 모수적 방법론(parametric method): 데이터가 특정 확률분포를 따른다고 선험적으로(a priori) 가정한 후 그 분포를 결정하는 모수(parameter)를 추정하는 방법
  • 비모수 방법론(nonparametric method): 특정 확률분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수를 유연하게 바꾸는 방법(기계학습의 많은 방법론은 비모수 방법론에 속함)

2) 확률분포 가정하기

  • 베르누이분포: 데이터가 2개의 값(0, 1)만 가지는 경우
  • 카테고리분포: 데이터가 n개의 이산적인 값을 가지는 경우
  • 베타분포: 데이터가 [0, 1] 사이에서 값을 가지는 경우
  • 감마분포, 로그정규분포 등: 데이터가 0이상의 값을 가지는 경우
  • 정규분포, 라플라스분포 등: 데이터가 R 전체에서 값을 가지는 경우

-> 기계적으로 확률분포를 가정해서는 안되며, 데이터를 생성하는 원리를 먼저 고려하는 것이 원칙입니다.

3) 모수 추정하기

확률분포를 가정했다면 모수를 추정해볼 수 있습니다. 통계량의 확률분포를 표집분포(sampling distribution)라 부르며, 특히 표본평균의 포집분포는 N이 커질수록 정규분포 𝒩(μ,σ2/N)𝒩(μ, σ2/N)를 따르게 됩니다.

먼저 모집단과 표본집단 사이에 존재하는 비슷하면서도 다른 중심극한정리대수의 법칙 을 먼저 짚고 넘어가겠습니다.

❗️ 중심극한정리란 다음과 같습니다. 참고자료

'평균이 μ\mu 이고 표준편차가 σ\sigma 인 임의의 분포'를 이룬다고 할 때, 모집단으로부터 추출된 표본의 '표본의 크기 n이 충분히 크다' 면 표본 평균들이 이루는 분포는 '평균이 μ\mu 이고 표준편차가 σn\frac {\sigma}{\sqrt{n}} 인 정규분포'에 근접한다.

여기서 중요한 부분은, 표본의 크기 n이 크다는 것이 단순히 모집단의 크기가 가까울수록을 의미하는 것이 아닙니다. 중심극한정리가 말하고자 하는 것은, 모집단에서 표본크기가 n인 표본을 여러번 반복해서 추출했을 때, 각각의 표본 평균들이 이루는 분포가 정규분포에 가까워진다는 것을 의미합니다.

❗️ 큰 수의 법칙이란 다음과 같습니다. 참고자료

'대수의 법칙' 혹은 '라플라스 정리'라고도 하는 큰 수의 법칙은 표본집단의 크기가 커지면 표본집단의 표본평균이 모평균에 가까워진다.

보통 중심극한정리에서 착각한 내용이 바로 큰 수의 법칙이라고 할 수 있습니다. 즉, 주사위를 굴려 나온 수를 의미하는 표본집단은 주사위를 많이 던질수록 3.5에 가까운 표본평균을 이루게 될 것입니다. 또한 앞서 Day09에서 다룬 몬테카를로 샘플링이 큰 수의 법칙을 보여주는 대표적인 계산이라고 합니다.

4) 최대가능도 추정법

표본평균, 표본분산은 중요한 통계량이지만 확률분포마다 사용하는 모수(parameter)가 다르므로 적절한 통계량이 달라지게 됩니다. 그러므로 표본평균과 표본분산만 가지고 확률분포를 추정하는 것은 위험합니다.

이론적으로 가장 가능성이 높은 모수를 추정하는 방법 중 하나는 최대가능 추정법(Maximum Likelihood Extimation, MLE) 입니다.

❗️likelihood는 모수 θθ 를 따르는 분포가 xx 를 관찰할 가능성을 뜻하지만 확률로 해석하면 안됩니다.

이 때, 데이터 집합 XX (확률변수?)가 독립적으로 추출되었을 경우, 로그가능도를 최적화합니다.

사실, 로그가능도를 최적화하는 모수와 기본 가능도를 최적화하는 모수는 똑같이 MLE를 의미합니다. 그럼에도 불구하고 로그가능도를 최적화하는 이유는 computation 문제에 있습니다.
데이터가 수억단위의 크기가 될 때에는 컴퓨터의 정확도로 가능도를 계산하는 것은 불가능하다고 합니다. 하지만 로그가능도를 사용하게 되면 곱셈이 덧셈으로 치환되기 때문에 연산이 가능해지고 최적화가 가능해집니다.

추가적으로 경사하강법으로 가능도를 최적화할 때, 미분 연산을 사용하게 되는데 로그가능도를 사용하면 연산량이 O(n2)O(n2) 에서 O(n)O(n)으로 줄어들게 됩니다. 대부분의 손실함수의 경우, 경사하강법이 적용되므로 음의 로그가능도(negative log-likelihood)를 최적화하게 됩니다.

5) 최대가능도 추정법 예제: 정규분포

정규분포를 따르는 확률변수 XX 로부터 독립적인 표본 xi,...,xn{x_{i},...,x_{n}} 을 얻었을 때, 최대가능도 추정법을 이용하여 모수를 추정하면 다음과 같은 본래의 MLE로 모수를 추정할 수 있습니다.

정규분포를 가지는 확률변수의 분산 𝜎2=1은 알고 있으나 평균 𝜇를 모르고 있어 이를 추정해야 하는 문제가 있습니다. 확률변수의 표본을 𝑥1=1를 가지고 있을 때, 어떤 𝜇 값이 가장 가능성(가능도)이 큰 지 MLE 통해 구할 수 있습니다. 다음 그림에는 𝜇=−1, 𝜇=0, 𝜇=1, 세 가지 후보를 제시하며 이 세 가지 𝜇 값에 대해 1이 나올 확률밀도의 값이 바로 가능도입니다.

  • 𝑁(𝑥;𝜇=−1) 이라는 확률분포에서 𝑥=1이 나올 가능도(확률밀도)는 0.05
  • 𝑁(𝑥;𝜇=0)이라는 확률분포에서 𝑥=1이 나올 가능도(확률밀도)는 0.24
  • 𝑁(𝑥;𝜇=1)이라는 확률분포에서 𝑥=1이 나올 가능도(확률밀도)는 0.40

그림에서 볼 수 있듯이 𝜇=1일 경우의 가능도가 가장 큽니다. 따라서 최대가능도 추정법에 의한 추정값은 𝜇̂ MLE=1 입니다.

로그가능도

  • 평균으로 미분
  • 분산으로 미분

6) 최대가능도 추정법 예제: 카테고리 분포

카테고리 분포 Multinoulli(x;p1,...,pd)Multinoulli(x; p1, ..., pd) 를 따르는 확률변수 XX 로부 터 독립적인 표본 xi,...,xn{x_{i},...,x_{n}} 을 얻었을 때 베르누이 분포를 가정하여 최대가능도 추정법을 이용할 수 있습니다.
정규분포에서 사용되는 모수는 평균과 분산이 통계량에 해당되었지만 카테고리분포에서는 각 class의 차원에서 0또는 1이 될 확률을 의미하게 됩니다. p1,...,pdp_1, ..., p_d의 합은 1이 되야하는 성질이 있습니다.

해당 식을 정리하면 각 데이터 xix_i에 존재하는 kk의 개수를 구하는 식으로 볼 수 있습니다.

라그랑주 승수법을 통해 최적화 문제를 풀 수 있다. 이 때, 카페고리분포의 MLE는 전체 데이터 개수 중 kk의 개수의 비율을 구하는 것으로 볼 수 있습니다.


Further Question

1) 확률과 가능도의 차이는 무엇일까요? (개념적인 차이, 수식에서의 차이, 확률밀도함수에서의 차이)

(1) 개념적인 차이
  • 확률
    • 전체 사건 중 해당 사건이 발생할 실질적인 가능성
    • 확률은 관측값 또는 관측 구간이 주어진 확률분포 안에서 얼마만큼 나타날 수 있는가에 대한 가능성
    • 주어진 모델 파라마티 값과 어떠한 관찰된 데이터에 대한 참조 없이, 랜덤 출력에 대한 일어날 뻔한 가능성
  • 가능도
    • 모수 θθ 를 따르는 분포가 xx 를 관찰할 가능성
    • 고정된 관측값이 어떠한 확률분포에서 어느정도의 확률로 나타나는지에 대한 가능성
    • 주어진 특정한 관찰된 데이터를 기반으로 하여 모델 파라미터 값들이 될 뻔한 가능성
(3) 확률밀도함수에서의 차이
  • 확률: 고정된 확률분포에서 해당 데이터(사건)가 발생할 가능성 또한 고정되어 있음
  • 가능도: 주어진 데이터(사건)를 기반으로 각 데이터가 나타날 가능도를 구하는 것으로, 구해지는 확률분포에 따라 데이터들은 다른 가능도를 가지게 됨

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()

0개의 댓글