Branch Log · Open in interactive viewer →

2. Taylor Approximations

Hessian은 분석에 있어서 중심 도구이지만, 두 가지 결함이 존재한다.

No. Case Description
(1) PSD가 아닌 경우(음의 고유값 가능) Newton's method: 음의 고유값이 있다면 안장점으로 끌려갈 수 있다.(Lecture 4)
conjugate gradient(2.7절) 불가: PSD가 전제되어야 한다.
(2) 활성화 함수의 2차 미분이 무의미한 경우 예를 들어, ReLU의 2차 미분은 0이거나 계산할 수 없으므로 곡률 정보가 무의미하다.

Hessian이 필요하지만 사용할 수 없는 경우에는 Gauss-Newton Hessian(2.6절)을 사용한다.

e.g., Hessian-free optimization(Lecture 4): GN-HVP(2.6절) + Conjugate Gradient(2.7절)


2.6 Gauss-Newton Hessian

분류 문제에서의 비용 함수 𝒥 가 있다고 하자.

𝒥=(f(𝐰,𝐱),𝐭)

비용 함수 𝒥 를 이차 미분하면 Hessian 2𝒥𝐱,𝐭(𝐰) 을 얻을 수 있다.

Note: 이차 미분의 다변수 버전

𝒥(w)=(f(w))·f(w)2+(f(w))·f(w)

f𝐉zw , 𝐇𝐳 로 치환하면 Hessian 버전의 수식을 얻을 수 있다.

다음은 Hessian을 이차 미분 공식에 따라 decomposition한 수식이다. /𝐳0 이면, 즉 학습이 잘 되면 두 번째 항은 무시(drop)할 수 있다.

2𝒥𝐱,𝐭(𝐰)=𝐉zw𝐇𝐳𝐉zwGauss-Newton Hessian+aza𝐰2[f(𝐱,𝐰)]adrop

다음은 출력 공간(output space)에서 두 항이 어떤 모양인지를 보여주는 그림이다.

(f(t)) (초록색) · f(t)2 (빨간색^2) (f(t)) (초록색) · f(t) (빨간색)
Hessian decomposition 1 Hessian decomposition 2
GN-Hessian 음의 고유값을 가질 수 있으며, 𝐳 가 최적해일 땐 항이 사라진다(drop)

핵심은 GN-Hessian이 (분석할 수 있는 한도 내에서 절충하듯) 손실 함수의 2차 정보(곡률)와, 네트워크의 1차 정보를 취한다는 점이다. (저차원이고 볼록한 손실에서는 곡률을 취하고, 고차원이며 볼록하지 않은 f 에서는 1차 정보만을 취한다.)

무엇보다 손실 함수(squared error, softmax-cross-entropy)는 convex하므로 output Hessian 𝐇𝐳 는 PSD를 만족한다. 자연스럽게 GN-Hessian도 PSD를 만족한다. (행렬 𝐀 가 PSD라면 𝐁𝐀𝐁 형태에서도 PSD는 보존된다.)


2.6.1 Some Notes/Gotchas on GN-Hessian

(1) /𝐳 가 0에 가깝지 않아도 GN-Hessian은 여전히 유효하다. A. 최적화의 국소성에 따라 fflin 이 성립하며, B. (flin) 의 Hessian이 바로 GN-Hessian이기 때문이다.

flin(𝐰,𝐱)=f(𝐰,𝐱)+𝐉zw(𝐰𝐰) 𝒥lin(𝐰)=(flin(𝐰,𝐱),𝐭) 𝐰

관점에서 f(𝐰,𝐱)

Jzw

는 상수이므로 flin(𝐰,𝐱)

는 1차 함수다. 그러므로 앞서 decomposition 수식에서 f=0

을 대입하면 오른쪽 항은 제거된다.


(2) 'Gauss-Newton'이란 용어는 종종 squared error 알고리즘 한정으로 쓰인다.


(3) logits을 '확률로 정규화한 값'이 아닌, logits 자체를 출력으로 분석해야 함에 주의한다.


(4) HVP와 달리(HVP: autodiff 1회로 획득), GN HVP는 순차적인 계산이 필요하다.

𝐆𝐯=𝐉zw(𝐇𝐳(𝐉zw𝐯))

2.7 Solving Linear Systems with Conjugate Gradient

An Introduction to the Conjugate Gradient Method Without the Agonizing Pain 논문(1994)

