Branch Log · Open in interactive viewer →

2. Taylor Approximations

Taylor approximation(테일러 근사)를 활용해 관심 지점 근처에서 비용 함수를 1차(선형) 또는 2차(quadratic)로 근사하면, Lecture 1의 분석을 신경망에서도 국소적으로 적용할 수 있다.


2.1 First-Order Taylor Approximation: The Jacobian

Nick Alger: What do I do with these equations to create a Jacobian matrix?

non-linear 함수를 분석하기 위해선 '입력을 살짝 바꾸면 출력이 얼마나 바뀌는가'를 먼저 알아야 한다. 그리고, 그 답은 Jacobian matrix(야코비 행렬)으로 알 수 있다.

𝐱0

에서 미분 가능한 함수 f:mn

, 𝐲=f(𝐱)

first-order Taylor approximation(1차 테일러 근사)로 linearization(선형화)할 수 있다.

f(𝐱)=f(𝐱0)+𝐉yx(𝐱0)(𝐱𝐱0)+o(𝐱𝐱0)

Jacobian

Δ𝐲=𝐉yxΔ𝐱+o(Δ𝐱)

Note: Δ𝐱 를 0으로 보낼수록(작은 학습률) 오차는 제곱으로 줄어드므로, o(Δ𝐱) 은 선형 항과 달리 무시할 수 있게 된다.

신경망에서 입력 데이터는 고정이므로, 가중치 𝐰 가 변할 때 출력의 변화로 활용하게 된다.

이때 Jacobian은 모든 1차 편미분을 모은 n×m 행렬이다. (신경망에서는 입력 데이터는 고정이며, 가중치가 변화한다. 즉, 분모항을 가중치로 염두해야 한다.)

[𝐉yx(𝐱0)]ij=yixj|𝐱0

Notes (입력 m 개, 출력 n 개) 입력을 살짝 바꾸면 출력이 얼마나 바뀌는지를 나타내는, 모든 편미분( yi/xj ) 쌍을 행렬로 모은 셈이다.

다음은 신경망을 구성하는 두 가지 대표 연산의 Jacobian이다.

연산 Jacobian
Matrix-vector product: 𝐳=𝐖𝐱 𝐉zx=𝐖
Elementwise 연산: 𝐲=exp(𝐳) 𝐉yz=diag(exp(z1),,exp(zD))

Notes: 비용 함수의 출력이 스칼라인 경우 ( 𝒥:m )

Jacobian은 1×m 행 벡터가 되며, 실질 gradient를 전치한 것이다: 𝐉yx=(𝒥(𝐰)) (관례상 𝒥 는 열 벡터)

𝒥(𝐰)=𝒥(𝐰0)+𝒥(𝐰0)(𝐰𝐰0)+o(𝐰𝐰0)


2.1.1 Jacobian-vector product (JVP)

그러나, 전체 파라미터에서 출력의 𝐉yw 를 계산하는 것은 매우 비싸다. 따라서, 실제 분석에서는 행렬을 모두 구하기보단, 필요한 행렬-벡터 곱(Jacobian-vector product, JVP)만 획득한다.

Note: 활용 예시 - directional derivative(방향 미분) (Gateaux derivative, R-operator라고도 부른다.)

Δ𝐰f(𝐰)=limh0f(𝐰+h𝐯)f(𝐰)h=𝐉ywΔ𝐰

정리하자면 가중치를 살짝 바꿨을 때 출력(forward pass 1~2번)을 비교하는 것만으로, JVP를 얻을 수 있다.

Δ𝐲=Δ𝐰f(𝐰)+o(Δ𝐰)

Note Vector-Jacobian product (VJP) Δ𝐰𝐉yw : backpropagation으로 얻을 수 있다.

그러나, 1차 근사는 '지금 어느 방향이 내리막인가'만 알 수 있다. - 나머지는 Hessian을 보아야 한다. (2.2절)


2.2 Second-Order Taylor Approximation: The Hessian

학습 동역학(수렴 속도, 안정성, 어느 해로 이동하는가)을 이해하기 위해선 '비용 표면이 어떻게 휘어있는가'를 알아야 한다. 이러한 곡률 정보는 Hessian matrix(헤세 행렬)이 가진다.

두 번 미분 가능한 𝒥 의, 𝐰0 에서의 Hessian은 2차 편미분으로 구성된 행렬이다.

𝐇(𝐰0)=2𝒥(𝐰0),Hij=2𝒥wiwj|𝐰=𝐰0

여기서 2𝒥wiwj=2𝒥wjwi (편미분 순서는 교환 가능)이므로 𝐇symmetric이다.

즉, Lecture 1의 spectral decomposition, 고유기저로 회전하여 분석할 수 있다.

𝒥(𝐰)=𝒥(𝐰0)+𝒥(𝐰0)(𝐰𝐰0)+12(𝐰𝐰0)𝐇(𝐰𝐰0)+o(𝐰𝐰02)

Note:

𝒥(𝐰0+t𝐯)=𝒥(𝐰0)+(𝒥(𝐰0)𝐯)t+12(𝐯𝐇𝐯)t2+o(t2)

