확률과 불확실성 — 분포·기댓값·베이즈

2026-04-26

1편2편에서 벡터로 데이터를 놓고, 그 사이의 거리와 유사도를 쟀습니다. 그건 '무엇을 아는가'의 언어였어요. 그런데 현실의 AI는 확실히 알지 못합니다 — 이 메일이 스팸일 확률, 다음 단어가 '입니다'일 확률을 다루죠. 세상은 불확실하고, 그 불확실성을 다루는 언어가 따로 있습니다.

규칙 — AI는 확실히 아는 게 아니라 확률로 믿는다. 그리고 데이터를 보며 그 믿음을 갱신한다. 이 갱신의 언어가 확률이다.

이 편에서 그 언어를 밑바닥부터 세웁니다. 그리고 뒤 편에서 만날 '손실함수'가 왜 하필 그 모양인지의 씨앗을 여기 심습니다.

확률이란 무엇인가 — 세 개의 공리

확률은 '일어날 법함'을 0과 1 사이 숫자로 매기는 규칙입니다. 일어날 수 있는 모든 결과의 집합을 표본공간 Ω\Omega라 하고, 그 부분집합(관심 있는 결과들)을 사건이라 부릅니다. 확률 PP는 사건에 숫자를 주는 함수인데, 아무 함수나 되는 게 아니라 콜모고로프의 세 공리를 지켜야 해요.

(1)P(A)0(음수 확률은 없다)(2)P(Ω)=1(무언가는 반드시 일어난다)(3)AB=    P(AB)=P(A)+P(B)(겹치지 않으면 더한다)\begin{aligned} &\text{(1)}\quad P(A) \ge 0 &&(\text{음수 확률은 없다}) \\ &\text{(2)}\quad P(\Omega) = 1 &&(\text{무언가는 반드시 일어난다}) \\ &\text{(3)}\quad A \cap B = \varnothing \implies P(A \cup B) = P(A) + P(B) &&(\text{겹치지 않으면 더한다}) \end{aligned}

이 셋에서 우리가 아는 성질들이 전부 따라 나옵니다 — 여사건 P(Ac)=1P(A)P(A^c) = 1 - P(A), 겹칠 때의 포함배제 P(AB)=P(A)+P(B)P(AB)P(A \cup B) = P(A) + P(B) - P(A \cap B) 같은 것들요. 확률이 무엇을 '뜻하는지'(빈도인가 믿음의 정도인가)는 뒤에서 다투겠지만, 계산의 규칙은 이 세 줄이 전부입니다.

확률변수와 분포

관심은 대개 '결과' 자체가 아니라 거기에 붙는 숫자입니다. 주사위 눈, 메일의 스팸 여부(0/1), 키. 결과에 숫자를 붙이는 함수가 확률변수 XX이고, 그 숫자들이 확률을 어떻게 나눠 갖는지가 **분포(distribution)**입니다.

분포는 두 종류로 갈립니다.

  • 이산형: 값이 띄엄띄엄. 확률질량함수(pmf) p(x)=P(X=x)p(x) = P(X = x)로 기술하고, 모든 값의 확률을 더하면 1입니다. xp(x)=1\sum_x p(x) = 1.
  • 연속형: 값이 이어짐. 확률밀도함수(pdf) f(x)f(x)로 기술하고, 넓이가 확률입니다. f(x)dx=1\int_{-\infty}^{\infty} f(x)\,dx = 1.

AI에서 늘 만나는 두 분포를 미리 인사시켜 둡니다. 베르누이 분포는 성공/실패를 확률 pp로 가르는 가장 단순한 분포로(P(X=1)=pP(X=1)=p, P(X=0)=1pP(X=0)=1-p), 이진 분류기의 출력이 바로 이겁니다. **정규분포(가우시안)**는 종 모양

f(x)=12πσexp ⁣((xμ)22σ2)f(x) = \frac{1}{\sqrt{2\pi}\,\sigma}\exp\!\left(-\frac{(x-\mu)^2}{2\sigma^2}\right)

로, 오차와 잡음을 모델링하는 기본값이자 뒤에서 최소제곱과 만날 분포입니다. 지금은 "분포란 확률을 나눠 갖는 방식이고, 다 더하면(적분하면) 1"이라는 것만 붙잡으면 됩니다.

규칙 회수 — 확률변수는 결과에 숫자를 붙이고, 분포는 그 숫자들이 확률을 나눠 갖는 방식이다. 이산은 pmf(합이 1), 연속은 pdf(넓이가 1).

기댓값과 분산 — 분포를 두 숫자로 요약하다

