일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 앱 구조
- few-shot
- javacript
- stability-plasticity trade-off
- 인공지능 학회
- javascript
- multi-label
- application structure
- python
- 인프런
- for-of
- Power Loss
- fine grained
- Autumation Tools
- GAN 이해
- zero-shot
- catastrophic forgetting
- 생성AI
- Django
- 확률 변수
- Voltage Drop
- 훈훈한 Javascript
- 이중구조분해할당
- GAN 손실함수
- 모드 붕괴
- 자바스크립트
- 장고
- 생산적 적대 신경망
- 설계철학
- 표본 공간
- Today
- Total
점점 미쳐가는 개발 일기
[논문 리뷰] A Comprehensive Survey of Continual Learning: Theory, Method and Application 본문
[논문 리뷰] A Comprehensive Survey of Continual Learning: Theory, Method and Application
Sangwoo Seo 2024. 1. 5. 16:13리뷰 시작 전
Continual Learning은 모델이 새로운 정보를 학습하면서 이전에 배운 정보를 유지할 수 있도록 하는 학습 방식을 말한다. 이같은 학습 방식은 AI의 다양한 분야와 모델에 걸쳐 중요한 개념으로, 대규모 언어 모델을 포함한 여러 유형의 시스템에서 적용될 수 있다.
Continual learning 방법에서 기존의 지식을 유지하며 새로운 정보를 학습할 때 가장 중요한 이슈는 "Catastrophic Forgetting" 문제를 방지하는 것인데, 이 문제를 해결하기 위해 다양한 학습 시나리오를 고려하는 것이 필요하다.
리뷰할 논문에는 catastophic forgetting 문제를 방지하고 continual learning을 효과적으로 학습하게 할 방법론들이 다양하게 나열되어 있으며, continual learning의 기본 수식 정의 및 학습 시나리오 소개 등 최신 논문을 포함하여 정리한 개괄적인 내용들을 제공하고 있다.
리뷰 할 논문은 '23년 6월에 나온 continual learning의 survey 논문으로 일부 내용을 추가 및 각색 하였습니다.
Index Terms - Continual Learning, Incremental Learning, Lifelong Learning, Catastrophic Forgetting
개요
Continual learning의 필요성
AI는 real-world의 변화에 적응하기 위해 지식을 점진적으로 획득, 업데이트, 누적 및 활용할 수 있어야 한다. 이는 마치 사람이 새로운 경험을 통해 지속적으로 배우고 성장하는 것과 유사하다.
Continual learning의 한계와 발전
AI를 통해 기존에 특정 task에 대해 학습했던 모델에 새로운 task의 데이터를 갖고 학습하게 되면, 기존에 갖고 있던 특정 task의 정보가 점점 잊혀지는 현상을 보인다. 이를 catastrophic forgetting이라 한다.
하지만, 최근 몇 년 동안 continual learning에 대한 이해와 응용이 크게 발전하였으며, 이 분야에 대한 관심이 커지고 있다. 이는 continual learning이 real-world의 문제 해결에 점점 중요해지고 있음을 말한다.
Continual learning의 목표
Continual learning의 목표는 안정성과 가소성의 균형(stability-plasticity trade-off)을 맞추고, 작업 간의 일반화 능력(intra/inter-task generalizability)을 유지하면서 자원을 효율적으로 사용(resource efficiency)하는 것이다.
안정성과 가소성의 균형(stability-plasticity trade-off): 안전성(stability)은 기존에 학습한 정보를 잊지 않고 유지하는 능력이며, 가소성(plasticity)은 새로운 정보를 유연하게 학습하는 능력이다. 즉, continual learning이 안정성과 가소성의 균형을 지키는 것은 새로운 것을 배우면서도 기존의 지식을 잘 유지하는 것을 의미한다. 예를 들어, 새로운 언어를 배우면서도 기존의 알던 언어를 잊지 않는 것과 비슷하다.
작업 간의 일반화 능력(intra/inter-task generalizability): 내부 작업 일반화(intra task generalizability)는 하나의 특정 task 내에서 다양한 상황에 대응할 수 있는 능력이며, 예를 들어 AI가 '고양이 사진 분류'라는 task라는 작업에서 다양한 조명, 각도, 배경을 가진 고양이 사진을 모두 잘 분류 할 수 있다면 내부 작업 일반화가 잘 이루어진 것으로 볼 수 있다. 외부 작업 일반화(inter task generalizability)는 다른 task들 사이에서도 적용 가능한 능력이며, 예를 들어 같은 AI 모델이 '고양이 사진 분류', '강아지 사진 분류' 등의 다양한 분류 task 모두 잘 수행 했다면 외부 작업 일반화가 잘 이루어진 것으로 볼 수 있다. 즉, 작업 간의 일반화 능력이란 학습된 모델이 다양한 task나 상황에서도 잘 작용해야 한다는 것을 의미한다.
자원을 효율적으로 사용(resource efficiency): continual learning에서 제한된 자원(메모리 등)을 효율적으로 사용해야 하는 것을 의미한다.
위 그림의 a는 시간에 따라 연속으로 제시되는 task들(Task A, Task B, Task C)에 AI가 어떻게 적응해야하는지 보여주는 그림으로, 각각의 task는 동적인 데이터 분포를 가지며 모델은 동적인 데이터 분포에 대응하기 위해 점진적으로 학습하여 적응해야 한다. 또한 제한된 자원을 효율적으로 사용하며 각각의 task에 적응해야하는 것이 중요하다.
b는 안전성(stability)과 가소성(plasticity) 사이의 trade-off를 강조한다. 그와 동시에 task 간의 일반화에 대한 능력을 가져야 다양한 상황에서도 잘 작용할 수 있다고 말한다.
c는 continual learning에 사용되는 다양한 학습 접근 방식을 학습 과정 흐름을 제시하며 보여준다.
해당 논문의 주요 목표(Main Contributions)
1. Continual learning의 최근 논문 조사: Continual learning의 최신 이론적, 방법론적, 실용적 발전을 포괄적으로 조사하고 연결한다. 이는 continual learning 분야의 현재 상태와 발전 방향을 이해하는 데 도움을 준다.
2. Continual learning의 목표 요약: 이 분야의 주요 목표와 대표적인 전략들을 최신 연구에 기반하여 상세하게 분류한다. 이는 continual learning을 어떻게 접근하고 구현할 수 있는지에 대한 통찰력을 제공한다.
3. Real-wold에서의 응용: real-world에서 continual learing을 응용할 때 만나는 challenge들을 시나리오의 복잡성과 task의 특수성으로 구분하고, 이러한 challenge에 어떻게 대응하는지 분석한다. 이는 continual learning이 실제 환경에서 어떻게 활용될 수 있는지 보여준다.
4. 현재 추세와 미래 방향: Continual learning 분야의 현재 추세와 미래 발전 가능성에 대해 심층적으로 논의한다. 이는 연구자들이 이 분야에서 어떤 주제에 주목하고 어떤 방향으로 나아가야 할지에 대한 가이드를 제공한다.
Basic Formulation
Continual learning은 순차적으로 다양한 데이터 분포를 가진 학습 데이터들을 학습한다. 학습 모델은 학습 파라미터인 $ \theta $를 통해 새로운 task를 학습하고, 이전에 학습 했던 task들에 대해 제한된 접근(limited access)만으로 그 task에 대해 테스트 데이터에 대해서도 잘 예측해야 한다.
어떤 task $ t $에 속하는 학습 데이터들을 일괄 처리된 배치(batch)를 $ D_{t,b} = \left\{ X_{t,b}, Y_{t,b} \right\} $라고 표현한다. 여기서 $ X_{t,b} $는 입력 데이터(input data), $ Y_{t,b} $는 데이터의 라벨, $ t \in T = \left\{ 1, ..., k\right\} $ 는 task의 식별자, $ b \in B_{t} $는 배치의 인덱스를 나타낸다. task는 학습 데이터 $ D_{t} $에 의해 정의되며, $ D_{t} $의 분포 $ p(X_{t}, Y_{t}) $를 따른다.($ D_{t} $는 배치 인덱스를 생략하고 전체 학습 데이터 셋을 나타낸다.) 학습 데이터와 테스트 데이터 간의 분포 차이가 없다고 가정한다.
현실적인 제약하에, 데이터 라벨 $ Y_{t} $와 task 식별자 $ t $를 항상 continual learning에 적용할 수 있는 것은 아니다. 이는 real-world의 모든 데이터가 항상 정확한 라벨이 붙어 있거나, 각 데이터가 어떤 task에 속하는지 명확하게 알 수 없는 경우도 있음을 말한다. 또한 continual learnin에서 각 task의 학습 데이터가 점진적으로 도착 $(\left\{ \left\{ D_{t,b}\right\}_{b \in B_{t}}\right\}_{t \in T}) $ 할 수 있고 , 동시에 도착 $ (\left\{ D_{t}\right\}_{t \in T}) $ 할 수도 있다. 점진적으로 도착하는 경우는 일반적인 continual learning의 정의와 같지만, 동시에 도착하는 경우는 다르다. 동시에 데이터가 모델에 도착하여 학습하는 경우를 예를 들면, 입력 A, B가 있을 때 각 입력을 시간에 따라 제공되는 연속적인 task로 이를 한 번에 학습하는 경우이다.
Continual Learing의 시나리오
Continual learning은 다양한 학습 시나리오를 가지고 있으며, 기본적으로 각 task들은 충분한 수의 라벨이 존재하는 학습 데이터(즉, 지도학습 형식의 데이터)를 가진다고 가정한다. 그러나 각 $ D_{t} $에서 제공되는 $ X_{t} $와 $ Y_{t} $에 따라 continual learning은 zero-shot, few-shot, semi-supervised, un- / self-supervised 방식으로 학습할 수 있는 시나리오로 세분화 할 수 있지만, 해당 논문에서는 자세히 언급하지 않는다.
아래 표는 continual learning의 다양한 학습 시나리오에 따라 학습 및 테스트 데이터 셋의 포맷을 요약한 표이며, 시나리오 마다 학습 및 테스트 데이터의 포맷은 아래에 소개한다.

