Skip to content

5회 · 정규분포의 탄생과 Galton의 타원 · 노트

6 Beautiful insights — 정리 C는 어디에나 있다 ​

6.1 Gaussian Process 회귀 = 정리 C 한 번 ​

격자 위의 함수값 fg=(f(s1),…,f(sm))′\mathbf f_g=(f(s_1),\allowbreak \dots,\allowbreak f(s_m))\T와 관측 y=f(so)+ϵ\mathbf y=f(\mathbf s_o)+\boldsymbol\epsilon, ϵ∼N(0,σn2I)\boldsymbol\epsilon\sim\N(\mathbf0,\allowbreak \sigma_n^2I)를 함께 결합정규로 놓는다. 공분산은 커널 k(s,s′)k(s,s')로 준다. 예를 들어 k(s,s′)=a2exp⁡{−(s−s′)2/(2ℓ2)}k(s,\allowbreak s')=a^2\exp\{-(s-s')^2/(2\ell^2)\}.

(fgy)∼N(0, (KggKgoKogKoo+σn2I)).\begin{pmatrix}\mathbf f_g\\ \mathbf y\end{pmatrix}\sim\N\left(\mathbf0,\ \begin{pmatrix}K_{gg}&K_{go}\\K_{og}&K_{oo}+\sigma_n^2I\end{pmatrix}\right).

정리 3.13을 한 번 쓰면 사후분포가 나온다.

fg∣y∼N(Kgo(Koo+σn2I)−1y,  Kgg−Kgo(Koo+σn2I)−1Kog).\mathbf f_g\mid\mathbf y\sim\N\Bigl(K_{go}(K_{oo}+\sigma_n^2I)^{-1}\mathbf y,\ \ K_{gg}-K_{go}(K_{oo}+\sigma_n^2I)^{-1}K_{og}\Bigr).

Σ12Σ22−1\Sigma_{12}\Sigma_{22}^{-1}와 Schur 보수가 그대로 들어 있다. 관측점에서 멀어질수록 KgoK_{go}가 작아져 사후평균은 사전평균 00으로 회귀하고 사후분산은 사전분산으로 돌아간다. 노트북 6.1절은 MVN.conditional을 고치지 않고 이것을 그린다.

6.2 Pearson (1901): 회귀선 둘, 주성분 하나 ​

Pearson은 1901년 On lines and planes of closest fit to systems of points in space에서 물었다. 점들에 “가장 가까운” 직선은 무엇인가? 세로 거리를 최소화하면 E[Y∣X]E[Y\mid X], 가로 거리를 최소화하면 E[X∣Y]E[X\mid Y]다. 수직 거리를 최소화하면 다음 명제의 답이 나온다.

명제 6.1 (제1 주성분은 수직거리를 최소화한다) EX=μE\X=\bmu, Cov⁡X=Σ\Cov\X=\Sigma인 X∈Rn\X\in\R^n과 단위벡터 v\mathbf v가 정하는 직선 ℓv={μ+tv}\ell_{\mathbf v}=\{\bmu+t\mathbf v\}에 대해

E[dist⁡(X,ℓv)2]=tr⁡Σ−v′Σv.E\bigl[\operatorname{dist}(\X,\ell_{\mathbf v})^2\bigr]=\tr\Sigma-\mathbf v\T\Sigma\mathbf v .

따라서 이 값을 최소로 하는 v\mathbf v는 Σ\Sigma의 가장 큰 고유값의 고유벡터이고, 최솟값은 나머지 고유값의 합이다.

증명 D=X−μ\mathbf D=\X-\bmu로 두면 직선까지의 거리는 D\mathbf D에서 v\mathbf v 방향 성분을 뺀 길이이므로 dist⁡2=∥D∥2−(v′D)2\operatorname{dist}^2=\|\mathbf D\|^2-(\mathbf v\T\mathbf D)^2. 기댓값을 취하면 E∥D∥2=tr⁡ΣE\|\mathbf D\|^2=\tr\Sigma, E(v′D)2=v′ΣvE(\mathbf v\T\mathbf D)^2=\mathbf v\T\Sigma\mathbf v. Rayleigh 몫 v′Σv\mathbf v\T\Sigma\mathbf v의 단위벡터 위 최댓값은 λmax⁡\lambda_{\max}이고 그 고유벡터에서 얻는다.

주성분 축은 정리 D의 타원의 장축이다(따름정리 3.18). Galton의 자료에서 세 직선의 기울기는 0.650.65(E[E[자녀∣\mid부모]]), 2.022.02(제1 주성분), 3.073.07(E[E[부모∣\mid자녀]])이다. 주의할 점이 있다. 단위를 바꾸면 주성분은 바뀌지만 회귀선은 바뀌지 않는다.

그림 6.1. Galton 자료를 지나는 세 “최선의” 직선.
그림 6.1 Galton 자료를 지나는 세 “최선의” 직선.

6.3 백색화와 BatchNorm ​

정리 3.8로 Σ−1/2(X−μ)∼N(0,I)\Sigma^{-1/2}(\X-\bmu)\sim\N(\mathbf0,\allowbreak I), 곧 타원을 원으로 만들 수 있다(백색화). BatchNorm은 좌표마다 평균과 표준편차만 나눈다. D=diag⁡(Σ)D=\diag(\Sigma)로 쓰면 D−1/2(X−μ)D^{-1/2}(\X-\bmu)이고, 그 공분산은 상관행렬이다. 기울어진 타원은 그대로 남는다. 상관까지 없애는 Decorrelated BatchNorm(Huang et al., 2018)이 바로 Σ−1/2\Sigma^{-1/2} 백색화다.

6.4 Reparameterization trick과 두 정규 사이의 KL ​

VAE의 인코더가 μϕ(x)\bmu_\phi(\x)와 Lϕ(x)L_\phi(\x)를 내면 잠재변수는 정리 3.5의 구성 그대로 z=μϕ+Lϕϵ\z=\bmu_\phi+L_\phi\boldsymbol\epsilon, ϵ∼N(0,I)\boldsymbol\epsilon\sim\N(\mathbf0,\allowbreak I)로 뽑는다. 무작위성이 ϵ\boldsymbol\epsilon에만 있으므로 ∂z/∂μϕ=I\partial\z/\partial\bmu_\phi=I이고 역전파가 흐른다. VAE 손실의 둘째 항은 두 정규분포 사이의 KL이다.

명제 6.2 (두 다변량 정규 사이의 KL 발산) N0=Nn(μ0,Σ0)\N_0=\N_n(\bmu_0,\Sigma_0), N1=Nn(μ1,Σ1)\N_1=\N_n(\bmu_1,\Sigma_1), 둘 다 양정치이면

KL(N0 ∥ N1)=12[tr⁡(Σ1−1Σ0)+(μ1−μ0)′Σ1−1(μ1−μ0)−n+log⁡∣Σ1∣∣Σ0∣].\mathrm{KL}(\N_0\,\Vert\,\N_1)=\frac12\Bigl[\tr(\Sigma_1^{-1}\Sigma_0)+(\bmu_1-\bmu_0)\T\Sigma_1^{-1}(\bmu_1-\bmu_0)-n+\log\frac{|\Sigma_1|}{|\Sigma_0|}\Bigr].

증명 KL=E0[log⁡f0(X)−log⁡f1(X)]\mathrm{KL}=E_0[\log f_0(\X)-\log f_1(\X)]이고 정리 3.6로

log⁡f0−log⁡f1=12log⁡∣Σ1∣∣Σ0∣+12(X−μ1)′Σ1−1(X−μ1)−12(X−μ0)′Σ0−1(X−μ0).\log f_0-\log f_1=\frac12\log\frac{|\Sigma_1|}{|\Sigma_0|}+\frac12(\X-\bmu_1)\T\Sigma_1^{-1}(\X-\bmu_1)-\frac12(\X-\bmu_0)\T\Sigma_0^{-1}(\X-\bmu_0).

E[Y′AY]=tr⁡(ACov⁡Y)+(EY)′A(EY)E[\Y\T A\Y]=\tr(A\Cov\Y)+(E\Y)\T A(E\Y)(연습 6.1)를 X∼N0\X\sim\N_0에 쓰면 셋째 항의 기댓값은 tr⁡(Σ0−1Σ0)=n\tr(\Sigma_0^{-1}\Sigma_0)=n이고, 둘째 항의 기댓값은 tr⁡(Σ1−1Σ0)+(μ0−μ1)′Σ1−1(μ0−μ1)\tr(\Sigma_1^{-1}\Sigma_0)+(\bmu_0-\bmu_1)\T\Sigma_1^{-1}(\bmu_0-\bmu_1)이다.

연습문제

연습 6.1 (이차형식의 기댓값 ★) EY=mE\Y=\mathbf m, Cov⁡Y=V\Cov\Y=V이면 E[Y′AY]=tr⁡(AV)+m′AmE[\Y\T A\Y]=\tr(AV)+\mathbf m\T A\mathbf m임을 보여라. (힌트: Y′AY=tr⁡(AYY′)\Y\T A\Y=\tr(A\Y\Y\T).)

풀이

Y′AY=tr⁡(Y′AY)=tr⁡(AYY′)\Y\T A\Y=\tr(\Y\T A\Y)=\tr(A\Y\Y\T)이고 대각합과 기댓값은 순서를 바꿀 수 있으므로

E[Y′AY]=tr⁡(A E[YY′])=tr⁡(A(V+mm′))=tr⁡(AV)+m′Am.E[\Y\T A\Y]=\tr\bigl(A\,E[\Y\Y\T]\bigr)=\tr\bigl(A(V+\mathbf m\mathbf m\T)\bigr)=\tr(AV)+\mathbf m\T A\mathbf m .

연습 6.2 (VAE의 KL 항 ★) 명제 6.2에서 N0=N(μ,diag⁡(σ12,…,σn2))\N_0=\N(\bmu,\allowbreak \diag(\sigma_1^2,\allowbreak \dots,\allowbreak \sigma_n^2)), N1=N(0,I)\N_1=\N(\mathbf0,I)이면 KL=12∑i(σi2+μi2−1−log⁡σi2)\mathrm{KL}=\tfrac12\sum_i(\sigma_i^2+\mu_i^2-1-\log\sigma_i^2)임을 보여라.

풀이

Σ1=I\Sigma_1=I, μ1=0\bmu_1=\mathbf0을 넣으면 tr⁡Σ0=∑σi2\tr\Sigma_0=\sum\sigma_i^2, 이차형식은 ∑μi2\sum\mu_i^2, log⁡∣I∣∣Σ0∣=−∑log⁡σi2\log\tfrac{|I|}{|\Sigma_0|}=-\sum\log\sigma_i^2이다.

연습 6.3 (주성분의 기울기 ★★) 2×22\times2 공분산 Σ\Sigma의 가장 큰 고유값을 λ1\lambda_1이라 하면 제1 주성분 방향의 기울기가 (λ1−Σ11)/Σ12(\lambda_1-\Sigma_{11})/\Sigma_{12}임을 보이고, 표 2.1의 Σ^\hat\Sigma로 2.022.02를 확인하라. yy의 단위를 센티미터로 바꾸면(×2.54\times2.54) 주성분의 기울기와 두 회귀선의 기울기는 각각 어떻게 되는가?

풀이

(Σ−λ1I)v=0(\Sigma-\lambda_1I)\mathbf v=\mathbf0의 첫 행 (Σ11−λ1)v1+Σ12v2=0(\Sigma_{11}-\lambda_1)v_1+\Sigma_{12}v_2=0에서

v2v1=λ1−Σ11Σ12=7.355−3.1912.062=2.02.\frac{v_2}{v_1}=\frac{\lambda_1-\Sigma_{11}}{\Sigma_{12}}=\frac{7.355-3.191}{2.062}=2.02 .

yy를 센티미터로 바꾸면 두 회귀선의 기울기는 정확히 2.542.54배(1.641.64와 7.807.80)가 된다. 그런데 주성분의 기울기는 2.02×2.54=5.132.02\times2.54=5.13이 아니라 7.337.33이 된다. 주성분은 척도에 따라 방향 자체가 바뀐다.

이 회차에서 읽은 절 0개 · 회차 차례