모바일 앱 환경에서는 latex 수식이 깨져 나타나므로, 가급적 웹 환경에서 봐주시길 바랍니다.
오늘과 다음 글 두 번에 걸쳐 Natural gradient descent에 대해 이야기하고자 한다.
Natural gradient descent는 Fisher information matrix를 활용한 optimization method로서, Fisher information matrix에 대해서는 이전 글을 참고하기 바란다.
https://kyteris0624.tistory.com/39
Deep-dive into Optimization : Second-order method (3)
모바일 앱 환경에서는 latex 수식이 깨져 나타나므로, 가급적 웹 환경에서 봐주시길 바랍니다. 이번 글과 다음 글에서는 Fisher information matrix를 활용한 알고리즘 'Natural gradient descent에 대해 이야기
kyteris0624.tistory.com
이 글과 다음 글은 아래 2개의 논문을 참조하여 작성되었다.
* Razvan Pascanu, Yoshua Bengio, "Revisiting natural gradient for deep networks", arXIv 2014
* James Martens, "New insights and perspectives on the Natural Gradient Method", JMLR 2020
--- Riemannian geometry, Information geometry에 대한 background를 상정하지 않고 본 글을 작성하였다.
Riemannian geometry에 대한 background가 있다면 Natural gradient algorithm은 Fisher information metric이 정의된 Riemannian manifold 상에서의 gradient descent 알고리즘으로 볼 수 있다.
우선, Natural gradient descent는 다음과 같은 'natural gradient'를 사용하여 Neural networks의 parameter를 업데이트한다.

여기서 wt+1은 t+1 번째 iteration을 의미하며, ηt는 step-size, F−1은 wt에서의 Fisher information matrix의 inverse, ∇L(wt)는 wt에서의 Loss function의 gradient를 나타낸다.
앞서 Gradient descent에서도 이야기하였듯이, Negative gradient −∇L(wt)는 "국소적으로" 가장 가파른 방향으로 Loss function을 감소하게 한다.
이때, 파라미터 공간을 Euclidean geometry로 정의하면, 파라미터 사이의 거리는 Euclidean distance로 표현된다.
그리고 이는 inner product를 dot product로 정의한 것을 바탕으로 한다.
이 지점에서 Natural gradient descent의 Motivation이 등장한다.
Neural network는 (probability) distribution을 모델링한 것으로 볼 수 있고, 때문에 wt에서의 distribution과 wt+ϵ과의 distribution의 차이를 단순히 L2−norm으로 측정하면 거리의 왜곡이 발생할 수 있다.
Natural gradient descent는 이 parameter space에서 파라미터들 사이의 거리를 L2−norm이 아닌 확률분포들의 공간, "Statistical manifold"의 관점에서 측정해야 한다는 점에서 Motivation이 있다.
구체적으로 Neural network의 파라미터인 w로 parameterized되는 distribution을 다음과 같이 표현해보자.
Px,y(w)
그러면 wt에서 wt+1로 파라미터가 업데이트될때, 이동할 때 어떠한 방향이 가장 가파른 감소 방향인지를 측정하기 위해서는 확률 분포 사이의 거리 / 차이를 측정하는 지표가 필요하고 이때 등장하는 것이 KL-divergence이다.
KL-divergence의 정의는 다음과 같다.

이 때 P,Q는 distribution을 의미한다.
그렇다면 Px,y(w)와 Px,y(w+ϵ) 사이의 KL-divergence는 다음과 같이 Fisher information matirx를 이용해 표현할 수 있다. (ϵ이 충분히 작을 때)

위 성질은 Taylor expansion을 사용해 KL-divergence에 대입하면 쉽게 확인 가능하다.
(이전 글에서도 언급했으므로 넘어가자)
즉, F, Fisher information matrix는 KL-divergence의 'local quadratic approximation'으로 표현되며, 파라미터가 w에서 w+ϵ으로 변환된 분포 사이의 차이/거리를 측정할 수 있는 지표가 된다.
그렇다면, 우리의 Loss function의 가장 가파른 감소 방향을 정의할 때도 다음과 같이 유도할 수 있다.

