iMTE

Meta-Learning 7. Deep Meta-Learning: Learning to Learn in the Concept Space 본문

Deep learning study/Meta-Learning

Meta-Learning 7. Deep Meta-Learning: Learning to Learn in the Concept Space

Wonju Seo 2019. 5. 24. 16:19

Deep Meta-Learning: Learning to Learn in the Concept Space


Abstract

"In this work, we argue that this is due to the lack of a good representation for meta-learning, and propose deep meta-learning to integrate the representation power of deep learning into meta-learning"

Few-shot learning이 많은 related tasks로 부터 learning algorithm을 학습하는 것이 어려운데, 이를 좀 더 나은 representation으로 해결하자는 방법이 Deep Meta-Learning 이다. 본 framework는 세개의 part로 나뉘는데, 1) concept generator, meta-learner, 그리고 concept discriminator이고, jointly 학습된다. Concept generator는 deep residual network로 각 instance에 대한 high-level concept을 capture할 수 있는 representation을 추출한다. Concept discriminator는 concept를 인식한다. 복잡한 instance space 대신에 concept space에서 학습시킴으로써, deep-meta learning은 vanilla meta-learning 보다 성능이 증대한다. 이 논문에서는 Deep meta-learning을 제안한다.

Introduction

Meta-learning의 목표는 관련된 새로운 tasks에 잘 일반화 될 수 있는 learning algorithm을 찾는 것이다. 두 단계의 학습 과정을 포함하는데, 1) "gradual learning performed across tasks to gain meta-level knowledge", 2) "rapid learning carried out for a new task which is guided by the knowledge learned before". 로 구성된다. 이 논문에서는 Meta-learning의 유용성에 대해서 설명하지만 사람 정도의 구분 능력을 갖지 못하는 이유를 meta-learning을 위한 good data representation에 대한 부족으로 가정하였다.

Few-shot learning은 복잡한 instance space에서 내재적으로 어려운데, 이는 category나 concept과 같은 high-level information을 설명하기에는 examples이 충분하지 않기 때문이다. 많은 예제를 갖고 있는 경우, 물체의 다양한 변화로부터 어떤 추상적인 concept 정보를 추출할 수 있지만, few-shot learning에서는 불가능하다. 반면에 Meta-learning은 많은 related tasks를 사용해서 이 issue를 해결하려고 하지만, 문제를 해결하지 못한다. 따라서, 이 논문에서는 concept space에서 meta-learning이 진행되게함으로써 이 문제를 해결하고자한다.

Concepts은 definitions 보다는 rules로 구성된다. 손으로 rules을 구성하기 보다는, deep learning을 사용하는 것이 이 논문의 핵심 아이디어이다. 저자의 deep meta-learning framework에서 meta-learning tasks와 함께 large-scale image recognition tasks로 concept generator를 학습시켰다. 이 방법은 vanilla meta learning methods의 성능을 증가시켰다. 구체적으로, concept generator와 meta-learner는 일련의 related tasks에서 학습되는데, concept generator는 external dataset의 image recognition 문제를 다룸으로써, concept discriminator를 통해서 동시에 강화된다. 이러한 방법은 external knowledge와 task-agnostic meta-level knowledge를 concept generator로 통합하도록 한다. 

그림 1을 보면, external image와 few-shot learning을 동시에 진행하면서, concept을 학습하고, concept을 concept generator (G)가 생성해낸다. 생성해낸 concept은 concept discriminator로 전달되어 classification이 진행되고, few-shot learning dataset에서 추출한 concept은 meta-learner를 통해, learner로 전달되면서 classification이 진행된다. 학습시에는 error가 feedback (backpropagation)되면서 weights을 수정하게 된다.

Related works (생략, 필요하면 읽어볼 것)

Deep Meta-Learning

그림 1에서 보는 것과 같이, meta-learner가 deep learning의 representation으로 인한 이득을 취하는 것이 이 deep meta-learning의 핵심이다. (그래서, concept space에서 learning to learn을 하게되는 것이다.)

그림 1에서 나온 것 같이, concept generator G는 많은 related tasks로 부터 high-level concepts of the instances를 추출해야 하며, 이는 meta-learner M이 task-specific few-shot learning을 빠르게 수행하도록 가이드 해준다. 반대로, concept generator G는 external large-scale dataset D와 concept discriminator D에 의해서 강화될 수 있다. External large scale dataset D를 본 이후에, concept generator G는 raw instance space를 abstract concept space로 mapping하는 것을 점진적으로 배우며, 이 high-capacity representation은 meta-learning process를 좀 더 쉽게 만들어 준다. 결과적으로 다음과 같은 optimization problem을 해결하는 것이 deep meta-learning의 핵심이다.

다음은 deep meta-learning의 algorithm 이다.

Modules (생략)

Criterion

Deep meta-learning은 두개의 pipeline으로 구성되는데, 1. concept discrimination, 2. meta-learning이다. 이 두 pipeline은 learning-to-learn 방법으로 combined loss를 최적화 하기위해서 결합해서 학습된다. 먼저 concept discrimination pipeline D(G)에 대해서, concept generator G는 concepts를 capture할 수 있는 representation을 생성하기 위해 학습 되며, concept discriminator D는 concepts을 구별하기 위해 학습되고, loss는 다음과 같다.

L 은 어떤 function을 사용해도 상관 없다. 다음으로 meta-learning pipeline에서는 concept generator가 meta-level representation을 추출하도록 학습되고, meta-learner가 high-level concept space에서 few-shot learning을 수행하도록 학습된다. 다양한 방법에 대해서 loss는 여러모로 정의가 될 수 있겠지만, MAML과 Meta-SGD만을 예로 들어보면 다음과 같다.

Meta-SGD에서는 다음과 같이 정의 된다.

Algorithm

본 논문에서는 Meta-SGD를 사용하였고, 다음과 같은 optimization을 통해서 parameter를 구해낸다.

밑은 deep meta-learning의 algorithm을 나타낸다.

Experiments (생략)

당연히, 이전보다 더 나은 결과를 보여주었다. 어떻게 분석했는지, 어떤 네트워크를 사용했는지를 보려면 논문을 참고하는 것이 낫다.

Conclusion and Future Work

"In this paper, we propose deep meta-learning that integrates the representation power of deep learning into meta-learning, and enables learning to learn in the concept space. A concept generator that can provide effective representations for the meta-learner is trained on large-scale concept discrimination and few-shot learning, simultaneously. This high-capacity generator captures the concept information of examples from the external large-scale dataset as well as the meta-level concepts of data from a large number of related few-shot learning tasks, which lifts the meta-learning from the raw instance space to the high-level concept space and eases the meta-learning process."

위의 문장이 핵심이니, 천천히 읽어보도록 하자! 전반적으로 논문을 보면서 받은 느낌은, 말 그대로 deep learning의 장점인 representations을 external data와 few-shot learning을 하면서 task-agnostic하도록 네트워크와 학습을 설계했다는 점이다. 당연히 large-scale의 external data를 사용하니 representation 능력은 상승되고, 이 representation이 어떻게 few-shot learning에 적용될지를 meta-learner가 가르쳐주니, task-agnostic한 것은 논리적으로 말이 되는 것 같다.



Comments