for textmining

확률론 기초

|

이번 글에서는 확률론의 기본 개념들을 살펴보도록 하겠습니다. 이 글은 Ian Goodfellow 등이 집필한 Deep Learning Book과 김우철 등이 집필한 일반통계학, 위키피디아를 정리했음을 먼저 밝힙니다. 그럼 시작하겠습니다.

Why Probability?

알고리즘은 결정적(deterministic)이고 확실한(certain) 요소들로 구성되지만, 머신러닝은 본질적으로 확률적(stochastic, nondeterministic)이고 불확실한(uncertain) 대상을 다룹니다. 머신러닝 분야에서 발생하는 불확실성에는 다음과 같이 세 종류가 있습니다.

  • 모델링하려는 시스템 자체에 내재한 불확실성(inherent stochasticity). 예컨대 양자역학에서는 원자의 움직임을 확률적으로 해석, 설명한다. 마찬가지로 머신러닝에서 카드 게임 모델을 만들 때, 카드가 무작위 순서로 섞여 있다고 가정하고 그 random dynamics를 따지게 된다.
  • 불완전한 관측(incomplete observability). 모델링하려는 시스템이 결정적이라 하더라도 모든 데이터를 관측할 수는 없다. 예컨대 몬티홀 문제에서 게임 참가자는 세 개 문(door) 가운데 하나를 고른다. 한 문 뒤에는 자동차가 있고 나머지 두 문 뒤에는 염소가 있다. 참가자의 선택이 주어졌을 때 결과(outcome)는 결정적이다(참가자 선택과 관계없이 자동차나 염소의 위치가 바뀌지는 않기 때문). 그러나 참가자 입장에서 보면, 결과는 불확실하다.
  • 불완전한 모델링(incomple modeling). 관측한 정보의 일부를 버려야(discard)하는 모델을 쓸 때, 손실된 정보는 모델 예측의 불확실성을 낳는다. 예컨대 모든 물체의 위치를 정확히 관측할 수 있는 로봇을 만든다고 가정하자. 로봇이 물체들의 미래 위치를 예측할 때 공간을 구분(discretize)하게 된다면, 이러한 구분 자체가 로봇의 위치 예측을 불확실하게 만든다. 각각의 물체는 구분된 셀(discrete cell)과 관계없이 어디에나 존재할 수 있기 때문이다.

확률론

확률론(probability theory)은 사건의 빈도를 분석합니다. 포커 게임을 예로 들어보겠습니다. 이런 종류의 사건은 반복가능하다(repeatable)는 특징이 있습니다. 어떤 확률이 $p$라는 말은, 실험(카드 뽑기)을 무한히 반복하면 관심있는 사건이 나타나는 비율이 $p$라는 이야기입니다. 이 $p$는 사건이 일어날 비율과 직접적인 관련이 있다는 점에서 frequentist probability라 불립니다.

아예 다른 종류도 있습니다. 어떤 의사가 환자를 진찰하고 감기에 걸린 환자가 40%라는 결론을 내렸다고 칩시다. 이 경우는 포커게임과 달리 환자들을 무한히 관측할 수 없습니다. 감기와 증상이 유사해보이지만 환자가 걸린 병이 감기가 아닐 수도 있습니다. 이러한 경우 믿음의 크기(degree of belief)를 표현하기 위한 방안으로 확률을 씁니다. 다시 말해 환자가 정말 확실 하게 감기에 걸렸다고 판단되는 경우를 1, 그렇지 않다고 생각되는 경우를 0으로 둔다는 것이지요. 이는 확실성의 질적 수준(qualitative levels of certainty)과 관련이 있고 베이지안 확률이라 불립니다.

요컨대 확률을 빈도론으로 접근하는 쪽에서는 불확실성을 빈도로 정량화합니다. 반면 베이지안 관점에서는 확률 개념을 빈도가 아닌 믿음의 정도로 고려합니다. 한편 몇 가지 조건을 만족하면 frequentist probability와 베이지안 확률이 동일해 진다고 합니다. 예컨대 특정 조합의 카드를 갖고 있는 사람이 포커 게임에서 이길 확률을 계산하는 과정은 특정 증상이 나타나는 사람이 어떤 질병에 걸렸을 확률을 계산하는 것과 똑같습니다.

