iMTE

Meta-learning with Implicit Gradients (NIPS 2019) [1] 본문

Deep learning study/Meta-Learning

Meta-learning with Implicit Gradients (NIPS 2019) [1]

Wonju Seo 2020. 12. 24. 15:23

Meta-learning with Implicit Gradients [1]

https://papers.nips.cc/paper/2019/hash/072b030ba126b2f4b2374f342be9ed44-Abstract.html


Introduction

Meta-learning의 frame에서 bi-level optimization procedure는 다음으로 나누어진다.

1) inner optimization : 주어진 task에 base learner가 학습하는 과정

2) outer optimization : 여러 tasks 들에서 meta learner가 학습하는 과정

MAML, DAML, Reptile 등의 방법이 optimization-based methods에 속한다. (Hands-on one-shot learning with python 책을 보면 각 방법에 따른 one-shot learning이 설명되어 있으니 관심이 있으면 읽어보길 바란다.)

MAML의 경우, inner optimization 이후에 higher-order derivative를 요구하고, 계산과 메모리를 꽤 사용하며, vanishing gradients에 영향을 받을 수 있다. 이런 문제는 medium ~ large dataset을 갖는 task나, inner-loop에서 optimization steps이 많이 필요한 경우에 meta-learning을 사용하는 것이 어렵게 한다. 이런 문제를 해결하기 위해서 저자는 implicit MAML algorithm을 제안했는데, optimization path에 differentiating할 필요 없이 결과 값만을 갖고 meta-learning을 시도하는 것이다. 각 알고리즘의 meta-gradient 계산에 대한 방법을 밑의 그림을 보여주고 있다.

이 논문의 주요 contribution은 다음이라고 볼 수 있다.

1) implicit MAML의 경우, MAML과 달리 optimization path를 저장할 필요가 없어, 메모리를 효율적으로 쓰고 큰 수의 inner loop optimization step을 사용할 수 있다. (FOMAML도 마찬가지로 optimization path를 사용하지는 않는다. 하지만, MAML에서 계산된 meta gradient와 상당히 다르다는 것을 알 수 있다.)

2) implicit MAML은 inner optimization의 방법에 영향을 받지 않는다. 이에 higher-order optimization methods들이 사용 될 수 있다.

3) 이 논문의 저자는 처음으로 non-asymptotic theoretical analysis of bi-level optimization을 제공하였다.


Problem Formulation and Notations

Review of Few-Shot Supervised Learning and MAML

설명하기 앞서, 몇몇 notation에 대한 정의가 필요하다.

1) meta-learning tasks

2) a dataset (각 task에는 dataset이 있다.)

3) inputs and outputs

4) learning model

각 task에 대한 performance는 다음의 loss function으로 정의된다. (parameter와 dataset의 함수)

Task i의 goal은 주어진 training dataset을 사용해서 task-specific parameters를 학습시키는 것이다. 즉, 다음을 최적화하는 parameter를 찾는 것이다.

Bi-level meta-learning setup에서 outer optimization과 inner optimization은 다음과 같은 형태로 나타낼 수 있다.

where 앞의 식은 "outer-level"에서의 optimization을 의미하며, where 이후의 식에서 Alg 부분은 "inner-level"에서의 optimization을 의미한다. 위의 식에서, theta는 meta-parameter를 의미한다.

Meta-learning의 목적은 새로운 task가 주어졌을 때, 빠르게 그 task에 adaptation 하여 좋은 성능을 보여주는 것이다. 즉, 다음과 같다.

MAML에서 Alg 부분은 하나 혹은 그 이상의 gradient descents step에 대응된다. 만약 gradient descent가 한 스텝만 사용되었다면, 다음과 같은 식을 얻을 수 있다.

위의 식에서 a는 scalar hyper-parameter이다. (learning rate와 비슷하다고 이해하자.) MAML에서 meta-learned parameter는 P(T)에서 얻어진 task에 fine-tuning을 잘하는 inductive bias를 학습한다. (즉, P(T)에서 얻어지는 task의 분포를 학습함으로써, 유사한 분포에서 얻어진 task에 잘 fine-tuning 한다는 것이다.) Gradient-based methods의 outer-level problem을 해결하기 위해서 Alg을 통해 differentiating하는 방법이 필요하다. MAML의 경우 gradient descent의 dynamic을 통해서 backpropagation을 하는 것에 대응된다. (즉, optimization path를 고려해야한다는 것이다.)

Proximal Regularization in the Inner Level

inner level에서의 optimization이 over-fitting이 되는 것을 방지하기 위해서 regularization term을 추가하는 것이 필요하다. MAML의 경우 적은 수의 gradient steps이 사용되기 때문에, 이 방법은 early stopping 이나 regularization 형태로 학습을 over-fitting을 막아준다. 하지만, ill-conditioned optimization landscapes와 medium-shot learning의 경우 many gradient steps을 요구한다. 이 경우, MAML은 Alg의 long optimization path를 저장하고 differentiating을 해야 한다. (이는 상당한 계산과 메모리를 요구한다). 또한, meta parameter에 대한 model parameter의 의존성(dependence)이 감소하거나 사라져서 meta-learning을 어렵게한다. (이렇게 되면 각 task마다 서로 다른 방향을 가리키는 경우가 있을 수 있다. 그렇다면 meta-learning parameter가 의미가 없다.) 이러한 문제를 방지하기 위해서 다음과 같은 explicit regularized term을 추가한다.

Model parameter를 meta-learning parameter에 가깝게 해주는 제약을 주어서 dependence가 제거되는 문제를 해결할 수 있다. 위의 식에서 "star"를 사용했는데, 이는 optimization problem이 완벽히 해결된다는 것을 의미한다. 실제로는 한정된 iterations동안 iterative algorithms을 사용해서 approximate minimize를 return할 것이다.

The Bi-Level Optimization Problem

Notation의 간편함을 위해서 다음과 같이 변경한다.

위와 같이 변경 이후에 bi-level meta-learning problem은 다음과 같이 표현할 수 있다.

Total and Partial Derivatives

위의 식에서 중요한 것은 은 Alg를 통해 derivatives를 전달한다는 것이고 은 그렇지 않다는 것이며, 단순히 gradient function 이다. 위 두 식은 d-dimensional vector 이고, 다음 식은 d x d size의 Jacobian matrix 이다.


다음 posting으로는 자세하게 implicit MAML algorithm을 다루고자 한다.

Comments