확률론
- 딥러닝은 확률론 기반의 기계학습 이론에 바탕을 두고있다. 기계학습에서 사용되는 손실함수들의 작동원리는 데이터 공간을 통계적으로 해석해 유도하게된다. (예측이 틀릴 위험을 최소화하도록 데이터를 학습하는 원리는 통계적 기계학습의 기본 원리이다.률
회귀 분석에서 손실함수로 사용되는 l2노름은 예측오차의 분산을 가장 최소화 하는 방향으로 학습하도록 유도한다.
\[cost(W,b) = \frac{1}{n}\sum[y^{(i)}-H(x^{(i)})]^2\]- 분류 문제에서 사용되는 교차엔트로피는 모델 예측의 불확실성을 최소화하는 방향으로 학습을 유도한다.
- 데이터에서 관찰되는 분포와 모델 예측의 분포의 차이를 최소화하는 방향으로 학습한다.
- 기대값은 어떤 확률 과정을 무한히 반복하였을 때 얻을 수 있는 값들의 평균으로 기대하는 값으로, 중심적 상향 또는 분포의 무게중심을 알려준다. $E[X] = \displaystyle\sum_{x} xp(x)$
분산은 변수의 흩어진 정도를 계산하는 지표로 통계에서 주어진 변량이 평균으로부터 떨어져있는 정도를 나타내는 값이다. (분포의 밀집도)
$Var(X) = E[X^2]-E[X]^2 = \frac{1}{n}\sum(X_{i}-\overline{X})^2$
확률분포
확률 분포는 확률변수가 특정한 값을 가질 확률을 나타내는 함수를 말한다.
데이터만 가지고 확률분포 D를 구하는것은 불가능하기 때문에 기계학습 모형을 가지고 확률분포 D를 추론하게된다. 오른쪽 그림의 파란색 점이 데이터 공간상에서 관측한 데이터이고, 이 데이터를 추출할 때 확률변수를 사용한다. 이 확률변수를 추출한 데이터의 분포를 D라고한다.
이산확률변수 vs 연속확률변수
- 확률변수는 확률분포 D에 따라 이산형(discrete)과 연속형(continuous)확률 변수로 구분하게된다. 확률변수는 데이터 공간에 의해 결정되는 것이 아니라 확률분포D에 의해 결정된다.
이산형 확률변수는 확률변수가 가질 수 있는 경우의 수를 모두 고려하여 확률을 더해서 모델링한다.
\[ℙ(X \in A) = \sum_{\textbf{x}\in A} P(X =\textbf{x)}\]위의 식은 확률변수 X가 A라는 집합에 속할 확률 분포를 계산하는 것으로 X가 x가될 X의 모든 확률을 더하여 구하게된다.
- 연속형 확률변수는 이산형 확률변수처럼 확률변수 X가 x가 되는 확률을 구하는것이 불가능하다. 데이터 공간에 정의된 확률변수의 밀도(density)위에서의 적분을 통해 모델링 한다. P(x)는 밀도함수이다. 밀도함수는 확률로 해석하면 안되고, 누적확률 분포의 변화율로 이해하여 데이터공간에 정의된 밀도라는 개념으로 적분해서 모델링해야 한다.
확률분포에 따른 모델링
확률변수의 종류의 따라 확률분포를 다르게 모델링하기 때문에 어떤 식으로 데이터를 접근하느냐에 따라 분포의 성질이 달라지고, 분포의 종류에따라 확률분포를 모델링하는 방법이 달라지게된다.
위의 그림을 보면 결합분포 P(X,Y)의 각각의 데이터들은 연속확률변수로 보이는 확률분포를 가지고 있지만 빨간색 칸으로 나누어보면 이산확률분포처럼 생각할 수 있게된다. 각각의 칸에 대해서 (Y = 1, X의 첫번째 칸) 데이터개수를 세면 현재 주어진 데이터의 결합 분포를 가지고 원래 확률분포 D를 모델링할 수 있다. 이처럼 원래 확률분포의 타입을 통해 결합확률 분포의 타입이 결정되는것이 아니라 모델링 방법에 따라 결정된다.
원래 데이터의 확률분포를 추출하는 D와 주어진 데이터에서 실증적으로 추정하게되는 분포는 다를 수 있다. 결합분포 P(X,Y)는 주어진 데이터의 모양을보고 적절하게 생각할 수 있다.
이러한 결합 분포가 주어져 있는 상황에서 각각의 입력 X에 대한 주변확률분포를 구할 수 있다.
연속확률분포일 경우 적분, 이산확률분포일 경우 합쳐서 구할 수 있다. X에 대한 확률분포를 구할경우 같은 X의 Y값들을 합치면된다.
$P(\textbf{x})=\displaystyle{\sum_{y}}P(\textbf{x},y)~~~~~~~P(\textbf{x})=\int_{y}P(\textbf{x},y)dy$
조건부확률
위의 조건부확률 P(X | Y = 1)의 확률분포는 데이터 공간에서 입력 x와 출력 y사이의 관계를 모델링한다(y가 주어졌을 때 x의 확률). 이러한 조건부확률분포는 특정 출력값 혹은 특정 클래스가 주어진 상태에서 데이터의 확률 분포를 보여주기 때문에 입력 출력사이에 통계적 관계를 모델링할 때 또는 예측 모형을 만들때 사용할 수 있다. |
반대로 P(y | x)는 입력변수 x에 대해 정답이 y일 확률을 의미한다. |
연속확률분포의 경우 P(y x)는 확률이 아니고 밀도로 해석한다.
조건부확률과 기계학습
- 로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용된다.
분류 문제에서 softmax는 데이터 x로부터 추출된 특징패턴과 가중치 행렬W의 행렬 곱을 통해 조건부 확률 P(y x)를 계산한다. - 회귀 문제에서는 보통 연속확률 변수를 다루기 때문에 확률로 해석하기는 어렵고 밀도로 해석을 해야한다. 따라서 조건부 확률 P(y|x)가 아닌 조건부 기대값 $𝔼[{y|\textbf{x}}]$를 추정한다. 조건부 기대값을 사용하는 이유는 회귀 문제의 경우 L2 norm을 최소화 해야하는데 조건부 기대값은 L2 norm을 최소화하는 함수와 일치하기 때문이다.
- 딥러닝은 다층신경망을 사용해 데이터로부터 특징패턴을 추출한다.
- 특징패턴을 학습하기 위해 어떤 손실함수를 사용할지는 기계학습 문제와 모델에 의해 결정된다.
기대값
- 확률분포가 주어지면 데이터를 분석하는데 사용 가능한 여러 종류의 통계적 범함수(Statistical functional)을 계산할 수 있다.
- 기대값(expectation 혹은 mean)은 데이터를 대표하는 통계량으로 사용할 수 있는 대표적인 범함수에 해당된다. 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는데 사용된다.
- 기대값을 이용해 분산, 첨도, 공분산 등 여러 통계랑을 계산할 수 있다.
연속확률분포의 기대값
주어진 함수에 확률밀도함수를 곱해서 계산한다.
이산확률분포의 기대값
함수에 확률질량함수를 곱해서 계산한다.
몬테카를로 샘플링
기계학습의 많은 문제들은 확률분포를 명시적으로 모를 때가 대부분이다. 이렇게 확률분포를 모를 때 데이터를 이용하여 기대값을 계산하려면 몬테카를로 샘플링 방법을 사용해야한다. (몬테카를로는 이산형이든 연속형이든 상관없이 성립한다.)
\[𝔼_{\textbf{x}\sim P{\textbf{(x)}}}[f(\textbf{x})]\approx\frac{1}{N}\displaystyle\sum_{i =1}^nf(\textbf{x}^{(i)}), ~~~~\textbf{x}^{(i)} {\sim}^{i.i.d.} P(\textbf{x})\]기대값을 추정하는 방법은 타겟으로하는 f의 x자리에 샘플링한 데이터를 대입한다. 대입한 데이터에 따른 $f(\textbf{x}^{(i)})$값들의 산술평균을 구하게되면 기대값에 근사하게된다.
샘플링하는 분포에서 독립적으로 샘플링해야 제대로 작동한다.
몬테카를로 샘플링은 독립추출만 보장된다면 대수의 법칙에 의해 수렴성을 보장한다.