확률변수

확률변수(random variable)란 다양한 값(value)을 랜덤(random)하게 가질 수 있는 변수(variable)입니다. 확률변수는 표본공간(sample space)에서 상태공간(state space)으로 보내는 함수(function)이며, 확률적인 과정에 따라 확률변수의 구체적인 값이 결정됩니다. 표본공간이란 어떤 시행(실험)에서 나타날 수 있는 모든 결과들의 모임을, 상태공간이란 해당 확률변수가 취할 수 있는 모든 실수들의 집합을 가리킵니다.

예컨대 동전을 1회 던지는 실험에서 표본공간은 {앞면, 뒷면}이 됩니다. 확률변수 $X$를 동전을 두 번 반복해서 던졌을 때 앞면이 나온 횟수로 정의할 경우 상태공간은 {0, 1, 2}가 됩니다.

확률분포

확률분포(probability distribution)는 개별 확률변수나 확률변수의 집합에 대응하는 확률들의 집합을 가리킵니다. 확률분포는 상태(state)가 얼마나 많이 나타나는가를 나타냅니다.

이산확률변수와 확률질량함수

이산확률변수(discrete random variable)란 상태공간이 유한집합이거나 셈할 수 있는 무한집합인 확률변수를 가리킵니다. 확률질량함수(probability mass function)란 확률변수의 한 상태를 그 상태가 나타날 확률로 대응시켜 주는 함수입니다. 만일 확률변수 $X$가 $x$라는 값일 가능성이 확실하다면 그 확률은 1이 될 겁니다. 해당 확률질량함수를 $P$라 할 때 다음과 같이 씁니다.

\[P\left( X=x \right) =1\]

여러 확률변수에 대한 확률분포를 결합확률분포(joint probability distribution)이라 합니다. $P(X=x, Y=y)$는 확률변수 $X$, $Y$가 각각 $x$, $y$일 확률을 의미합니다. $P(x,y)$라 적기도 합니다. 확률변수 $X$에 대한 확률질량함수 $P$는 다음과 같은 조건을 만족해야 합니다.

  • $P$의 정의역은 $X$의 모든 가능한 상태들로 이뤄진 집합이어야 한다.
  • $∀x∈X$, $0≤P(x)≤1$. 발생이 불가능한 사건은 그 확률이 0이고 이보다 작은 확률을 가진 상태(state)는 존재하지 않는다. 마찬가지로 발생이 보장돼 있는 사건은 그 확률이 1이고, 이보다 큰 확률을 가진 상태는 존재하지 않는다.
  • $∑_{x∈X}P(x)=1$. 이 성질을 두고 ‘정규화되었다(normalize)’고 표현한다. 이 속성을 만족하지 않을 경우, 많은 사건 가운데 하나가 발생할 확률이 1보다 클 수 있다.

균등분포(uniform distribution)를 예로 들어보겠습니다. 균등분포란 각 상태에 해당하는 확률이 동일한 확률분포를 가리킵니다. $k$개의 서로 다른 상태를 가질 수 있고 균등분포를 따르는 이산확률변수 $X$의 확률질량함수는 다음과 같습니다.

\[P\left( X={ x }_{ i } \right) =\frac { 1 }{ k }\]

베르누이분포

입시에서 합격과 불합격, 스포츠 경기에서 승리와 패배, 사업에서 성공과 실패, 수술 후 환자의 치유 여부 등 우리가 일상 생활에서 자주 접하는 일들은 두 가지의 가능한 결과만을 가질 때가 많습니다. 어떤 실험이 이와 같이 두 가지 가능한 결과만을 가질 경우 이를 베르누이시행(bernoulli trial)이라고 합니다.

일반적으로 베르누이시행에서 시행의 결과는 성공(s) 또는 실패(f)로 나타냅니다. 따라서 베르누이시행의 표본공간은 {성공, 실패}, 상태공간은 {0, 1}로 원소가 각각 두 개인 집합입니다. 성공을 1, 실패를 0으로 대응시키는 함수를 베르누이확률변수(bernoulli random variable)라 하고 이 확률변수의 확률분포를 베르누이분포라고 합니다. 베르누이분포는 다음 표와 같이 표현할 수 있습니다.

