인지야공

인지야공/인공 지능 공부 치트 시트 정리/10번째 글

CS229 수학 리프레셔를 다시 쓴다 — 왜 n=30 이고 왜 n-1 인가

수학 리프레셔는 정의가 촘촘해서 다 옮기면 교과서가 된다. 머신러닝 코드에서 실제로 다시 만나는 것만 남기고, 늘 얼버무리게 되는 경험칙 두 개(왜 n−1 인가, 왜 n=30 인가)는 숫자로 확인했다.

기술통계·추론통계와 척도 이야기는 통계의 지도 글에, 분포들 사이의 관계는 확률 분포 글에 적어 두었다.

베이즈 — 생성 모델이 서 있는 자리

P(A∣B)=P(B∣A) P(A)P(B)P(A \mid B) = \frac{P(B \mid A)\,P(A)}{P(B)}

표본공간을 {Ai}\{A_i\} 로 쪼갤 수 있으면 분모를 펼칠 수 있다.

P(Ak∣B)=P(B∣Ak)P(Ak)∑i=1nP(B∣Ai)P(Ai)P(A_k \mid B) = \frac{P(B \mid A_k)P(A_k)}{\sum_{i=1}^{n} P(B \mid A_i)P(A_i)}

분모는 결국 “모든 경우를 더한 것” 이다. 나이브 베이즈가 분모를 계산하지 않고도 분류할 수 있는 이유가 여기 있다 — 부류마다 분모가 같으니 비교에는 분자만 있으면 된다.

독립은 곱으로 갈라지는 것이다: P(A∩B)=P(A)P(B)P(A \cap B) = P(A)P(B). 조건부 독립을 가정하는 것이 나이브 베이즈의 “나이브”다.

순열은 순서를 따지고 조합은 따지지 않는다.

P(n,r)=n!(n−r)!,C(n,r)=P(n,r)r!=n!r!(n−r)!P(n,r) = \frac{n!}{(n-r)!}, \qquad C(n,r) = \frac{P(n,r)}{r!} = \frac{n!}{r!(n-r)!}

기댓값과 분산 — 상수가 나올 때 제곱이 붙는다

E[aX+b]=aE[X]+b,Var⁡(aX+b)=a2Var⁡(X)E[aX+b] = aE[X]+b, \qquad \operatorname{Var}(aX+b) = a^2\operatorname{Var}(X)

분산에서는 상수가 제곱으로 나온다. 표준화 (x−μ)/σ(x-\mu)/\sigma 뒤에 분산이 1 이 되는 것도, 표본평균의 표준편차가 σ/n\sigma/\sqrt{n} 인 것도 전부 이 식에서 나온다.

Cov⁡(X,Y)=E[XY]−E[X]E[Y],ρ=Cov⁡(X,Y)σXσY\operatorname{Cov}(X,Y) = E[XY] - E[X]E[Y], \qquad \rho = \frac{\operatorname{Cov}(X,Y)}{\sigma_X \sigma_Y}

상관계수는 공분산을 각자의 표준편차로 나눠 단위를 없앤 것이다. 그래서 −1 과 1 사이에 갇힌다. 공분산만 보면 크기 비교를 할 수 없다.

왜 n−1 로 나누는가

모분산 1/121/12(≈0.0833\approx 0.0833)인 균등분포에서 5개씩 2만 번 뽑아 재 봤다.

나눈 수표본분산의 평균
nn 으로 (ddof=0)0.06643
n−1n-1 로 (ddof=1)0.08312

nn 으로 나누면 참값보다 작게 나온다. 표본평균을 쓰는 순간 편차가 실제보다 작아지기 때문이다(표본평균은 그 표본에 가장 가까운 값이다). 자유도 하나를 빼서 그만큼을 보정하는 것이 n−1n-1 이다. 이유는 자유도 이야기에 적었고, 여기서는 실제로 그렇게 나온다는 것만 확인했다.

왜 n=30 인가

중심극한정리는 원래 분포가 무엇이든 표본평균이 정규분포로 간다고 말한다. 균등분포에서 직접 뽑아 정규성 검정을 걸어 봤다.

