■ 증분학습(incremental learning)이란?

 

1) 증분학습이란 무엇일까?

증분학습, 이름부터가 어렵다. 그렇다면 연속 학습(continual learning)이라는 단어는 어떨까? 조금 쉬어보인다. 세밀한 의미에서 맥락은 조금 다르다곤 하지만, 증분학습과 연속학습은 AI 분야에서 비슷한 방법론으로 통한다. 

 

증분학습(연속학습)은 모델이 새로운 데이터를 받을 때마다 그 데이터를 추가로 학습하면서 기존의 지식을 유지하면서도 새로운 환경 변화에 실시간으로 대응할 수 있는  방식을 말한다. 

 

 

예를 들어, '고양이'와 '개'를 구분하는 classification 모델이 있다고 하자. 그런데 새로운 '새'라는 데이터가 들어와 이를 구분해야한다. 그렇다면 해당 모델이 '새'를 구분할 수 있도록 추가적으로 학습을 진행하지만, 그러면서도 '고양이'와 '개'를 구분하는 능력을 잊지 않게 하는 학습방법이다.

 

여기까지 읽었다면 새로운 데이터를 재학습시키면 되지 굳이 왜 증분학습이라는 개념을 따로 만들어서 구분하냐라는 의문이 생길 것이다. 하지만 이 증분학습은 기존의 데이터에 새로운 데이터를 추가해서 학습하는 것이 아니라, 새로운 정보만을 학습한다는 점에서 차이를 갖는다. 그렇다면 굳이 간단해 보이는 재학습을 두고 증분학습을 새롭게 도입하려는 이유는 무엇일까?

 

2) 증분학습이 왜 필요할까?

첫째, 효율성이다. 기존의 모델 데이터셋에 새로운 데이터를 추가하여 모델을 재학습시키기 위해서는, 데이터 전처리, 데이터 병합, 모든 파라미터에 대한 모델 학습, 모델 평가 등 리소스를 잡아먹는 모든 과정을 다시 수행해야한다. 이러한 과정은 모델이 커질 수록, 데이터셋이 클 수록, 새로 들어온 데이터셋이 클 수록 더 심화된다. 하지만 증분학습은 전체 데이터셋을 모두 학습하지 않기 때문에, 학습 시간과 자원을 절약할 수 있다는 장점을 갖는다.

 

둘째, 유연성이다. 증분학습은 새로운 데이터가 생성될 때마다 모델을 즉시 업데이트할 수 있기 때문에, 빠르게 변화하는 환경이나 데이터에 신속하게 적응 할 수 있다. 또한 다양한 태스크를 순차적으로 학습하는 데에도 적합하다. 

 

셋째, 현실성이다. 실제 모델이 적용되는 산업환경에서 모델 수행과정은 한번 학습하고 끝나지 않는다. 새롭게 발생하는 이슈에 그때 그때마다 대응해야한다. 예를 들어 자율 주행차를 운전하는 AI 모델이 있다고 하자, 이 모델은 기존이 존재하던 장애물 레이블을 가지고 학습을 하였는데, 낙뢰, 싱크홀과 같은 새로운 장애물이 입력으로 들어온다면, 그때는 모델을 새롭게 바꾸어야할 문제가 발생한다. 이를 처리하고자 증분학습을 도입하여 빠른 업데이트를 추구한 것이다.

 

3) 증분학습의 종류에는 어떤 것들이 있을까?

증분학습은 여러 종류로 구분되며, 그 방법론과 평가 방식 또한 다양하다. 이 글에서는 큰 흐름만 보기로하고, 궁금한 내용은 각자 구글링을 해보도록 하면 좋을 것 같다.

 

먼저, 규제(regularization) 방식이다. 새로운 task를 학습할 때 기존 지식을 잊어버리지 않기 위해 모델의 파라미터 변화에 규제를 주는 것이다. 

 

그 다음은 증류(Distillation) 방식이다. 새로운 task를 학습할 때 기존의 지식을 증류(즉 축약해서) 해주자는 아이디어이다. 

 

마지막으로 기억(Memory) 방식이다. 이전 task의 일부 데이터만 메모리에 올려놓고 참조하는 일종의 컨닝 페이퍼를 두는 것이다. 특히 memory 방식의 논문들은 증분학습의 주류가 된다.

 

이것들을 제외하고도 증분학습에는 복잡한 과정들과 분류들이 존재한다. 참고하면 좋을 링크를 아래 소개하며 글을 마친다. 실제 모델을 현장에서 적용하고자하는 개발자들은 이러한 증분학습이 어떻게 이루어지는 지를 알고 가면 좋을 것 같다.

 

https://ffighting.net/deep-learning-paper-review/incremental-learning/all-about-incremental-learning/

 

Incremental/Continual Learning 설명 - 정의, 필요성, 데이터셋, 대표 논문

Incremental Learning에 관한 모든 것을 설명합니다. Incremental Learning의 정의, 필요성, 데이터셋, 성능 측정 방식을 알아봅니다. 마지막으로 주요 논문들을 통해 연구 흐름에 대해 자세히 살펴봅니다.

ffighting.net

 

https://junia3.github.io/blog/continual

 

Welcome to JunYoung's blog | Continual learning/Lifelong learning의 개념과 방법론 총정리

이 글은 survey 논문인 A Comprehensive Survey of Continual Learning: Theory, Method and Application를 각색 및 요약한 글입니다. Continual Learning 이란? 인공지능과 유기체의 근본적 차이 인공지능의 주체가 되는 ‘모

junia3.github.io

 

+ Recent posts