$x$ 0 1
$P(X=x)$ $1-p$ $p$

좀 더 간단하게는 다음과 같이 표현할 수 있습니다.

\[P\left( X=x \right) ={ p }^{ x }{ \left( 1-p \right) }^{ 1-x }\]

베르누이분포의 기대값과 분산은 다음과 같습니다.

\[E\left( X \right) =p\\ Var\left( X \right) =p(1-p)\]

다항분포

다항분포(multinomial distribution)란 $k$개의 서로 다른 상태를 가질 수 있는 하나의 이산확률변수에 대한 확률분포를 가리킵니다. 어떤 시행에서 $k$가지의 값이 나타날 수 있고 그 값이 나타날 확률을 각각 $p_1$, $p_2$, …, $p_k$라 할 때 $n$번의 시행에서 $i$번째의 값이 $x_i$회 나타날 확률은 다음과 같습니다.

\[P\left( { x }_{ 1 },,...,{ x }_{ k },{ p }_{ 1 },...,{ p }_{ k },n \right) =\frac { n! }{ { x }_{ 1 }!{ x }_{ 2 }!...{ x }_{ k }! } { p }_{ 1 }^{ { x }_{ 1 } }{ p }_{ 2 }^{ { x }_{ 2 } }...{ p }_{ k }^{ { x }_{ k } }\]

시행을 $n$번 했으므로 $x_1+…+x_k=n$이 되어야 합니다. 그렇지 않은 경우의 확률값은 0으로 정의됩니다.

경우에 따라 다항분포는 값이 나타나는 횟수가 아니라 독립시행에서 나타난 값 자체를 가리키기도 합니다. 엄밀하게는 이러한 분포를 categorical distribution이라 합니다. 예컨대 $k$개 범주를 분류하는 뉴럴네트워크를 만들 때 마지막 층의 출력결과물은 $k$차원의 확률벡터가 될 텐데, 이 벡터의 각 요소값들은 해당 인스턴스가 각각의 범주일 확률을 나타낸다고 볼 수 있겠습니다.

어떤 시행에서 $k$개의 서로 다른 범주가 있고 그 범주가 나타날 확률을 각각 $p_1$, $p_2$, …, $p_k$라 할 때 1회 시행에서 $i$번째 범주 $c_i$가 나타날 확률은 다음과 같습니다.

\[P\left( { c }_{ i };{ p }_{ 1 },...,{ p }_{ k } \right) ={ p }_{ i }\]

머신러닝에서 다항분포는 대상이 가질 수 있는 범주(상태)에 대한 확률분포로 쓰입니다. 하지만 각 상태는 숫자로서의 의미는 없습니다. 1번 상태(범주 1)를 숫자 1로 보지 않는다는 겁니다. 이런 이유로 머신러닝에서는 다항분포를 따르는 확률변수의 기대값이나 분산을 대개 계산하지 않습니다.

정규분포

정규분포는 가우스(Gauss, 1777-1855)에 의해 제시된 분포로서 일명 가우스분포(Gauss Distribution)라고 불리며 물리학 실험 등에서 오차에 대한 확률분포를 연구하는 과정에서 발견되었다고 합니다. 가우스 이후 이 분포는 여러 학문 분야에서 이용되었으며, 초기의 통계학자들은 모든 자료의 히스토그램이 정규분포의 형태와 유사하지 않으면 비정상적인 자료라고까지 생각하였다고 합니다. 이러한 이유로 이 분포에 ‘정규(normal)’라는 이름이 붙게 된 것입니다.

정규분포는 특성값이 연속적인 무한모집단 분포의 일종으로서 평균이 $μ$이고 표준편차가 $σ$인 경우 정규분포의 확률밀도함수(Probability Density Function)는 다음과 같습니다.

\[N(x;\mu ,{\sigma}^2 )=\frac { 1 }{ \sqrt { 2\pi } \sigma } exp\left( -\frac { { (x-\mu ) }^{ 2 } }{ 2{ \sigma }^{ 2 } } \right)\]