복잡해보이지만 자세하게 살펴보면 쉽게 이해될 수 있다.
우리는 Loss function L(w+ϵ)을 최소화하는 ϵ을 찾고 싶다.
ϵ은 두 distribution (P(w+ϵ), P(w)) 사이의 거리 (KL-divergence)를 나타내며, 그 값은 d2으로 constraint돼 있는데, 이때 d는 0으로 가는 아주 작은 값이다. 이는 우리가 'Taylor approximation'을 사용하기 때문에 ϵ이 한없이 커지면, 그 근사의 오차가 커지기 때문에 ϵ을 작게 유지하기 위한 장치라고 이해할 수 있다.
위 수식에서의 ϵ이 바로 Natural gradient인 −F−1∇L(w) (실수배 항은 무시함)가 되는 것이다.
즉, Negative natural gradient는 parameter space를 distribution space로 바라보았을 때 (Statistical manifold 라고 한다), distance를 KL-divergence를 활용해 측정할 수 있고, 이때 조그마한 local neighborhood에서 가장 낮은 함숫값, (구체적으로는 "local quadratic approximation") 그곳의 방향을 가리키는 vector이다.
Hessian matrix를 사용하는 Newton's method는 parameter space를 Euclidean 관점에서 바라봤을 때 distance를 L2 distance로 측정하였고, 그 때 조그마한 local neighborhood에서 가장 낮은 함숫값 (구체적으로는 "local quadratic approximation"), 그곳의 방향을 가리키는 vector로 H−1∇L(w)가 유도된다.
(Second-order approximation을 사용했었다 / 이전 글 참조)
https://kyteris0624.tistory.com/36
Deep dive into Optimization : Second-order method (2)
"모바일 앱 환경에서는 latex 수식이 깨져 나타나므로, 가급적 웹 환경에서 봐주시길 바랍니다." 오늘은 지난 글에 이어 2차 미분 정보를 활용한 최적화, Second-order method 두 번째 글이다. 그 중 Hessia
kyteris0624.tistory.com
그렇다면 이론적으로 좋은 background를 가지고 있는 이 알고리즘을 practical한 측면에서 잘 쓰지 않는 이유는 무엇일까?
여태까지 이 시리즈의 글을 잘 읽어왔다면 알겠지만 결국 계산 비용 문제 (시간과 메모리) 이다.
파라미터의 개수가 매우 많은 (심지어 training dataset 크기보다 훨씬 큰) overparameterized neural network에서 현재 파라미터인 wt에서 Hessian, Fisher등의 matrix를 연산해서 이를 메모리에 일시적으로 저장하는데는 상당히 큰 비용이 소모된다.
또한 우리가 파라미터를 update할 때는 이들의 inverse matrix, 즉 F−1, H−1을 계산하여야 하는데, 'overparameterized' neural network에서는 이들이 Full-rank matrix가 아닌 경우가 많기 때문에 역행렬이 존재하지 않는 경우가 더 많다.
그래서 실제로는 F, F−1을 정확히 계산하는 것이 아닌 이들을 approximate하여서 근사행렬을 활용하는데, 이 과정에서 원치 않는 bias/error 들이 들어갈 수 있다.
이 문제에 대해서는 현재도 활발하게 연구가 진행되고 있고, 계속해서 적지 않은 논문들이 나오고 있다.
이에 대한 자세한 언급은 '기초/입문'이 이 시리즈의 범위를 넘어서기 때문에 다루지는 않겠다.
다만, 관심이 있다면 다음의 논문을 참조할 수 있을 것이다.
"Frederik Kunstner et al. "Limitations of the Empirical Fisher Approximation for Natural gradient descent", Neurips 2019"
가장 유명한 논문 중 하나이다.
다음 글에서는 Natural gradient descent에 대한 추가적인 설명과 함께 Second-order method를 마무리하겠다.
'Deep dive into Optimization' 카테고리의 다른 글
Deep dive into optimization : Convex optimization (Updated) (0) | 2023.05.09 |
---|---|
Deep dive into Optimization : Second-order method (5) - Updated (0) | 2023.05.06 |
Deep-dive into Optimization : Second-order method - Updated (0) | 2023.04.30 |
Deep dive into Optimization: Second-order method - Updated (0) | 2023.04.25 |
Deep dive into Optimization: Second-order method - Updated (0) | 2023.04.19 |
댓글