통계학은 인공지능과 겹치는 부분이 매우 많고, 쉬운 개념도 잊기 쉽다.
매우 기초적인 지식은 알고 있다고 가정하고, 머신러닝을 수행하기 위한 내용을 공부해보자.
학부 과정에서 배운 확률과 통계, 데이터마이닝 내용과 책 'Mathematics for Machine Learning'을 참고했다.
목차
1. Statistics
통계학이란 자료(data)에 근거하고, 불확실성에 대비한 합리적 의사결정을 위한 학문이다.
특히 빅데이터, 머신러닝, 딥러닝과 관련이 많다.
확률과 통계라는 과목에서 다루는 내용의 범위는 '자료(data) 수집 → 모형(model) 설정 → 추정(Prediction) → 검정(test)' 까지이다.
통계학은 크게 두 가지로 분류된다.
- Descriptive Statistics (기술 통계) - Predictive Statistics (예측 통계) 내용을 포함한다 가정
- 데이터가 완전히 주어지지 않은 상태에서, 데이터에 대한 정보를 공유하고 싶을 때 사용한다.
- 데이터를 요약하는 수를 나타낸다.
- Inferential Statistics
- 어떤 일에 대한 결론을 짓는 데 사용한다.
- 데이터(모집단)에서 표본(샘플)을 뽑았을 때, 그것을 통해 전체를 추론할 때 사용한다.
그러면, 자료를 표현하는 방법에 대해 알아보자.
1) Central Tendency
Central Tendency (Average 개념)부터 알아보자. 데이터를 대표하는 값으로 생각해볼 수 있다.
이는 표본의 중심 부분을 나타내는 값으로, 대표적으로 (Arithmatic) Mean(평균), Median(중간값), Mode(최빈값)가 있다.
각각의 개념은 알고있다고 가정하고, 가장 많이 사용하는 Mean 말고도 Median과 Mode는 언제 유용한걸까?
예를들어, 다음과 같은 data가 있다고 하자.
(3, 3, 3, 3, 3, 100)
이때 Mean은 115/6 = 19.17
Median과 Mode는 3이다.
어떤 값이 data를 잘 표현할까?
직관적으로 보더라도 3이 전체 데이터를 잘 표현한다.
이렇게, 다른 값들과 매우 차이를 보이는 'outlier' 값에 대해 mean 값은 영향을 크게 받지만, median은 영향을 많이 받지 않는다.
따라서, 데이터의 종류에 따라, 해결하려는 task의 종류에 따라 central tendency를 어떤 값으로 나타내야 할지 정해주어야 한다.
(1) Sample vs Population
Sample(표본)은 전체 Population(모집단) 중에 몇 개를 뽑은 것을 말한다.
모집단 전체에 대해 조사를 하는 것이 쉽지 않기 때문에, 보통 표본을 뽑아 그것에 대한 평균 등을 계산한다.
보통 통계학에서 \(\mu\)는 Population Mean을 뜻하고, \(\overline{x}\)는 Sample Mean을 뜻한다.
샘플 각각이 나타내는 값을 \(x_1, x_2, x_3, \cdots \)라 할때,
Sample Mean은 다음과 같이 계산한다.
\( \overline{x} = \frac{1}{n} \sum\limits_{i=1}^n x_n \)
Population Mean은 다음과 같이 계산한다.
\( \mu = \frac{1}{N} \sum\limits_{i=1}^N x_n \)
이때, N은 모집단에 포함된 요소 전체 개수를 나타낸다.
샘플을 뽑았는가, 전체에 대해 진행하는가에 따라 데이터 개수만 바뀌는 것으로 볼 수 있다.
2) Dispersion
Dispersion이란, 데이터가 얼마나 흩어져있는지(분산되어있는지)를 표현하는 개념이다.
dataset 두개를 비교해보자.
하나는 (2, 2, 3, 3)이고, (0, 0, 5, 5)이다.
직관적으로 첫 번째 데이터셋의 데이터들이 더 모여있고, 두 번째 데이터셋의 데이터들이 더 펴져있음을 알 수 있다.
이는 평균으로부터 얼마나 떨어져있는가로 수치적으로 계산이 가능하다.
첫 번째 데이터의 평균은 \( \mu = (2 + 2 + 3 + 3)/4 = 2.5 \)이고,
두 번째 데이터의 평균은 \( \mu = (0 + 0 + 5 + 5) / 4 = 2.5 \)로 같다.
데이터가 얼마나 흩어져있는지는 Variance로 나타낸다.
마찬가지로 Population Variance는 \(\sigma^2\)으로, Sample Variance는 \(s^2\)으로 나타낸다.
제곱이 붙은 이유는, Standard Deviation을 제곱한 값이 Variance이기 때문이다.
Variance를 계산하는 방법은 다음과 같다.
\( \sigma^2 = \frac{1}{N} \sum\limits_{i=1}^N (x_i - \mu)^2 \)
이를 통해 예시에서 첫 번째 데이터셋의 variance를 구하면 0.25, 두 번째 데이터셋의 variance는 6.25이다.
이처럼, 평균은 같지만 흩어진 정도가 다를 수 있다.
그렇다면 Sample Variance는 어떻게 구할까?
간단히 \(s^2 = \frac{1}{n} \sum\limits_{i=1}^n (x_i - \overline{x})^2 \) 일 것 같지만, 조금 신경써야 할 부분이 있다.
이렇게 간단히 모든 샘플 개수로 나눈 경우, \(s_n^2\)으로 표시한다.
하지만 여기서 한 가지 흥미로운 점은, 샘플의 경우 전체 중 n개를 뽑은 것인데, 데이터를 골고루 뽑은 것이 아니라 편향적으로 뽑았다고 생각해보자.
이 경우, 모집단의 평균(실제 평균)과 sample의 평균이 달라진다.
이때 위의 방법으로 sample variance를 구할 경우, underestimate할 수 있다.
샘플의 데이터 포인트들이 모집단의 평균보다는 샘플 평균에 가까울 것이기 때문이다.
따라서 Unbiased Sample Variance는 다음과 같이 구한다.
\( s^2 = s_{n-1}^2 = \frac{1}{n-1} \sum\limits_{i=1}^n (x_i - \overline{x})^2 \)
이와 같이 n-1개로 나누어 줌으로써 더 정확한 추정을 할 수 있게 된다는 것은 수학적으로 증명되어 있는데,
여기서 다루지는 않을 것이다. '자유도의 개념 때문에 n-1로 나눈다'정도로 생각해두자.
Standard Deviation을 사용하는 이유는, Variance를 계산할 때 데이터 값들에 대해 제곱을 수행한다.
이때 데이터를 나타내는 단위 또한 제곱이 되는데, 이 영향을 없애주기 위해 다시 Variance에 squared root를 씌워주는 것이다.
분산은 다른 공식으로 구할 수도 있다.
\( \begin{align*} \sigma^2 &= \frac{1}{N} \sum\limits_{i=1}^N (x_i - \mu)^2 \\ &= \frac{1}{N} \left[ \sum\limits_{i=1}^N x_i^2 - 2 \mu \sum\limits_{i=1}^N x_i + \mu^2 \sum\limits_{i=1}^N 1 \right] \\ &= \frac{1}{N} \sum\limits_{i=1}^N x_i^2 - 2 \mu \frac{ \sum\limits_{i=1}^N x_i }{N} + \mu^2 \frac{N}{N} \\ &= \frac{1}{N} \sum\limits_{i=1}^N x_i^2 - \mu^2 \\ &= \frac{1}{N} \left[ \sum\limits_{i=1}^N x_i^2 - \left( \sum\limits_{i=1}^N x_i \right)^2 \right] \end{align*} \)
따라서 모집단의 분산은 다음과 같이 구할 수 있다.
\( \sigma^2 = \frac{1}{N} \sum\limits_{i=1}^N x_i^2 - \left( {\sum_{i=1}^N x_i \over N} \right)^2 \)
같은 방식으로 표본집단의 분산도 다음과 같이 구할 수 있다.
\( s^2 = \frac{1}{n(n-1)} \left[ n \sum\limits_{i=1}^N x_i^2 - \left( \sum\limits_{i=1}^N x_i \right)^2 \right] \)
위 두 가지 방법으로 분산을 구하면, 평균을 미리 구할 필요 없이 바로 분산을 구해낼 수 있다.
2. Probability
본격적으로 확률을 알아보기 전에, 몇 가지 용어를 알아보자.
- Sample Space(표본 공간, S)
- 실험, 관측에 의해 나타나는 모든 결과의 전체 집합을 나타낸다.
- Event(사건, 사상, A or E)
- S 중 원하는 결과가 나타난 것의 집합을 나타낸다.
- Exclusive Event(배반 사건, B)
- 사건 A에 대해 \( A \cap B = \phi \), \(P(A \cap B ) = 0 \)인 사건 B를 말한다.
1) 공리적 확률 (Axiom)
공리(Axiom)란, 가장 기초적인 근거가 되는 명제로, 증명할 필요 없는 자명한 것을 말한다.
확률의 공리적 정의는 다음과 같다.
\( \forall A ( \subset S) \) (표본 공간 S에 속하는 모든 사건 A에 대해)
\( \exists P: A \rightarrow P(A) : set ft. \) (P라는 함수가 존재한다.)
\( s.t. \)
\( 1. \quad 0 \leq P(A) \leq 1 \)
\( 2. \quad P(S) = 1 \)
\( 3. \quad P \left( \bigcup\limits_{i=1}^{\infty} A_i \right) = \sum\limits_{i=1}^{\infty} P(A_i) \quad with \; exclusive \; events \; A_i \; (i \in N) \)
각각을 간단히 설명하자면 다음과 같다.
- 확률은 0에서 1사이의 값을 갖는다.
- 표본 공간이 일어날 확률은 1이다.
- 배반 사건의 합집합의 확률은 각 배반사건의 확률의 합과 같다.
이때 \(P\)를 Probability라 하고, \(P(A)\)는 event A가 일어날 확률이라 한다.
2) Theorem (정리)
다음과 같은 확률과 관련된 정리가 있는데, 대부분 당연하게 사용하는 것들이다.
- \( P(\phi) = 0 \)
- \( P \left( \bigcup\limits_{i=1}^{n} A_i \right) = \sum\limits_{i=1}^{n} P(A) \quad with \; exclusive \; events \; A_i \; (i \in N) \)
- \( P(A^C) = 1 - P(A) \)
- \( if \; A \subset B \Rightarrow P(A) \leq P(B) \)
- \( \forall A, B : events \Rightarrow P(A \cup B) = P(A) + P(B) - P(A \cap B)
3) 확률의 계산
확률 계산 시 자주 사용하는 순열, 중복순열, 조합을 간단히 살펴보고 넘어가자.
(1) Permutation (순열)
순열은 \( _nP_r \)로 표현하며, 'Permuattion from n to r', 'n개 중 r개를 선택하여 1열로 줄세우기'을 말한다.
계산은 다음과 같이 진행한다.
\( _{n}P_r = \frac{n!}{(n-r)!} \)
(2) Product (중복순열)
중복 순열은 \( _n\Pi_r \)로 표현하며, 'Product from n to r', '중복을 허락하여 n개중 r개를 선택하여 1열로 줄세우기'를 말한다.
계산 식은 다음과 같다.
\( _n\Pi_r = n^r \)
(3) Combination (조합)
조합은 \( _nC_r \)로 표현하며, 'Combination from n to r', 'n개중 r개를 선택하기'를 말한다.
계산 식은 다음과 같다.
\( _nC_r = \frac{n!}{r!(n-r)!} = {n \choose r} \)
참고로 순열과 조합 간에는 다음 관계가 성립한다.
\( _nP_r = _nC_r \cdot r! \)
4) Conditional Probability (조건부 확률)
조건부 확률( \( P(A|B)\) )이란, B가 일어났을 때 A가 일어날 확률을 말한다.
다음 식으로 구할 수 있다.
\( P(A|B) = P_B (A) = \frac{P(A \cap B)}{P(B)} = \frac{P(A,B)}{P(B)} \)
이에 따라 다음 정리가 성립한다.
이 정리는 머신러닝에서 계속해서 사용하게 될 베이즈 정리의 기본이 되는 정리이므로, 꼭 기억해두자!
\(P(A \cap B) = P(B) P(A|B) = P(A) P(B|A) \)
조건부 확률 관련 다른 정리도 있다.
- \( P(A|B) \geq 0 \)
- \( P(B|B) = 1 \)
- \( if \; A \cap B \cap C = \phi \Rightarrow P(A \cup C | B) = P(A|B) + P(C|B) \)
- \( P(A^C|B) = 1 - P(A|B) \)
- \( P( \phi | B) = 0 \)
- \( P(A \cup C | B) = P(A|B) + P(C|B) - P(A, C |B) \)
- \( P(A_1, A_2, \cdots , A_N |B) \leq P(A_k | B) \leq P(A_1 \cup A_2 \cup \cdots \cup A_N | B) \\ \leq P(A_1|B) + P(A_2|B) + \cdots + P(A_N|B) \leq 1 \quad with \; k \in N \)
5) Total Probability Formula (전확률 공식)
전확률 공식 또한 베이즈 정리에 사용되므로 잘 알아두자.
\( \forall A_i (\subset S) : events \quad with \; {A_1, A_2, \cdots , A_n} = partition \; of \; S \)
\( \exists B (\in S) : events \quad s.t. \; P(B) \neq 0 \)
\( \Rightarrow P(B) = \sum\limits_{i=1}^n P(A_i) P(B|A_i) \)
이때, partition(분할)이란, 배반사건인 \(A_1, A_2, \cdots , A_n \)들의 합집합의 결과가 \(S\), 즉 \( \left\{ A_1, A_2, \cdots , A_n \right\} \)들이 각각 겹치지도 않고, S를 분할하여 남김없이 채우고 있는 것을 말한다.
증명)
다음과 같은 표본 공간 S, 사건 A, 사건 B가 있다고 가정하자.
\( B = (A_1 \cap B) \cup (A_2 \cap B) \cup \cdots \cup (A_n \cap B) \)
\( \begin{align*} P(B) &= P(A_1, B) + P(A_2, B) + \cdots P(A_n, B) \\ &= \sum\limits_{i=1}^n P(A_i, B) \\ &= \sum\limits_{i=1}^n P(A_i) P(B|A_i) \\ &= \sum\limits_{i=1}^n P(B) P(A_i | B) \end{align*} \)
\( \therefore P(B) = \sum\limits_{i=1}^n P(A_i) P(B|A_i) \)
6) Bayes' Theorem (베이즈 정리)
베이즈 정리는 머신러닝 관련 논문을 읽을 때 매우 자주 등장하는 정리이다.
꼼꼼하게 살펴보고, 증명을 숙지하고, 외워두어야 할 필요가 있다.
앞선 정리들을 사용하면 그리 어렵지 않게 증명할 수 있다.
\( \forall A_i \; (\subset S) : events \; (i \in \{ 1, 2, \cdots , n \} \quad with \; \{A_1, A_2, \cdots , A_n \} = partition \; of \; S \)
\( \exists B \; (\in S) : event \quad s.t. \; P(B) \neq 0\)
\( \Rightarrow P(A_k | B) = \frac{P(A_k)P(B|A_k)}{\sum_{i=1}^n P(A_i) P(B|A_i)} \)
증명)
\( \begin{align*} P(A_k | B) &= \frac{P(A_k \cap B)}{P(B)} \\ &= \frac{P(A_k \cap B)}{\sum_{i=1}^n P(A_i) P(B|A_i)} \quad \quad \quad (\because \text{Total Probability Formula)} \\ &= \frac{P(A_k) P(B|A_k)}{\sum{i=1}^n P(A_i) P(B|A_i)} \end{align*} \)
베이즈 정리는 다음과 같은 특징 덕분에 머신러닝에서 많이 사용된다.
- 추가되는 새로운 데이터에 따라 확률을 새로 계산 및 개선한다.
- 이전의 경험과 현재의 증거를 토대로 어떤 사건의 확률을 추론한다.
- 즉, 사전 정보를 바탕으로 어떤 사건이 일어날 확률을 토대로 의사결정을 할 때 활용된다.
- 우리의 관심이 되는 확률을 알기 어려울 때, 알고 있는 것을 바탕으로 거꾸로 계산하여 답을 찾게 해준다.
베이즈 정리를 간단히 나타내면 다음과 같다.
\( P(A|B) = \frac{P(B|A) P(A)}{P(B)} \)
여기서 P(A)는 A의 Prior Probability (사전 확률), P(A|B)는 A의 Posterior Probability (사후 확률), P(B|A)는 Likelihood (우도), P(B)는 B의 Prior Probability를 나타낸다.
베이즈 정리를 사용하면 관찰 결과를 토대로 사후 확률을 지속적으로 업데이트할 수 있게 된다.
머신러닝 문제는 어떤 가설을 설정하고, 데이터를 토대로 가설을 업데이트하는 과정이기 때문에 많은 부분에서 베이즈 정리를 적용할 수 있다.
7) 독립(Independent) 사건
독립사건은 동시에 일어날 확률과 각각의 확률의 곱이 같은 경우를 말한다.
배반사건과 헷갈릴 수 있는데, 배반사건은 동시에 일어날 확률이 0인 경우를 말한다.
\( \text{if} A, B : \text{indep.} \Rightarrow P(A \cap B) = P(A) P(B) \)
주의할 점은, 만약 여러 사건 \( \{ A_1, A_2, A_3, A_4 \} \)이 모두 독립이려면, 다음을 모두 만족해야 한다.
- \( P(A_i \cap A_j) = P(A_i) P(A_j) \quad \quad \text{with} \; i \neq j \; (\in \{1, 2, 3, 4\} ) \)
- \( P(A_i \cap A_j \cap A_k) = P(A_i) P(A_j) P(A_k) \quad \quad \text{with} \; i \neq j \neq k \; ( \in \{1, 2, 3, 4\} ) \)
- \( P(A_1 \cap A_2 \cap A_3 \cap A_4) = P(A_1) P(A_2) P(A_3) P(A_4) \)
최근댓글