평균이 0이고 분산이 1인 표준정규분포의 밀도곡선은 다음과 같습니다. 평균에 대해 좌우 대칭이고 변곡점과 대칭점 사이의 거리가 표준편차(=1)가 됩니다.

데이터 분포에 대한 사전지식이 전혀 없을 때 정규분포를 가정하는 것은 다음 두 가지 이유로 꽤 합리적인 선택입니다. 첫째 중심극한정리(central limit theorem) 덕분입니다. 중심극한정리란 동일한 확률분포를 따르는 $n$개의 독립 확률변수의 평균의 분포는 $n$(대개 30 이상)이 충분히 클 때 정규분포에 가까워진다는 정리입니다. 다시 말해 데이터의 분포가 어떤 형태이든 상관없이 30건 이상의 데이터만 있으면 이들 표본의 평균은 근사적으로 정규분포를 따른다는 사실입니다.

둘째 동일한 분산을 가진 모든 확률분포 가운데 정규분포는 최대 불확실성(uncertainty)을 내포하는 좋은 성질을 가지고 있다고 합니다. 정보이론(information theory)에서 엔트로피(entropy)는 어떤 확률변수의 불확실성을 가리킵니다. 엔트로피를 최대로 만드는 확률함수를 유도하면 정규분포 식이 도출된다고 합니다. 따라서 정규분포를 가정할 경우 모델을 만들 때 사전 지식(prior knowledge)을 최대한 배제한다는 의미 또한 지니게 된다는 것입니다. 정규분포가 최대 불확실성을 내포한다는 것과 관련 자세한 내용은 이곳을 참고하시면 좋을 것 같습니다.

중심극한정리를 이항분포(Binomial distribution)과 관련지어 이야기해보겠습니다. 성공확률이 $p$인 베르누이시행을 $n$번 반복시행할 때 성공횟수 $X$의 분포를 이항분포라고 합니다. 이때 이항분포의 평균과 분산은 각각 $np$, $np(1-p)$가 되는데요. 중심극한정리는 $n$이 적당히 크다면 $X$는 원래 정규분포를 따르지 않지만 표본의 분포가 평균이 $np$이고 분산이 $np(1-p)$인 정규분포와 유사해진다는 점을 알려줍니다.

아래 그림은 성공확률이 0.5인 베르누이시행을 100번 반복시행했을 때 성공횟수의 분포를 히스토그램으로 그린 것입니다. 실선은 평균이 50, 분산이 25인 정규분포를 그린 것입니다. 두 모양이 비슷한 것을 알 수 있습니다.

지수분포

딥러닝 모델을 만들 때 $x=0$인 지점에서 첨점(sharp point)를 갖는 확률분포가 필요할 수 있습니다. 이를 위해 지수분포를 씁니다. $1_{x≥0}$은 벡터 $x$의 요소 가운데 음수값에 대응하는 확률을 모두 0으로 만들어주는 indicatior function입니다. 지수함수의 식과 그래프는 다음과 같습니다.

\[p\left( x;\lambda \right) =\lambda { 1 }_{ x\ge 0 }exp\left( -\lambda x \right)\]

라플라스분포는 $μ$인 지점에서 첨점을 갖는 확률분포입니다. $γ$는 분포의 모양을 정하는 파라메터입니다. 식과 그래프는 다음과 같습니다.

\[p\left( x;\mu ,\gamma \right) =\frac { 1 }{ 2\gamma } exp\left( -\frac { \left| x-\mu \right| }{ \gamma } \right)\]

시그모이드함수

시그모이드함수의 식은 다음과 같습니다.

\[\sigma \left( x \right) =\frac { 1 }{ 1+exp(-x) }\]

시그모이드함수는 함수값의 범위가 $[0,1]$이기 때문에 베르누이분포의 파라메터(성공확률) $p$를 만드는 데 주로 사용됩니다. 하지만 $x$가 매우 크거나 작을 경우 그래디언트가 0에 가까워지기 때문에 딥러닝 역전파가 잘 안되어 학습속도가 느려지거나 불가능해진다는 단점이 있습니다. 이와 관련해서는 이곳을 참고하시면 좋을 것 같습니다.



Comments