분포 전체를 늘 들고 다닐 순 없습니다. 그래서 분포를 대표하는 요약값을 씁니다. 첫째는 기댓값(expectation) — 값을 확률로 가중한 평균, 즉 '무게중심'입니다.

E[X]=xxp(x)또는E[X]=xf(x)dx\mathbb{E}[X] = \sum_x x\,p(x) \quad\text{또는}\quad \mathbb{E}[X] = \int x\,f(x)\,dx

기댓값의 가장 쓸모 있는 성질은 선형성입니다. 독립이든 아니든 늘 성립해요.

E[aX+bY]=aE[X]+bE[Y]\mathbb{E}[aX + bY] = a\,\mathbb{E}[X] + b\,\mathbb{E}[Y]

이게 왜 중요하냐면, AI의 학습 목표가 대개 기대 손실을 줄이는 것으로 쓰이기 때문입니다 — 개별 데이터의 손실이 아니라, 데이터 분포 전체에 대한 손실의 기댓값요. 기댓값의 선형성은 그 목표를 다루기 쉽게 쪼개 줍니다.

둘째는 분산(variance) — 값이 평균에서 얼마나 흩어졌는가입니다. 평균을 μ=E[X]\mu = \mathbb{E}[X]라 하면,

Var(X)=E[(Xμ)2]\text{Var}(X) = \mathbb{E}[(X - \mu)^2]

정의는 이렇지만, 실제 계산엔 더 편한 꼴이 있습니다. 선형성으로 전개해 보죠.

Var(X)=E[(Xμ)2]=E[X22μX+μ2]=E[X2]2μE[X]+μ2=E[X2]2μ2+μ2=E[X2]μ2\begin{aligned} \text{Var}(X) &= \mathbb{E}[(X - \mu)^2] = \mathbb{E}[X^2 - 2\mu X + \mu^2] \\ &= \mathbb{E}[X^2] - 2\mu\,\mathbb{E}[X] + \mu^2 \\ &= \mathbb{E}[X^2] - 2\mu^2 + \mu^2 = \mathbb{E}[X^2] - \mu^2 \end{aligned}

즉 **분산은 '제곱의 평균' 빼기 '평균의 제곱'**입니다. 이 유도는 앞으로 계속 만날 패턴이에요 — 정의는 직관적으로, 계산은 선형성으로 편한 꼴로. 분산에 뿌리를 씌운 표준편차 σ=Var(X)\sigma = \sqrt{\text{Var}(X)}2편의 표준화(평균 빼고 표준편차로 나누기)에서 이미 썼던 그 값입니다.

결합·주변·조건부 — 여러 변수를 함께 보다

변수 하나로는 부족합니다. AI는 늘 여러 변수의 관계를 봐요 — 입력 XX와 정답 YY처럼. 두 변수를 함께 본 분포가 결합확률 P(X,Y)P(X, Y)이고, 여기서 한 변수를 '합쳐 지워' 하나만 남기면 주변확률이 됩니다.

P(X)=yP(X,Y=y)P(X) = \sum_y P(X, Y=y)

그리고 이 편의 축이 되는 개념 — 조건부확률입니다. "XX가 일어났다는 걸 안 상태에서 YY의 확률".

P(YX)=P(X,Y)P(X)P(Y \mid X) = \frac{P(X, Y)}{P(X)}

직관은 "표본공간을 XX가 일어난 세계로 좁힌 뒤 다시 잰다"는 것입니다. 만약 XX를 알아도 YY의 확률이 안 변하면(P(YX)=P(Y)P(Y \mid X) = P(Y)) 둘은 독립이고, 그때 결합확률이 곱으로 쪼개집니다.

P(X,Y)=P(X)P(Y)(독립일 때만)P(X, Y) = P(X)\,P(Y) \quad(\text{독립일 때만})

이 곱셈 분해는 편리해서 자주 '가정'되지만, 뒤에서 볼 텐데 그 가정이 틀리면 조용히 대가를 치릅니다.

규칙 회수 — 조건부확률 P(YX)P(Y\mid X)는 표본공간을 XX가 일어난 세계로 좁혀 다시 잰 것이다. 독립이면, 그리고 그때만, 결합확률이 곱으로 쪼개진다.

베이즈 정리 — 학습을 다시 정의하다

조건부확률에서 이 시리즈에서 가장 중요한 등식 하나가 곧바로 나옵니다. P(X,Y)P(X,Y)를 두 방향으로 쓰면

P(YX)P(X)=P(X,Y)=P(XY)P(Y)P(Y \mid X)\,P(X) = P(X, Y) = P(X \mid Y)\,P(Y)

이고, 양변을 P(X)P(X)로 나누면 베이즈 정리입니다.