방향 𝐯 (아래 그림의 빨간색 직선)에서의 곡률은, 그 방향으로 자른 1차원 단면 (빨간색 곡선)에서 계산한 2차 미분을 의미한다.

𝐯𝐇𝐯𝐯2

Hessian and curvature

만약 단면 함수가 𝐯𝐇𝐯>0 for 𝐯0 이면, 𝐇 는 대칭이면서 positive definite( 모든 고유값 >0 )인 행렬이다. ( 𝐇0 )

단면 함수가 𝐯𝐇𝐯0 for 𝐯0 이면(평평한 방향도 포함), 𝐇positive semidefinite(PSD, 모든 고유값 0)인 행렬이다. ( 𝐇0 )

Hessian의 고유값 분포(스펙트럼)에 따라 stationary point(기울기가 0인 점)의 정체는 다음과 같다.

𝐇 spectrum stationary point 비고
Positive definite ( 모두 >0 ) local minimum -
Negative definite ( 모두 <0 ) local maximum 실제 학습에서는 드묾
고유값 양,음 혼재 saddle point(안장점) 고차원에서 훨씬 흔함
PSD이지만 일부 고유값 =0 판별 불가 (min/max/둘 다 아님) 고차 항이 결정 (e.g., y=x4 vs y=x4)

Note: y=x4 vs y=x4 사례

고유값이 0이라면(평평하다면), 앞서 2차 테일러 근사에서 세 번째 항도 0이다. 그러므로 나머지 오차 항으로 판별해야 한다.

PSD example


2.3 Gradient Descent Dynamics near Stationary Points

stationary point 𝐰 근처에서 2차 테일러 근사를 취하면, 𝒥(𝐰)=0 이므로 1차 항이 사라진다. 이때 정확히 (Lecture 1와 같은) convex quadratic 문제가 된다. (Hessian 분석의 의의)

𝒥(𝐰)𝒥(𝐰)+12(𝐰𝐰)𝐇(𝐰𝐰)

따라서 Lecture 1의 gradient descent에서 구한 해를 𝐀𝐇 로 그대로 이식할 수 있다

𝐰(k)=𝐰+(𝐈α𝐇)k(𝐰(0)𝐰),w~i(k)=w~i+(1αh~i)k(w~i(0)w~i)

Note: 𝐰(k)𝐰 으로 이항하면?

최적 해까지 남은 거리(오차) = 초기 오차에 행렬 (𝐈α𝐇)k 번 곱한 값으로 이해할 수 있다.


2.3.1 Convergence Analysis

h~i

의 부호에 따라 수렴/발산 여부를 나눌 수 있다. (Lecture 1과 유사)

Case 1: h~i>0 (Local minimum 근방). 안정 조건은 α<2h~max1 이다.

즉, 가장 큰 곡률(최대 고유값)이 가능한 학습률을 결정한다.

local minimum

단, 저곡률 방향의 느린 수렴이 반드시 나쁜 것은 아니다. (해당 방향에 유용한 signal이 얼마나 담겨 있는지가 중요)

Case 2: h~i<0 인 음의 곡률 존재 (Saddle point 근방). |1αh~i|>1 이므로 안장점에서 멀어지게 된다.

다시 말해 gradient descent는 안장점에서 스스로 탈출하므로, 실전 신경망 학습에서 안장점은 대체로 병목이 아니다.

saddle point saddle point 3D

앞서 𝐰(k)𝐰 가 안장점까지의 거리이며, 줄어들지 않고 늘어나므로 결국 멀어지게 된다. (아래 휘는 방향으로 굴러 떨어진다.)

Note: 예외는 대칭적 초기화(symmetric initialization)이며, Newton's method 같은 다른 optimizer는 안장점에 갇힐 수 있다. (Lecture 4)


2.4 Hessian Spectra of Real Neural Networks

An Investigation into Neural Net Optimization via Hessian Eigenvalue Density 논문(2019)

그러나, 파라미터가 D 개면 Hessian은 D×D 으로 엄청난 비용이 발생한다. 따라서, (JVP와 마찬가지로) Hessian도 행렬-벡터 곱(Hessian-vector product, HVP) 형태로 활용한다.

g(𝐰)=𝒥(𝐰)

즉, 𝐇 은 gradient의 Jacobian이다. HVP는 가중치에 perturbation을 더한 이후, 기울기의 변화로 알 수 있다. (JVP는 비용의 변화였다.)

Note:

Note: Hkv (power iteration)

Hv 를 정규화( 𝐮𝐯/𝐯 ) 하고, 다시 HVP를 반복하면 된다. (비용: forward pass의 약 2k 배)

다음은 stochastic Lanczos quadrature를 활용해 ResNet-32의 Hessian 스펙트럼을 추정한 그래프다. (파란색: step 0, 빨간색: step 400)

ResNet-32 Hessian 고유값 스펙트럼의 진화

그러나, 해당 방법으로는 0 근처 고유값의 세밀한 분포(작은 값 vs 극도로 작은 값)를 알기 어렵다. (문제는 학습 동역학에서 바로 해당 정보가 중요하다.)


2.5 Example: Weak Symmetry Breaking in Regularized Linear Autoencoders