$ D_{t,b} $: task $ t $와 배치 $ b $의 학습 데이터
$ |b| $: 배치 $ b $의 크기
$ B_{t} $: task $ t $에 속하는 incremental 배치의 공간(space)
$ D_{t} $: task $ t $의 학습 데이터 셋(pre-training인 경우 $ D_{t}^{p,t} $로, 구체적으로 표현)
$ X_{t} $: $ D_{t} $내의 입력 데이터
$ p(X_{t}) $: $ X_{t} $의 분포
$ Y_{t} $: $ X_{t} $의 데이터 라벨
Instance-Incremental Learning (IIL)
- Instance-incremental learning에서는 개별 데이터 인스턴스가 시간에 따라 모델에 제공된다. 여기서 개별 데이터 인스턴스란 하나의 입력 데이터와 대응되는 하나의 데이터 라벨을 말한다.
- 이 방식은 데이터의 순차적 처리에 중점을 두며, 각 인스턴스는 이전 인스턴스와 독립적으로 처리된다.
- 주요 목표는 모델이 각 인스턴스를 효과적으로 학습하고, 시간이 지남에 따라 전체적인 성능을 유지하는 것이다.
- 이 접근법은 일상적인 환경에서 발생하는 데이터의 연속적인 흐름을 모델링하는 데 적합하다.
- 학습 데이터: 각 배치 $ D_{t,b} $는 특정 task $ t $에 속하며, task 식별자 $ t $는 각 배치마다 동일하다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 필요하지 않다.
Domain Incremental Learning (DIL)
- Domain incremetal learning에서는 학습 과정이 여러 도메인이나 환경에 걸쳐 진행된다.
- 각 도메인은 다르지만, 학습해야 할 task는 동일하게 유지된다. 이 경우, 모델은 동일한 task를 다른 환경에서 수행할 수 있는 능력을 개발해야 한다. 예를 들어, 모든 task가 고양이를 분류할 수 있어야 하지만, 이미지가 실내, 실외 등 다양한 조명 조건에서 촬영된 정보일 수 있다.
- 도메인 변화에도 불구하고 일관된 성능을 유지하는 것이 목표이다.
- 학습 데이터: $ D_{t} $는 task $ t $에 속하며, 각 task의 데이터 분포 $ p(X_{i}) $는 서로 다르지만 라벨 $ Y_{i} $는 같다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 필요하지 않다.
Task Incremetal Learning (TIL)
- Task incremental learning에서는 각각의 새로운 task가 명확히 정의되며, 이전 task와 구분된다. 즉, 각 task는 독립적인 라벨 정보를 가질 수 있다.
- 모델은 각 task를 학습할 때 해당 task에만 최적화되어야 하며, 다른 task에 영향을 미쳐서는 안 된다. task 간의 간섭을 최소화하는 것이 핵심이다.
- 이 시나리오는 특정 task에 대한 지식을 유지하면서 새로운 task을 학습할 수 있는 모델의 능력을 강조한다.
- 학습 데이터: $ D_{t} $는 task $ t $에 속하며, 각 task의 데이터 분포 $ p(X_{i}) $와 라벨 $ Y_{i} $는 서로 다르고, 겹치는 라벨이 없다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 사용 가능하다.
Class Incremental Learning (CIL)
- Class incremental learning은 새로운 클래스가 시간에 따라 추가되는 시나리오를 다룬다.
- 모델은 기존 클래스를 잊지 않으면서 새로운 클래스를 인식하는 능력을 가져야 한다.
- 이 시나리오는 catastrophic forgetting과 밀접하게 관련되어 있다.
- 주요 도전 과제는 새로운 클래스를 학습하는 동안 기존 클래스에 대한 지식을 유지하는 것이다.
- 학습 데이터: $ D_{t} $는 task $ t $에 속하며, 각 task의 데이터 분포 $ p(X_{i}) $와 라벨 $ Y_{i} $는 서로 다르고, 겹치는 라벨이 없다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 사용할 수 없다.
Task-Free Continual Learning (TFCL)
- Task-Free continual learning에서는 별도의 task 식별자 없이 연속적으로 데이터가 제공된다.
- 이 방식은 모델이 task 구분 없이 데이터를 지속적으로 학습하는 것에 초점을 맞춘다.
- 여기서는 모델이 데이터 흐름 속에서 중요한 패턴을 자동으로 감지하고 적응해야 한다.
- 이 접근법은 실제 세계의 동적 환경에 더욱 가깝게 접근하는 방식이다.
- 학습 데이터: $ D_{t, b} $는 task $ t $에 속하며, 데이터 분포 $ p(X_{i}) $와 다르고, 겹치는 라벨이 없다. task 식별자 $ t $는 선택적으로 사용할 수 있다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 선택적으로 사용할 수 있다.
Online Continual Learning (OCL)
- Online continual learning은 데이터가 실시간으로 순차적으로 제공되고, 즉시 학습되는 상황을 다룬다.
- 이 접근법에서는 모델이 매우 빠르게 새로운 정보를 학습하고, 이전 정보를 잊지 않도록 지속적으로 조정되어야 한다.
- 온라인 학습은 실시간 데이터 처리와 의사결정이 중요한 응용 분야에 적합하다.
- 학습 데이터: $ D_{t, b} $는 task $ t $에 속하며, 배치의 크기는 1이다. 데이터 분포 $ p(X_{i}) $와 다르고, 겹치는 라벨이 없다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 선택적으로 사용할 수 있다.
Blurred Boundary Continual Learning (BBCL)
- Blurred boundary continual learning은 명확하게 구분된 task이나 클래스 없이 연속적으로 학습을 진행하는 방법이다.
- 이 접근법은 전통적인 continual learning 시나리오의 경계를 흐리게 하며, 모델이 더 유동적이고 유연한 방식으로 데이터를 처리할 수 있도록 한다.
- BBCL은 다양한 유형의 데이터와 상황에 모델이 더 자연스럽게 적응할 수 있게 도와준다.
- 학습 데이터: $ D_{t} $는 task $ t $에 속하며, 데이터 분포 $ p(X_{i}) $는 서로 다르지만, 라벨 $ Y_{i} $는 겹칠 수 있다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 선택적으로 사용할 수 없다.
Continual Pre-training (CPT)
- Continual pre-traing은 기존에 사전 훈련된 모델을 기반으로, 지속적으로 새로운 데이터와 task에 대한 추가 학습을 진행하는 방법이다.
- CPT는 대규모 사전 훈련된 모델을 활용하여, 새로운 task에 대한 빠른 적응과 효율적인 학습을 가능하게 한다.
- 이 접근법은 특히 복잡하고 다양한 형태의 데이터를 처리해야 하는 상황에서 유용하다.
- 학습 데이터: $ D_{ptt} $는 사전 학습용 데이터 셋으로 사용되며, 사전 학습된 task 식별자 $ T_{pt} $ 와 관련 있다.
- 테스트 데이터: 분포 $ p(X_{t}) $를 통해 테스트가 이루어지며, task 식별자 $ t $는 사용할 수 있다.
Evaluation Matrix
일반적으로, continual learning의 성능은 세 가지 측면에서 평가할 수 있다. 현재까지 학습한 task들의 전체 성능(overall performance), old task들의 기억 안정성(memory stability), new task들의 학습 유연성(learning plasticity)이다.
Overall performance
Overall performance는 average accuracy(이하 $ AA $)와 average incremental accuracy(이하 $ AIA $)로 평가된다. $ a_{k,j} \in [0, 1] $를 $ k $개 task $ (j \leq k) $의 continual learning 후 $ j $번째 task의 테스트 셋에서 평가한 분류 정확도이다. 출력 공간은 $ Y_{j} $ 또는 $ \bigcup_{i=1}^{k}Y_{i} $의 클래스로 구성되며, 이는 multi-head evaluation(e.g. TIL) 또는 single-head eavaluation(e.g. CIL)에 따라 다르다. task의 개수가 $ k $개 일 때, 두 평가지표는 아래와 같다.
$$ AA_{k} = \frac{1}{k}\sum_{j=1}^{k}a_{k,j} $$
$$ AIA_{k} = \frac{1}{k}\sum_{i=1}^{k}AA_{i} $$
$ AA $의 경우 현재 task에 대한 성능 지표를 이야기하고, $ AIA $의 경우 이전 task를 포함하여 현재 task까지의 결과를 반영한 성능지표이다.
Memory Stability
Memory stability는 forgetting measure(이하 $ FM $)과 backward transfer(이하 $ BWT $)에 의해 평가된다.
$$ f_{j,k} = max_{i \in {1, ..., k-1}}(a_{i,j} - a_{k, j}), \forall j < k $$
FM의 경우, continual learning에서 모델이 이전에 학습한 task들에 대해서 정보를 얼마나 보존하고 있는지를 측정하며 모델이 특정 task에서 이전에 달성했던 최고 성능과 현재 성능 사이의 차이를 측정하여 망각의 정도를 나타낸다. 예를 들어, 모델이 과거에 어떤 task에서 90%의 정확도를 달성했었고, 현재는 80%의 정확도를 보인다면, 망각 측정 값은 10%가 된다.
$$ FM_{k} = \frac{1}{k-1}\sum_{j=1}^{k-1}f_{j,k} $$
BWT의 경우, 모델이 새로운 task를 학습함에 따라 이전 task의 성능이 어떻게 변하는지를 측정한다. 이는 새로운 정보를 학습하는 과정에서 이전에 학습한 정보가 강화되거나 약화되는지를 나타낸다. BWT가 양수라면 이는 새로운 학습이 이전 task의 성능을 향상시킨 것을 의미하며, 음수라면 이전 task의 성능이 저하됨을 나타낸다.
$$ BWT_{k} = \frac{1}{k-1}\sum_{j=1}^{k-1}(a_{k,j} - a_{j,j}) $$
Learning Plasticity
Learning plasticity는 intransience measure(이하 $ IM $)과 forward transfer($ FWT $)에 의해 평가된다.
IM은 모델이 새로운 작업을 얼마나 잘 학습하는지 측정하는 지표이다. 구체적으로, IM은 모델이 한 작업을 다른 task와 함께 공동으로 훈련했을 때의 성능과, continual learning 과정에서 해당 task 단독으로 학습했을 때의 성능 간의 차이를 계산한다. IM 값이 크다면, 이는 모델이 새로운 task를 학습하는 데 어려움을 겪고 있음을 나타낸다.
$$ IM_{k} = a_{k}^{*} - a_{k,k}$$
여기서 $ a_{k}^{*} $는 $ k $번째 task를 위해 $ \bigcup_{j=1}^{k}D_{j} $(첫 번째 task부터 $ k $번째 task까지의 모든 데이터)와 함께 학습된 참조 모델(일반적인 분류 모델을 말함)의 분류 정확도를 나타낸다. 즉, 위의 식은 기존에 우리가 일반적으로 수행했던 지도 학습 기반의 분류 모델과 continual learning을 통해 학습한 분류 모델의 차이를 구해 성능평가를 수행한다.
FWT는 모델이 이전에 학습한 task로부터 새로운 task를 학습하는 데 얼마나 도움을 받는지 측정한다. 즉, 이전 task가 새로운 task의 학습에 어떤 긍정적인 영향을 미치는지를 나타낸다. FWT 값이 양수라면 이는 이전 task가 새로운 task의 성능을 향상시키는 데 도움이 됨을 의미한다.
$$ FWT_{k} = \frac{1}{k-1}\sum_{j=2}^{k}(a_{k,j} - \tilde{a_{j}}) $$
$ \tilde{a_{j}} $는 $ j $번째 task에 대해 $ D_{j} $로 가중치 초기화 후 학습한 참조 모델의 분류 정확도를 의미한다.
Continual Learning의 접근 방법
Replay-based Approaches
- Replay-based Approaches는 이전 데이터 또는 그 데이터의 변형된 정보를 주기적으로 "재생"하여 모델이 기억을 유지하도록 한다.
- 이 방법은 실제 과거 데이터 또는 합성 데이터를 사용할 수 있다.
- 예를 들어, Experience Replay은 이전 데이터의 일부를 저장하고 새로운 데이터와 함께 재사용한다.
- 이 접근법은 자원 효율성 측면에서 도전적일 수 있으나, 장기적인 기억 유지에 효과적이다.
즉, 오래된 데이터의 분포를 근사하고 복구하는 것을 목표로한다. 이러한 접근법은 크게 3가지로 나눌 수 있으며 아래와 같다.
첫 번째는 experience replay로, 이전 task의 소량의 데이터를 memory buffer에 저장한 뒤 현재 task를 학습할 때 입력 데이터에 포함하여 학습한다. experience replay의 주요 과제는 memory buffer 어떻게 효율적으로 구축하고 활용할 것인가에 대한 것이다. 특히 memory buffer에 저장할 때 이전 task들의 학습 데이터를 전략적으로 선정, 증강 등의 기법을 통해 활용하여 업데이트 해야 이전 task들의 정보를 효율적으로 보존할 수 있다.
두 번째는 generative replay(또는 pseudo-rehearsal)로, 일반적으로 추가적인 생성 모델을 학습시켜 생성된 데이터를 활용한다. 생성 모델도 continual learning과 마찬가지로 주기적으로 업데이트 해야하며, 모든 task를 아우르는 하나의 생성 모델을 사용할 것인지 아니면 task 별로 생성 모델을 사용할지는 가용한 자원, 모델 성능의 기준 등에 따라 달라진다.
생성 모델은 GANs(generative adversarial networks) 또는 VAE(variational auto-encoder)와 같이 다양한 생성 모델을 사용할 수 있다. 최신 논문들을 기준으로 좀 더 좋은 품질의 데이터로 생성하기 위해 GAN을 사용하지만 continual learning에서 라벨 불일치 문제를 겪기도 한다. 반면 auto-encoder 기반의 방법들은 생성된 라벨을 명시해줄 수 있지만, 상대적으로 데이터 품질이 좋지 않다.
세 번째는 feature replay로, 이전 task의 데이터 분포 형태를 유지하는 것이며 효율성과 정보 보호 측면에서 유리하다. 이 데이터 분포를 유지하기 위해 feature 추출기 사용하는데, 이 feature 추출기는 모델의 중간 층을 통해 데이터로부터 특징을 추출한다. 그러나 feature 추출기도 학습 파라미터를 통해 나오는 데이터이기 때문에 catastrophic forgetting 현상이 발생한다. 이러한 한계를 초기 신경망 층을 고정하고 중간 층을 재구성하여 이후의 층을 업데이트 하는 등의 다양한 방법을 수행하여 해결한다.
Architecture-based Approaches
- Architecture-based Approaches는 모델의 구조를 변경하거나 확장하여 새로운 정보를 통합한다.
- 이 방법은 종종 새로운 task에 대해 추가적인 신경망 모듈을 도입하는 것을 포함한다.
- 예를 들어, Progressive Neural Networks는 새로운 task을 위해 별도의 모듈을 추가하면서도 이전 모듈을 유지한다.
- 이 접근법은 모델의 크기가 커지는 문제를 야기할 수 있으나, 각 task에 특화된 구조를 제공할 수 있다.
첫 번째는 parameter allocation으로, 각 task 별로 전체 네트워크의 일부 노드를만을 사용하여 그에 대한 부분 공간을 각 task의 전체 특징으로 간주한다. 여기서 일부 노드는 고정되거나 동적으로 할당될 수 있다. 다시 말해, 각 task 별로 다른 task에 영향을 주지 않도록 격리하거나 모델 구조를 동적으로 변환(고정된 파라미터를 해제하는 등)하면서 새로운 task에 필요한 파라미터를 추가하는 방법이다.
두 번째는 model decomposition으로, 명시적으로 task-sharing 부분과 task-specific 부분으로 구분다. 용어에서 알 수 있다싶이 task-sharing 부분은 모든 task에서 공통적으로 사용하는 네트워크를 말하며, task 간에 공유되는 기본적인 정보들을 학습한다. task-specific 부분은 특정 task에만 사용하는 네트워크를 말하며, 특정 task의 요구사항에 맞게 조정될 수 있고 필요하다면 확장 가능한 부분이다.
세 번째는 modular network로, 각 task 별로 독립적으로 학습 시킨뒤 병렬로 합쳐 학습시키는 방식이다. 예를 들어, 고양이 분류 task와 강아지를 분류 task가 있을 때, 두 task를 독립적으로 학습한 뒤 최종 출력층 부근에서 병합한 뒤 학습하여 두 task를 통합한다. 다시 말해, task 별로 학습된 모델들을 앙상블 한다고 이해하면 쉽다.
네트워크 기본 구조가 잘 설계되어 있는가도 continual learning의 중요한 역할을 한다. 네트워크의 폭(신경망 노드의 수)이 넓을 수록 파라미터가 많은 것이고 정보를 저장하는 공간이 더 많아짐을 의미한다. 이는 곧 파라미터들 간의 상호작용이 더 희소해짐을 의미하며 task간 간섭이 줄어들 수 있다. 이를 통해 catastrophic forgetting를 방지할 수 있다. Batch normalization의 경우 현재 학습 중인 task의 분포에 맞춰 각 층을 정규화한다. 이 때 현재 task에서 최적화된 통계치를 사용하기 때문에 이전 task에 대한 정보가 손실될 수 있다. Drop-out은 학습 시 무작위로 신경망 노드를 학습하지 않는 방법이다. 이는 모델이 해당 데이터에 의존하는 것을 방지하며, 모델이 더욱 일반화되도록 한다. 따라서 catastrophic forgetting을 방지하는데 도움된다.
Representation-based Approaches
- Representation-based Approaches는 데이터의 중요한 특성을 효과적으로 포착하는 방법에 초점을 맞춘다.
- 이 방법은 모델이 데이터를 더 잘 이해하고 표현할 수 있도록 한다.
- 예를 들어, 딥러닝 모델이 이미지의 중요한 특징을 감지하고, 이를 바탕으로 이미지를 분류하는 것과 유사하다.
- 이러한 접근법은 모델이 다양한 task에서 유용한 특징을 학습하고, 이를 통해 새로운 task에 더 잘 적응할 수 있도록 돕는다.
- 또한, 이 방법은 모델이 이전에 학습한 task에 대한 지식을 유지하는 데 도움을 줄 수 있다.
첫 번째는 self-supervised learing으로, 주로 contrastive loss를 사용하여 continual learning을 구현한다. self-supervised learning은 라벨이 없는 데이터에서 모델이 스스로 학습하는 방법인데, 예를 들어 이미지 내의 다양한 부분들을 서로 비교하며 이미지의 패턴을 학습한다. 여기서 contrastive loss는 self-supervised learning의 일반적인 접근법 중 하나로, 서로 다른 데이터들 사이의 차이점을 강조하여 모델이 특정 데이터가 어느 클래스에 속하는지 구별할 수 있도록 한다. 이러한 방법을 continual learning에 적용하였을 때 catastrophic forgetting에 강한 경향을 보인다.
두 번째는 pre-training for downstream continual learning으로, 먼저 upstream과 downstream의 개념에 대해 이해할 필요가 있다. Upstream은 일반적으로 대규모 데이터 셋을 사용하여 모델을 사전 학습하는 과정을 의미하며, 학습은 넓은 범위의 지식을 모델에 학습 시키는 것을 중점에 둔다. 예를 들어, 언어 모델을 다양한 텍스트 데이터로 사전 학습 하는 것으로 볼 수 있다. Downstream은 사전 학습된 모델을 특정 작업이나 더 작은 데이터 셋에 적용하여 미세 조정(fine-tuning)하는 것을 의미한다.
따라서 downstram continual learning은 downstream 단계에서 모델이 지속적으로 새로운 task나 데이터에 적응하면서 학습하는 과정을 말한다.
여러 경험적 연구를 통해 downstream continual learning에 사전 학습 모델을 사용함으로 명확한 이점을 얻는다는 것을 다양한 논문들을 통해 제시 되어왔다. 사전 학습은 정보의 전달뿐만 아니라 catastrophic forgetting을 방지하는데 도움된다.
세 번째는 continual pre-training(or continual meta-learning)으로, 대량의 사전 학습 데이터는 일반적으로 한 번에 모두 수집되는 것이 아니라 점진적으로 쌓아가며 수집된다. 이 과정에서 초기에 수행된 학습 후 새로운 데이터가 충분히 모일 때마다, 연속 학습 방법을 적용하여 모델을 지속적으로 업데이트한다.
Optimization-based Approaches
- Optimization-based Approaches는 학습 과정 자체를 조정하여 모델의 성능을 개선하는 데 초점을 맞춘다.
- 이 방법은 학습 알고리즘의 파라미터 조정, 손실 함수의 변경, 또는 학습률의 조절 등을 포함할 수 있다.
- 예를 들어, 새로운 task에 대해 더 높은 학습률을 적용하거나, 손실 함수에 새로운 요소를 추가하여 모델이 새로운 데이터에 더 민감하게 반응하도록 만들 수 있다.
- 이 접근법은 모델이 새로운 task에 더 빠르게 적응하고, 이전 task에 대한 지식을 유지하는 데 도움을 줄 수 있다.
첫 번째는 gradient projection으로, 파라미터의 업데이트를 이전 task의 입력 공간(input space)에 직교 방향으로 수정한다. 이는 이전 task와 완전히 독립적이라는 것을 의미한다. 이러한 방법은 새로운 task를 학습하면서 이전 task의 정보를 유지할 수 있음을 이야기하며, 만약 이전 task의 입력 공간에 직교하지 않는다면 catastrophic forgetting을 야기할 수 있다.
두 번째는 meta learning으로, continual learning에서 모델이 다양한 task나 시나리오에 대해 빠르게 적응할 수 있는 능력을 개발하는 것(일반화 하는 능력)을 목표로 한다. OML(Online Meta-Learning)은 순차적으로 도착하는 데이터에 대해 온라인 업데이트를 수행하고, 데이터들 간의 간섭을 최소화하는 전력을 제공한다. 또한 experience replay 방법과 결합하여 이전 및 새로운 task의 데이터를 좀 더 잘활용하는 MER(Meta-Experience Replay) 방법도 있다.
세 번째는 loss landscape로, 모델이 학습하는 과정에서 안정적인 손실 함수 형태를 유지함으로써 continual learning 상황에서도 모델의 학습이 안정적으로 이루어지도록 한다. 특히, 손실 함수가 넓고 평평한 형태를 취하게 되면, 새로운 task를 학습하는 동안에도 이전 task에서 학습한 정보를 보다 효과적으로 보존할 수 있다. 이는 continual learning에서 모델의 성능을 유지하고 개선하는 데 중요한 요소이다.
Regularization-based Approaches
- Regularization-based Approaches는 모델 파라미터를 조정하여 이전 학습을 보존한다.
- 이 방법은 일반적으로 중요한 파라미터에 페널티를 부여하여 새로운 학습 중에 변화를 최소화한다.
- 예를 들어, Elastic Weight Consolidation (EWC)는 중요한 가중치를 보호하여 새로운 task 학습 시 영향을 덜 받도록 한다.
- 이 접근법은 모델의 유연성을 제한할 수 있지만, catastrophic forgetting을 효과적으로 방지할 수 있다.
규제의 대상에 따라 두 가지 하위 방향으로 나눌 수 있다.
첫 번째는 weight regularization으로 신경망의 파라미터의 변화를 제한하여 이전 task에 대한 정보를 보존하는 접근법이다. 일반적인 구현 방법은 손실 함수에 이전 task에 대한 각 파라미터의 "중요도"에 따라 신경망의 파라미터의 변동을 제한한다.즉, 학습 파라미터가 학습 과정에서 너무 많이 변하지 않도록 조절하는 것을 의미한다. "중요도"는 피셔 정보 행렬(fisher information matrix. FIM)을 사용하여 계산하며, elastic weight consolidation(EWC)와 같은 접근법에 사용된다.
두 번째로 function regularization으로 모델의 출력 부분을 조절하여 이전에 학습한 task의 정보를 보존하려는 접근법이다. 이 접근법의 일반적인 방법론은 이전 모델(교사)의 출력을 현재 모델(학생)이 학습하도록 하는 knowledge distillation(이하 KD) 방법이 사용된다. 오래된 학습 데이터를 사용할 수 없는 상황에서 새로운 학습 데이터나 인공적으로 생성된 데이터를 사용하여 KD 과정을 수행한다.