P(YX)=P(XY)P(Y)P(X)P(Y \mid X) = \frac{P(X \mid Y)\,P(Y)}{P(X)}

이름을 붙여 다시 읽으면, 이건 단순한 등식을 넘어 학습의 정의가 됩니다. 가설 HH와 관측한 데이터 DD에 대해,

P(HD)사후=P(DH)가능도 P(H)사전P(D)증거\underbrace{P(H \mid D)}_{\text{사후}} = \frac{\overbrace{P(D \mid H)}^{\text{가능도}}\ \overbrace{P(H)}^{\text{사전}}}{\underbrace{P(D)}_{\text{증거}}}

  • 사전(prior) P(H)P(H): 데이터를 보기 전 가설에 대한 믿음.
  • 가능도(likelihood) P(DH)P(D \mid H): 그 가설이 맞다면 이 데이터가 나올 법함.
  • 사후(posterior) P(HD)P(H \mid D): 데이터를 보고 갱신된 믿음.

학습이란 사전 믿음을 데이터로 갱신해 사후 믿음을 얻는 일입니다. 베이즈 정리는 그 갱신의 정확한 규칙이고요. 규칙에서 말한 "확률로 믿고, 데이터로 갱신한다"가 이 한 줄에 다 들어 있습니다. 스팸 필터가 단어를 보고 스팸 확률을 올리는 것, 진단 모델이 증상을 보고 질병 확률을 재는 것 — 전부 이 갱신입니다.

규칙 회수 — 베이즈 정리는 사전 × 가능도 ÷ 증거로 사후를 준다. 학습은 데이터로 믿음을 갱신하는 일이고, 그 규칙이 바로 이 등식이다.

가능도와 최대가능도 — 손실함수의 씨앗

베이즈 정리의 조각 중 가능도를 조금 더 붙듭니다. 여기서 뒤 편 전체를 떠받칠 아이디어가 나오거든요.

데이터 x1,,xnx_1, \dots, x_n이 파라미터 θ\theta를 가진 분포에서 나왔다고 해 봅시다(예: 정규분포의 μ,σ\mu, \sigma). 이 데이터들이 서로 독립이라면, 전체가 나올 가능도는 곱입니다.

L(θ)=i=1nP(xiθ)L(\theta) = \prod_{i=1}^{n} P(x_i \mid \theta)

**최대가능도추정(MLE)**은 단순명료한 원리예요 — "관측한 데이터를 가장 그럴듯하게 만드는 θ\theta를 고르자". 즉 L(θ)L(\theta)를 최대로 하는 θ\theta를 찾는 것이죠. 그런데 곱은 다루기 나쁩니다(항이 많으면 값이 0으로 사라지고, 미분도 번거롭죠). 그래서 로그를 씌웁니다. 로그는 증가함수라 최댓값 위치를 안 바꾸면서, 곱을 합으로 펴 줍니다.

logL(θ)=i=1nlogP(xiθ)\log L(\theta) = \sum_{i=1}^{n} \log P(x_i \mid \theta)

로그가능도가 앞으로 학습의 목적함수가 됩니다. 그리고 보통은 이걸 최대화하는 대신 부호를 뒤집어 음의 로그가능도(NLL)를 최소화해요.

logL(θ)=i=1nlogP(xiθ)-\log L(\theta) = -\sum_{i=1}^{n} \log P(x_i \mid \theta)

바로 이 음의 로그가능도가, 분류 문제에서 그 유명한 크로스 엔트로피(cross-entropy) 손실의 정체입니다. "왜 하필 로그를 씌운 이 함수가 손실인가?"라는 물음의 답이 여기 있어요 — 손실을 줄이는 것이 곧 데이터를 가장 그럴듯하게 만드는 것이기 때문입니다. 이 연결(NLL = cross-entropy)은 손실함수를 본격적으로 다룰 편의 핵심 장면이 될 겁니다. 지금은 씨앗만 심어 둡니다.

규칙 회수 — 최대가능도는 데이터를 가장 그럴듯하게 만드는 파라미터를 고른다. 곱을 로그로 펴 합으로 만들고, 부호를 뒤집은 음의 로그가능도가 곧 크로스 엔트로피 손실이다.

왜 이것이 AI의 바닥인가 — 조망