표본 크기표본평균의 표준편차 (이론값)정규성 검정 p
10.2889 (0.2887)0.000
20.2057 (0.2041)0.000
50.1283 (0.1291)0.000
300.0523 (0.0527)0.875

n=5 까지는 “정규가 아니다”가 또렷하고, n=30 에서는 정규와 구별되지 않는다. 실무에서 쓰는 30 이라는 숫자는 이 언저리를 가리키는 경험칙이다. 표준편차가 σ/n\sigma/\sqrt{n} 을 정확히 따라가는 것도 표에서 보인다.

체비셰프 — 분포를 몰라도 되는 보험

P(∣X−μ∣≥kσ)≤1k2P(|X-\mu| \ge k\sigma) \le \frac{1}{k^2}

kk실제(정규분포)상한
1.50.13280.4444
20.04540.2500
30.00250.1111

상한이 아주 헐렁하다. 대신 어떤 분포에서도 성립한다는 것이 값어치다. 분포를 가정할 수 있으면 훨씬 좁은 구간을 쓰고, 아무것도 모를 때 이걸 쓴다.

선형대수 — 실제로 다시 만나는 것들

xTy=∑ixiyi∈R(내적),xyT∈Rm×n(외적)x^T y = \sum_i x_i y_i \in \mathbb{R} \qquad\text{(내적)}, \qquad xy^T \in \mathbb{R}^{m \times n} \qquad\text{(외적)}

내적은 스칼라, 외적은 행렬이다. 모양이 안 맞아 생기는 오류의 절반은 이 둘을 헷갈린 것이다.

기억할 성질은 몇 개뿐이다.

  • 대칭행렬(A=ATA = A^T)은 실수 고윳값을 갖고, 고유벡터를 서로 직교하게 잡을 수 있다(스펙트럼 정리)
  • 공분산 행렬은 항상 대칭이고 고윳값이 음수가 아니다(양의 준정부호)
  • 랭크는 서로 독립인 열의 개수다. 랭크가 모자라면 XTXX^TX 의 역행렬이 없다 — 다중공선성이 회귀를 망가뜨리는 지점이다

직접 확인해 보면 그대로다.

C = np.cov(A.T)
np.allclose(C, C.T)              # True — 대칭
np.linalg.eigh(C)[0]             # [0.075, 0.0814, 0.0869, 0.0952] — 전부 0 이상
V.T @ V ≈ I                      # True — 고유벡터가 직교

이 두 성질이 PCA가 성립하는 근거다. 공분산 행렬이 대칭이라 직교하는 축을 뽑을 수 있고, 고윳값이 음수가 아니라 “분산”으로 읽을 수 있다.

미적분 — 행렬 미분 네 줄

식미분 ∇x\nabla_x
bTxb^T xbb
xTAxx^T A x(A+AT)x(A + A^T)x
xTAxx^T A x (AA 대칭)2Ax2Ax
∥x∥22=xTx\lVert x \rVert_2^2 = x^Tx2x2x

수치미분으로 맞춰 보면 소수점 여섯 자리까지 같다.

해석해 (A + A.T) @ x : [0.444275, 0.607160, 0.591426]
수치해 (중앙차분)     : [0.444275, 0.607160, 0.591426]

두 번째 줄에서 AA 가 대칭이면 2Ax2Ax 가 된다. 최소제곱의 정규방정식이 여기서 나온다 — ∥Xθ−y∥2\lVert X\theta - y\rVert^2 를 θ\theta 로 미분해 0 으로 놓으면 XTXθ=XTyX^TX\theta = X^Ty 이고, 양변을 풀면 지도학습 글의 그 식이다.

헤시안은 2차 미분을 모은 행렬 ∇2f\nabla^2 f 다. 뉴턴법이 쓰는 것이 이것이고, 헤시안이 양의 정부호면 그 점은 극소다.

출처

Afshine Amidi · Shervine Amidi 의 CS 229 VIP Refresher: Probabilities and Statistics 와 Linear Algebra and Calculus(Stanford, 2018)를 보고 다시 쓴 것이다. 원본은 stanford.edu/~shervine에 있다. 표의 숫자는 전부 내가 직접 돌려 얻은 것이다.

표시는 이 브라우저에만 남는다. 서버로 가는 것은 없다.