About me
home
Portfolio
home
🎡

Continual Learning 개요

Three types of incremental learning.pdf
2375.3KB
Overcoming catastrophic forgetting in neural networks.pdf
1220.8KB
Continual learning = Lifelong learning = Online learning
등장배경 : 실제 환경에서의 데이터는 끊임없이 새롭게 등장한다. 따라서 Class의 개수도 다양해지고 기존에 분류했던 Class는 더욱 세분화되기도 한다. 하지만 Class가 추가될 때마다 ML 모델을 새로 구축하는 방법으로는 급증하는 데이터의 속도를 따라가지 못하고 모델 교체의 cost도 발생하는 문제점이 생기게 된다. 이에 따라 Continual learning을 통해 모델을 교체하지 않고 새로운 Class를 추가할 수 있고 또한 데이터의 변화(data drift)에도 실시간으로 대응할 수 있게 된다.

문제점

1.
Catastrophic forgetting
task 1을 학습한 모델이 다른 종류의 task 2를 학습하게 되면, 이전에 학습했던 task에 대한 성능이 떨어지는 되는 현상
2.
Semantic drift
새로 학습하는 과정에서 weight가 과도하게 조정될 경우, Neural Network의 Node나 weight의 의미(해당 Node가 담당하는 처리 정보)가 변하게 되는 현상
즉 Continual Learning의 궁극적인 목표는 이러한 현상들을 해결하는 모델을 구축하는 것이다.
a. context-specific components
b. parameter regularization
c. functional regularization
d. replay
e. template-based classification
Progressive Networks : Neural Network의 구조를 동적으로 변경함으로써 새로운 task를 수용할 수 있다. 이 접근법은 Network의 Node 또는 Layer의 개수를 추가하여 새로운 task를 학습할 pararmeter를 확보한다. Structure 접근 방법의 대표적인 알고리즘은 Google Deepmind가 발표한 것이다.

대표적인 Continual Learning 기법 : LwF

LwF(Learning Without Forgetting, 2017)

Regularization-based method의 대표적인 모델로는 LwF(Learning Without Forgetting, 2017)가 있다. LwF는 각 단계의 학습을 시작하기 전에 현재 단계의 모든 데이터에 대해 이전 단계에서 학습이 완료된 모델의 feed-forward logit(LwF-logit)을 미리 계산하고, 각 데이터의 label과 LwF-logit을 이번 단계 학습에 활용한다. Label은 새로운 학습을 위해 사용되고, LwF-logit은 과거의 데이터를 보존하는 데 사용된다.

Multi-task Learning Methods

아래는 논문에서 LwF와 다양한 multi-task learning 방법들을 비교하여 제시한다.

(b) Fine-tuning

네트워크의 backbone과 새로운 task에 대해 학습을 시킨다. 그러나 이 방식은 이전에 학습된 task의 성능이 저하될 수 있다.

(c) Feature Extraction

사전 학습된 네트워크의 backbone을 그대로 두고, 새로운 task를 위해 추가된 layer만 학습한다. backbone과 공유된 파라미터를 업데이트하지 않기 때문에, 새로운 task의 특징을 충분히 표현하지 못해 성능이 떨어질 수 있다.

(d) Joint Training

Joint Training 방식은 전체 네트워크를 다시 학습한다. 모든 task의 데이터를 동시에 사용하여 학습하기 때문에 정확성 측면에서는 가장 효율적이다. 그러나 더 많은 task가 추가될수록 학습이 복잡해지며, 이전 task의 학습 데이터를 사용할 수 없는 경우에는 적절하지 않을 수 있다.

(f) LwF

LwF 방식은 새로운 task를 위해 branch를 추가하지만, 새로운 task에 대한 학습을 진행할 때에는 이전 task의 데이터를 사용하지 않는다. 대신 Knowledge Distillation 기법을 사용한다. LwF에서는 이전 task에서 학습된 모델을 teacher으로 정의하고, 새로운 task를 위해 학습 중인 모델을 student으로 설정한다.
Fine-tuningFeature Extraction 방식은 비교적 간단하지만 기존의 지식을 유지하는 데 한계가 있다. Joint Training은 정확성을 높이는 데 효과적이나, 현실적인 제약이 많다.
LwF는 이전 데이터 없이도 기존 지식을 유지할 수 있는 강력한 방법으로, Regularization-based 방법의 대표적인 예시이다.

Three types of Incremental Learning

Incremental learning은 대표적인 세 가지 시나리오가 있다. 각 시나리오는 학습의 목적과 방법이 다르다.

Task-incremental Learning

여러 개의 서로 다른 태스크를 순차적으로 학습하는 방법이다. 각 태스크는 독립적이며, 새로운 태스크를 학습할 때마다 기존 태스크의 성능이 유지되어야 한다.
예) 이미지 분류 모델이 처음에는 고양이와 개를 구분하는 태스크를 학습하고, 그 다음에는 자동차와 자전거를 구분하는 태스크를 학습하는 식이다 f:X×Cyf : X \times C \rightarrow y 여기서 XX는 입력 데이터, CC는 태스크 컨텍스트, yy는 출력이다.

Domain-incremental Learning

동일한 문제를 다른 컨텍스트(도메인)에서 해결하는 방법을 학습하는 것이다. 즉 모델이 동일한 태스크를 다양한 도메인(= 환경)에서 해결할 수 있도록 한다. 문제 자체는 동일하지만, 도메인이 달라지면서 입력 데이터의 분포가 변화한다. 모델은 이러한 도메인 변화를 학습하여 적응해야 한다.
예) 이미지 분류 모델이 다양한 조명 조건, 배경, 또는 카메라 설정에서 동일한 객체를 인식하는 경우 f:Xy f : X \rightarrow y

Class-incremental Learning

새로운 클래스를 학습할 때마다 기존 클래스에 대한 지식이 유지되어야 한다. 이는 모델이 점차 많은 클래스를 분류할 수 있는 능력을 갖추게 한다. f:XC×yf : X \rightarrow C \times y