이후 강의에서는 여러 공식에 있는 '역행렬 × 벡터' 식( 𝐀1𝐛 )을 풀어야 한다. 그런데 작은 toy 예제가 아닌 한, 역행렬은 고사하고 𝐀 (= 𝐇 또는 𝐆 )를 얻기도 어렵다.

주목할 부분은, 'linear system(선형계) 𝐀𝐱=𝐛 를 만족하는 해 𝐱 찾기' 문제로 정의해도 무방하다는 점이다. 다시 말해, 다음과 같은 이차 함수 형태의 비용 함수를 최적화하는 문제와 동일하다.

𝒥(𝐱)=12𝐱𝐀𝐱𝐛𝐱

최소화 문제이므로 경사 하강법을 활용할 수 있으며, gradient 1회 계산 = MVP 1회 비용만 필요하다.

𝐱(k+1)𝐱(k)α(𝐀𝐱(k)𝐛)

그러나 경사 하강법의 반복해는 작은 고유값 방향에서 O(κ) 로 느리게 수렴했다.(Lecture 1)


적어도 경사 하강법에서 얼마나 보폭을 조정해야 하는지는 알 수 있다. ( 방향 𝐩k x 보폭 αk )

**Example** **Position**
![line search](https://raw.githubusercontent.com/erectbranch/NN-Training-Dynamics/master/lec02/summary02/images/line_search.png) 𝐱0=[30]𝐱1=[11]𝐱2=[] 𝐱k+1=𝐱k+αk𝐩k

exact line search란, 현재 위치 𝐱 에서 정해진 방향 𝐩 을 보았을 때, 나아갈 최적의 보폭을 찾는 절차다.( 𝐱𝐩 는 상수, 변수는 α 하나뿐)

α=\argminα𝒥(𝐱+α𝐩) g(α)=𝒥(𝐱)+α𝐩(𝐀𝐱𝐛)+12α2𝐩𝐀𝐩

수식을 보면 단면이 정확히 포물선임을 알 수 있다. 따라서, 최솟점(최적의 보폭)은 g(α)=0 으로 얻을 수 있다.

α=𝐩(𝐀𝐱𝐛)𝐩𝐀𝐩

Note: 필요한 계산은 Ap (MVP)와 두 번의 내적뿐이다.

exact line search에서 가져야 할 직관은 두 가지다.

실제로 경사 하강법은 좁은 계곡에서 소수의 방향을 지그재그로 재방문하며 O(κ) 의 비용이 필요하다.


2.7.2 Conjugate Directions

그렇다면 과거에 이미 최적화를 끝낸 방향 𝐝 를 재방문하지 않으려면 어떻게 해야 할까? 다음은 기울기 수식이다.

𝐠=𝐀𝐱𝐛 𝐝(𝐠+α𝐀𝐩)=𝐝𝐠=0+α𝐝𝐀𝐩

line search에 의해 직전 방향으로는 더이상 최적화 여지가 없다. ( 𝐝𝐠=0 )

핵심은 𝐝 방향의 성분이 정확히 α𝐝𝐀𝐩 만큼 부활한다는 점이다. Conjugate Gradient(CG)는 매 업데이트의 방향이 𝐀𝐩k1 과 직교하도록 강제하여 직전 성분의 부활을 방지한다. (이를 conjugacy 조건으로 정의)

𝐩k𝐀𝐩k1=0

Note: 내적을 𝐮𝐀𝐯 로 정의한 버전의 Gram-Schmidt Orthogonalization로 이해할 수 있다.

Note: 방향 𝐩k=𝐠k+β𝐩k1 에서 βk 정의

𝐩k𝐀𝐩k1=0

𝐠k𝐀𝐩k1+β𝐩k1𝐀𝐩k1=0

βk=𝐠k𝐀𝐩k1𝐩k1𝐀𝐩k1

정리하자면 𝐀 가 대칭이며 PSD라면 일반 경사 하강법 대신, 동일한 비용(iteration당 MVP 1회)이지만 훨씬 빠른 Conjugate Gradient(CG)를 활용할 수 있다.

Note: 다음을 만족하면 nonzero 벡터들 {𝐩0,𝐩1,,𝐩k} 이, 대칭이며 positive definite인 행렬 𝐀 에 대해 서로 conjugate하다.

𝐩i𝐀𝐩j=0(for all ij)


2.7.3 Krylov Subspace

앞서 경사 하강법에서 업데이트마다 부활하는 성분을 알았다.

𝐠j+1=𝐠j+αj𝐀𝐩j

즉, k 스텝 동안 기울기는 𝐛,𝐀𝐛,,𝐀k1𝐛 으로 구성된다.( 𝐱0=0 가정 ) 정리하자면 모든 반복해 𝐱(k) 는 이들이 span하는 Krylov subspace에 속한다.

𝒦k(𝐀,𝐛)=span{𝐛,𝐀𝐛,,𝐀k1𝐛}

Note: Krylov subspace

MVP를 k 번 쓴 알고리즘이 도달할 수 있는 모든 영역(집합). CG만이 아니라 GD, momentum GD를 포함한 모든 MVP 기반 알고리즘의 공통 제약이다.

어떤 MVP 기반 알고리즘도 다음 하한을 넘을 수 없다.

𝒥(𝐱(k))min𝐱𝒦k(𝐀,𝐛)𝒥(𝐱)

그리고 CG가 바로 이 하한을 정확히 달성하는 효율적인 알고리즘이다.

Algorithm Convergence Rate #MVP/iteration
Gradient descent O(κ) 1
Conjugate gradient O(κ) 1

2.8 Example: Sensitivity to Dataset Perturbations

Understanding Black-box Predictions via Influence Functions 논문(2017)

Hessian, GN-Hessian, CG를 모두 활용하는 분석 예제를 살펴보자. '학습 데이터를 살짝 바꾸면 결과가 어떻게 달라질까'라는 의문을 해결할 것이다.

(1) 예제의 중요도를 파악(influence functions)하거나, (2) 잘못 레이블한 데이터를 식별하거나, (3) 변조/공격(data poisoning)을 분석하는 등 다양한 도메인에서 필요하다.

다음은 response function(rational reaction function)이다. 문제 설정 θ 를 바꾸면 해가 어떻게 달라지는가 규칙 r 으로 식을 정의한다. (이때 가중치 𝐰 는 argmin에 의해 자동으로 정의되는 값이다.)

𝐰=r(θ)=\argmin𝐰𝒥(𝐰;θ)

문제는 r(θ) 에 대한 명시적인 공식은 없다.( 조건 𝐰𝒥=0 만 존재 ) 그럼에도 정의할 수 있는 이유는 Implicit Function Theorem(IFT, 음함수 정리)에 의해 보장되기 때문이다.

argmin으로 기울기가 0일 때를 조건( F=𝐰𝒥=0 )으로 두었으므로, IFT의 첫 번째 조건 F(𝐰,θ)=0 을 만족한다. 이어서 F/𝐰 가 가역이여야 한다는 두 번째 조건은, Hessian이 가역이어야 한다는 말과 동치다. (positive definite일 때 만족한다.)

Note: Implicit Function Theorem (IFT, 음함수 정리)

방정식 F(𝐰,θ)=0 이 있고 F/𝐰 가 가역이면,

작은 섭동 Δθ 의 효과는 response Jacobian(reaction Jacobian)으로 알 수 있다.

𝐉𝐰θ=drdθ=[𝐰2𝒥(𝐰;θ)]1𝐰θ2𝒥(𝐰;θ)

곡률이 낮은(평평한) 방향일수록, 같은 섭동에서 최적 가중치가 크게 움직인다. (2.5절에서 살핀 저곡률 개념이, 민감도 관점에서 다시 등장)

Note

단, 실전에서는 inverse Hessian 항을 GN-Hessian + damping(Lecture 4)으로 구한다.


2.8.1 Toy Example

다음 1차원 toy 비용 함수에서 민감도를 분석해 보자. 파란색 실선은 λ=0 일 때의 가중치(x축)에 따른 비용(y축)을 나타낸다. (주황색: λ=3 으로 섭동을 준 경우)

𝒥(w;λ)=g(w)+λw

sensitivity toy

mixed 항( w 로 한 번, λ 로 한 번 미분 ) 계산 시 값은 1(상수)이다. 따라서 response Jacobian은 inverse Hessian 항( w 로 두 번 미분 ) 1/g(w) 만 남는다.

즉, 각 최솟값에서 이차 미분(곡률)에 반비례하게 섭동에 대한 민감도가 결정된다.

Note: 한 데이터 point를 옮겼을 때 fitted curve의 변화 (초록 × 빨간 ×)

다음은 CG 반복 수(그래프의 라벨)에 따른 fitted curve(입력에 따른 출력)를 보여준다. (x축: 입력, y: 출력)

CG+fitted curve

변화가 국소적이라는 사실에 주목하자. 옮긴 데이터 포인트 근처에서만 곡선이 크게 솟고 먼 곳은 거의 그대로이다. (한 데이터가 어디에 영향을 미치는지를 알 수 있다.)