[기본기 0-2] 딥러닝을 위한 확률/통계 기초

난이도: 기초

태그: 기초수학,확률통계,딥러닝기초

딥러닝 모델은 "정답의 확률"을 예측합니다. 즉 핵심 목표는 입력이 주어졌을 때 정답일 확률 P(y|x)를 높이는 것입니다.

확률은 "불확실한 상황을 숫자로 표현하는 언어"다. 딥러닝도 정답을 단정적으로 출력하기보다, 각 후보가 얼마나 그럴듯한지를 확률처럼 계산한다.

예를 들어 고양이 분류 모델은 단순히 "cat"이라고 말하는 것이 아니라, P(cat|image), P(dog|image), P(car|image)처럼 여러 후보의 가능성을 동시에 낸다. 학습은 이 분포가 실제 정답 분포에 더 가까워지도록 바꾸는 과정이다.

그래서 확률/통계를 이해하면 분류 문제뿐 아니라 language modeling, generative model, uncertainty estimation까지 같은 프레임으로 연결해서 볼 수 있다. 이후에 나오는 likelihood, cross-entropy, KL divergence도 모두 여기서 출발한다.

시각 자료로 먼저 보기

주사위의 확률질량함수 예시
이산 확률분포의 가장 쉬운 예시다. 각 값에 어떤 확률이 붙는지 보면서 probability mass function 감각을 잡기 좋다.
원본 / 라이선스 · Oleg Alexandrov · Public domain
두 개의 주사위 합 분포 막대그래프
확률이 항상 균등하지는 않다는 점을 보여주는 예시다. 두 주사위 합처럼 결과마다 확률이 달라지는 분포를 한 번에 볼 수 있다.
원본 / 라이선스 · Tim Stellmach · Public domain
정규분포 곡선 비교 그림
평균과 분산이 바뀌면 분포 곡선이 어떻게 달라지는지 보여주는 정규분포 그림이다. 이후 loss, 노이즈, 초기화 문서와도 연결된다.
원본 / 라이선스 · Inductiveload · Public domain

왜 딥러닝에서 확률이 중요한가

모델은 정답 자체가 아니라 정답일 가능성을 계산하고, 가장 높은 확률의 클래스를 선택합니다.

즉 모델의 출력은 "하나의 값"이 아니라 "가능성의 분포"라고 보는 편이 정확하다. softmax가 중요한 이유도 바로 이 분포를 만들기 위해서다. 이 관점이 있어야 loss 함수도 단순 점수 차이가 아니라 분포 차이를 줄이는 과정으로 이해된다.

1) 조건부 확률 (Conditional Probability)

P(y|x)=P(x,y)P(x)

왜 필요한가: 딥러닝은 항상 입력 조건 하에서 정답 확률을 계산합니다.

분류 모델에서 P(y|x)를 높인다는 말은, 같은 입력 x에 대해 정답 클래스에 더 큰 확률을 주도록 파라미터를 조정한다는 뜻이다. 언어 모델에서는 앞 문맥이 x, 다음 토큰이 y가 된다. 그래서 조건부 확률은 다양한 모델을 하나로 묶는 공통 구조다.

2) 기댓값 (Expectation)

E[X]=xxP(x)

기댓값은 확률적 평균이며, 학습에서 평균 loss와 직접 연결됩니다.

xP(x)
11/6
21/6
31/6
41/6
51/6
61/6
E[X]=(1+2+3+4+5+6)/6=3.5

3) 분산 (Variance)

Var(X)=E[(Xμ)2]

분산은 평균에서 얼마나 퍼져 있는지 측정합니다. BatchNorm/정규화 해석에도 중요합니다.

4) 로그우도 (Log Likelihood)

L = \prod_i p(x_i), \log L = \sum_i \log p(x_i)

확률을 곱하면 수치가 매우 작아지므로 로그로 바꿔 안정적으로 계산합니다.

주의: p(x)=0이면 \log p(x)가 정의되지 않습니다.

5) Cross-Entropy

H(p,q)=xp(x)logq(x)

정답 확률이 높을수록 loss가 작아지고, 정답 확률이 낮을수록 loss가 커집니다.

딥러닝 최적화 관점에서는 보통 Loss = -\log P(y|x) 형태로 사용됩니다.

코드-수식 연결

수식PyTorch 코드설명
P(y|x)torch.softmax(logits, dim=-1)확률 계산
\log p(x)torch.log(p)로그 확률
-\log P(y|x)nn.CrossEntropyLoss()분류 loss
E[L]loss.mean()배치 평균 loss

자주 하는 오해 5개

체크리스트