Regularized Linear Autoencoders Recover the Principal Components, Eventually 논문(2020)

Hessian 분석을 사용하면, 비용 함수가 수렴했을 때 정말 학습이 끝난 것인지를 판별할 수 있다.

Note: 또한, Hessian 분석은 수학적으로는 (local) optimum 근처에서만 정당화되지만, 테일러 근사가 정확하지 않은 영역에서도 유용한 통찰을 준다.

설명을 위해선 '정답이 명확한 실험'을 활용해야 하는데(수렴했을 때 정답인가?), linear autoencoder가 바로 해당 예제로 적합하다.

(𝐱,𝐱~)=12𝐱𝐱~2

linear autoencoder

하나의 hidden layer + linear activations로 구성된 모델을 예시로 살펴본다.

다음은 encoder 𝐳=𝐖1𝐱 ( K 차원 bottleneck )와 decoder 𝐱^=𝐖2𝐳 를 비용 함수에 대입한 수식이다.

12Ni=1N𝐖2𝐖1𝐱(i)𝐱(i)2

2.5.1 Setup: Linear Autoencoders and the PCA Ground Truth

Taeyang Yang: Principal component analysis

linear autoencoder의 encoder는 압축, 즉 '무엇을 버릴 것인가'를 결정한다. 그리고 square error로 학습할 때, 최적해는 PCA(principal component analysis)와 동치임이 알려져 있다.

Note: PCA(주성분 분석) - 여기서 성분은 방향(고유벡터)을 의미

데이터(feature)를 압축할 때, 분산이 제일 커지는 방향(아래 그림의 대각선)으로 projection한다. (이어서는 '해당 축과 직교하는 축에서 분산이 최대가 되는 축'을 선택 - 상위 K 개 반복)

PCA

Note: lecture 1(1.9절 Case 2)과의 연관성 (고유값을 empirical mean, empirical covariance로 분석)

하지만, 이것만으로는 해가 유일하지 않다(대칭성). 예를 들어 임의의 가역 행렬을 encoder와 decoder에 곱해준다고 하자.

𝒯𝐀(𝐖1,𝐖2)=(𝐀𝐖1,𝐖2𝐀1)

비용 함수에 대입해도 (𝐖2𝐀1)(𝐀𝐖1)=𝐖2𝐖1 이므로, 비용 함수에 미치는 영향이 없다. 따라서 정답을 하나로 강제할 수 없기 때문에, 다음과 같은 non-uniform 2 정규화가 필요하다.

12Ni=1N𝐖2𝐖1𝐱(i)𝐱(i)2+12Λ1/2𝐖1F2+12𝐖2Λ1/2F2

이렇게 non-uniform 2 정규화를 추가하는 것으로, 비로소 유일한 정답을 강제하는 문제가 되었다.


2.5.2 The Puzzle: Cost Converges, but the Solution Doesn't

하지만 정작 경사 하강법으로 최적화를 수행하면, encoder 가중치 행렬의 각 열이 정답(각 주성분) 각도로 정렬되기 전에 비용이 먼저 수렴한다.

1,000 iterations 100,000 iterations
autoencoder cost vs angle, 1k iters autoencoder cost vs angle, 100k iters

그렇다면 왜 이처럼, 비용의 수렴이 해의 수렴을 보장하지 않은 것일까?


2.5.3 Diagnosis: Measuring Directional Curvature at the Optimum

앞서 대칭성을 무한히 많은 해의 원인(평평한 평면)으로 지적하였다. 그런데, 유일한 해로 강제하는 유일한 변환이 rotation(회전)이라면 정규화가 비용 함수에 미치는 영향도 매우 작을 수밖에 없다.

가설: 정규항이 만들어내는 곡률이 너무 약해서, gradient descent가 대칭을 실제로 깨는 데 오랜 시간이 걸린다.

다음은 실제 linear autoencoder의 최적점에서, 두 종류의 변환에 해당하는 방향 벡터에서의 곡률(Rayleigh quotient, HVP로 계산)을 실제로 계산한 도표다.

변환 변환 함수 Rayleigh quotient
Rescaling 𝒯γ(𝐖1,𝐖2)=(γ𝐖1,γ𝐖2) 1.36
Rotation 𝒯θ(𝐖1,𝐖2)=(𝐐θ𝐖1,𝐖2𝐐θ) 0.00042

𝐐θ (Givens rotation): 선택한 2개 좌표축이 이루는 평면만을 θ 라디안 회전시키는 직교 행렬

정리하자면 수렴 속도는 곡률에 비례하지만, 주성분 정렬이 저곡률의 회전 변환으로 이루어질 경우 극도로 수렴이 느려지게 된다. 이 현상을 weak symmetry breaking(약한 대칭 깨짐)이라 부른다.

다음은 손실 평면을 실제로 시각화한 그림이다. (바닥: 가중치 구성, 세로축: 비용)

linear autoencoder loss landscape


2.5.4 Summary

linear autoencoder 예시에서, (가설에 대한) HVP를 바탕으로 한 검증으로 정말 학습이 잘 이루어졌는지 진단할 수 있었다.