오늘 세운 것들은 앞으로 이렇게 쓰입니다.

  • 분류기의 출력은 분포다. 신경망 마지막의 소프트맥스는 각 클래스에 확률을 나눠 주는 분포를 뱉습니다. 학습은 그 분포가 정답에 확률을 몰아주게(= NLL 최소화 = 크로스 엔트로피) 만드는 것이죠.
  • 회귀의 오차는 정규분포로 가정된다. 오차가 가우시안이라 가정하면, 그 가능도를 최대화하는 것이 정확히 2편에서 예고한 최소제곱이 됩니다 — 5편에서 유도합니다.
  • 생성모델은 분포 자체를 배운다. 언어 모델은 '다음 토큰의 분포'를 학습하는 것이고, 그 학습 신호가 로그가능도입니다.
  • 베이즈는 불확실성을 준다. 점 추정을 넘어 "얼마나 확신하는가"까지 다루려면 사후분포가 필요하고, 정규화의 여러 기법도 사전으로 해석됩니다.

벡터가 알파벳이었다면, 확률은 그 알파벳으로 불확실성을 쓰는 문법입니다.

정직하게 — 확률은 다루기 미묘하다

강력하지만, 확률을 쓰는 데는 주의할 함정이 많습니다.

  • 확률의 '뜻'은 아직도 논쟁이다. 확률을 "무한히 반복하면 나오는 빈도"로 보는 빈도주의와, "믿음의 정도"로 보는 베이지안이 있습니다. 계산 규칙은 같지만 해석이 다르고, 사전분포를 인정하느냐에서 갈리죠. AI는 실용적으로 둘을 오갑니다 — 어느 관점에 서 있는지 아는 게 혼란을 줄입니다.
  • 독립 가정은 편하지만 위험하다. 위에서 결합확률을 곱으로 쪼갠 그 가정입니다. 나이브 베이즈는 "모든 특징이 독립"이라 대놓고 가정해 계산을 살리는데, 현실의 특징들은 대개 얽혀 있어요(단어들은 서로 상관됩니다). 가정이 틀려도 종종 잘 작동하지만, 확률값 자체는 왜곡됩니다.
  • 밀도는 확률이 아니다. 연속분포에서 f(x)f(x)는 확률이 아니라 밀도라, 1을 넘을 수도 있고 한 점의 확률은 P(X=x)=0P(X = x) = 0입니다. 확률은 넓이(구간의 적분)로만 나오죠. 이걸 헷갈리면 연속·이산을 섞는 곳에서 조용히 틀립니다.
  • iid 가정, 그리고 보정. MLE의 곱은 데이터가 '독립이고 같은 분포(iid)'라는 가정 위에 섭니다 — 시계열이나 편향된 표집에선 깨지죠. 또 하나, 모델이 뱉는 확률이 실제 신뢰도와 맞는지는 별개 문제입니다. "0.9라고 말한 것들이 정말 90% 맞는가"를 재는 **보정(calibration)**은 정확도와 다른 축이고, 딥러닝 모델은 종종 과신합니다.

이 넷을 알고 쓰면, 확률은 AI의 불확실성을 다루는 가장 단단한 문법이 됩니다.

정리 — 모르는 것을 다루는 언어

  • 세 공리: 비음수·전체가 1·서로소면 더하기. 확률 계산의 전부가 여기서 나온다.
  • 분포: 확률변수는 결과에 숫자를, 분포는 그 숫자에 확률을 나눈다. pmf(합 1)·pdf(넓이 1). 베르누이·정규가 단골.
  • 기댓값·분산: 무게중심 E[X]\mathbb{E}[X](선형)와 흩어짐 Var(X)=E[X2]μ2\text{Var}(X) = \mathbb{E}[X^2] - \mu^2. 학습은 기대 손실을 줄인다.
  • 조건부·독립: P(YX)=P(X,Y)/P(X)P(Y\mid X) = P(X,Y)/P(X). 독립일 때만 결합이 곱으로 쪼개진다.
  • 베이즈: 사후 = 사전 × 가능도 ÷ 증거. 학습은 데이터로 믿음을 갱신하는 일이다.
  • MLE: 데이터를 가장 그럴듯하게 하는 파라미터. 음의 로그가능도가 곧 크로스 엔트로피 손실(뒤 편의 씨앗).
  • 정직하게: 빈도 대 베이지안 해석, 독립·iid 가정의 위험, 밀도는 확률이 아님, 모델 확률의 보정 문제.

다음 편에서는 이 확률이 준 '목적'(로그가능도를 최대로, 손실을 최소로)을 어떻게 실제로 최소화하는가로 갑니다 — 미분과 경사하강, 기계가 '배우는' 바로 그 메커니즘입니다.

핵심 한 줄 — 확률은 AI가 모르는 것을 다루는 언어다. 분포로 불확실성을 적고, 기댓값으로 요약하며, 베이즈로 데이터를 보아 믿음을 갱신한다. 그리고 데이터를 가장 그럴듯하게 만드는 최대가능도가, 뒤에 올 손실함수의 씨앗이다.