- 2022년 9월 5일 오전 3:30
- 조회수: 10124
INFORMATION
- 2022년 9월 2일
- 오후 1시 ~
온라인 비디오 시청 (YouTube)

TOPIC
On-Line Video
OVERVIEW
최근 인공지능은 특정 task에서 인간을 뛰어넘는 성능을 달성하고 있다. 대부분의 task(예를 들면, image classification)는 잘 정리된 데이터셋에 대해 train/test/valid를 구분하고 test 셋의 성능을 확인하는 방식이다. 하지만, 현실세계에서는 학습때 사용하지 못한 데이터가 지속적으로 수집되기 때문에 학습된 모델의 일반적인 성능이 악화될 수 있다. 따라서 본 세미나는 위와 같은 문제상황을 해결할 수 있는 방법 중 하나인 continual/incremental learning에 대해 소개하고자 한다.
참고문헌 :
[1] Pham, Quang, Chenghao Liu, and Steven Hoi. "Dualnet: Continual learning, fast and slow." Advances in Neural Information Processing Systems 34 (2021): 16131-16144.
[2] Shin, Hanul, et al. "Continual learning with deep generative replay." Advances in neural information processing systems 30 (2017).
[3] Rusu, Andrei A., et al. "Progressive neural networks." arXiv preprint arXiv:1606.04671 (2016).
[4] Kirkpatrick, James, et al. "Overcoming catastrophic forgetting in neural networks." Proceedings of the national academy of sciences 114.13 (2017): 3521-3526.
[5] Yan, Shipeng, Jiangwei Xie, and Xuming He. "DER: Dynamically Expandable Representation for Class Incremental Learning." 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE Computer Society, 2021.
청취자 후기

이번 세미나는 Continual Learning에 대해서 진행되었다. Deep Learning 모델이 여러 Task에서 높은 성능을 달성하고 있지만 학습한 데이터에 제한적으로 높은 성능을 보이며 인간과 같이 지식을 축적하거나 지속적으로 학습하지는 않는 여러 한계점이 존재하고 있다. 따라서 이러한 한계를 해결하고자 Continual Learning 을 정의하는데 이는 Training Data에 접근하지 않고도 하나의 Network로 여러개의 Task의 성능을 유지하거나 향상하는 것이라고 한다. Continual Learning을 처음 접하여 생소한 개념이었는데 차근차근 설명해주어 개념에 대해 쉽게 이해하고 이후 세미나를 청취할 수 있었다. Continual Learning을 위해서 하나의 Network로 여러 Task를 학습시키게되면 이전 Task의 정보를 잃는 Catastrophic Forgetting이 발생한다고 한다. 따라서 이러한 문제를 해결하기 위해서 Regularization/Replay/Architecture-based로 3가지로 구분되어 방법론이 발전되고 있다고 한다. Regularization-based는 Loss Function에 제약식을 통하여 기존 Task의 성능을 잃는 것을 방지하는 방법이며 Replay-based는 Training subset을 저장하거나 Data Generator를 활용하여 기존 Weight를 보존하는 방식을 보여준다. 마지막으로 Architecture-based는 각 Task에 맞는 Network를 별도로 가짐으로서 성능을 유지하는 구조를 가진다. 우선 Regularization-based 방식 중 EWC(Elastic Weight Consolidation)을 소개해주었는데 EWC는 Loss를 계산할 때 현재 Task에 의한 Loss에 이전 Task의 중요도에 따른 값을 보정하여 최종 Loss Function을 계산하게 된다. 구체적으로 어떻게 계산하는지 잘 이해 못했지만 전체적은 구조와 개념은 이해할 수 있었다. 다음은 Replay-based의 DGR(Deep Generative Replay)를 설명하였는데 특이점으로 인간의 뇌가 기억을 하는 방식을 모방하여 만들었다고 한다. Generative 모델 답게 GAN의 구조를 활용하여 과거 Task의 데이터를 학습함으로써 성능을 유지한다. 세 번째로 Architecture-based인 PNN(Progressive Neural Network)을 소개해주었는데 이는 여러개의 Network를 구성하고 해당 Network가 다음 Task를 학습할 때 영향을 주는 방식을 취하고 있다. 또한 마지막으로 최근 방법론들인 DualNet과 DER(Dynamic Expandable Representation)을 설명해주었는데 DualNet이 인간의 뇌의 학습 방식을 본떠 방법론을 구성하고 있어서 굉장히 흥미롭게 들을 수 있었다. Continual Learning이 연구되어지고 있는 현황을 각 구분 된 방식별로 방법론을 세세하게 소개해주어 이해하는데 많은 도움이 되었던 것 같다. 끝으로 점차 Deep Learning 방법론이 발전하면서 Strong AI에 좀 더 다가서는 것이 아닌가 하는 생각이 들었다. 유익한 세미나를 준비해주신 문석호 연구원님께 감사드리며 이상으로 세미나 후기를 마친다.

이번 세미나는 Continual Learning에 대하여 진행되었다. Continual Learning은 여러 Task를 순차적으로 학습할 때 앞선 Task에 대한 예측 성능을 유지하거나 향상시키는 것을 의미한다. 현재 존재하는 모델들은 기린과 곰에 대한 구분을 학습했던 모델에 사자와 토끼에 관한 데이터로 다시 학습한다면, 기린과 곰에 대한 분류력은 하락한다. 왜냐하면 모델이 다시 학습함으로써 사자와 토끼 분류에 집중하였기에, 기린과 곰에 대한 분류정보는 잃어버렸기 때문이다(Catastrophic Forgetting). 이때, Continual Learning은 사자와 토끼에 대해 다시 학습을 해도, 기린과 곰에 대한 분류력을 유지할 수 있는 연구분야를 의미하며 크게 Regularization-based, Replay-based, Architecture-based로 나뉜다.
먼저 Regularization-based는 손실함수를 변경하여 Catastrophic Forgetting을 최소화한다. 대표적으로 EWC는 이전 task의 가중치 중 이번 Task에 중요한 Weight를 산출하여 규제를 주는 방식으로 진행되는데, 이전 Task의 사후확률을 다음 Task에 대한 사전확률로 본다는 것이 특징이다. 또한 DER은 보조 손실함수와 Sparsity 손실함수를 추가하여 이를 극복하였다. 두 번째로 Replay-based 방법론은 이전 Task의 데이터를 일부 저장한 후 다음 Task 시 활용하는 방식으로 수행된다. 예를 들어 DGR은 Replay-based방법론의 아이디어가 Task가 많아질수록 메모리를 많이 차지할 수 있다는 것에 착안하여, Generative Model을 통해 메모리를 대체하는 방식을 활용한다. 마지막으로 Architecture-based는 모델을 구조적으로 변경하여 해결하는 방법론이다. 대표적으로 Progressive Neural Network는 현재 Task학습 시 이전 Task의 Weight를 활용하는 특징을 갖는다. 더불어 DualNet은 자기지도학습을 결합하여 문제를 해결하였다는 특징을 갖는다.
이번 세미나를 통해 Continual Learning에 대해 처음 접할 수 있었다. 늘 느끼는 것이지만 이러한 새로운 개념들은 인간의 사고를 모방하여 탄생한다고 느낄 때가 많았는데, 이번 Continual Learning도 동일했다. 사실 인공지능이라고 함은 이처럼 Continual Learning한 성질을 가지고 있는 것이 당연하지만, 현재는 한 가지 Task만 풀 수 있는 약한 인공지능에만 머물러있다. 이번 세미나를 듣고 Continual Learning이 강한 인공지능으로 가는 한 부분이라는 생각을 했고, 혁신적인 연구분야로 느껴졌다. 유익한 세미나를 준비해주신 문석호 연구원님께 감사드리며 이상으로 세미나 후기를 마친다.

많고 다양한 데이터들이 꾸준히 누적되는 빅데이터 시대에서, 단 한번 학습된 인공지능만을 사용하는 것은, 시대에 뒤떨어지는 인공지능일 수 있다. 새로운 데이터들을 맞이해 학습을 새롭게 진행한 인공지능이 과거에 학습했던 데이터의 지식을 잃는 행위 또한, 아쉬운 모습일 수 있다. 그래서 등장한 방법론을 Incremental/Continual Learning이라 하고, 본 세미나에서 이에 대한 개념 이해와, 방법론 이해를 할 수 있었다. 본인의 경우 새로운 방법론에 대한 소개를 받게 되면, 그에 대한 평가 프로토콜을 항상 궁금해 하는 편인데, 본 세미나의 경우 궁금점을 잘 해결할 수 있었다. 재밌었던 부분은, 현재의 지식이 과거의 지식을 침해하지 않게 설계한 부분으로, 이전 Task의 뉴럴 네트워크와 현재 Task 뉴럴 네트워크의 파라미터들이 크게 바뀌지 않게 제약을 걸거나, 인간의 뇌(신피질, 장기 기억 담당) 특성을 뉴럴 네트워크로 흉내내어 Task 변화로 인한 성능 저하를 방지하는 것이 있었다.
본 세미나를 듣고서는 현재 제가 진행하고 있는 연구에 어떻게 적용해 볼 수 있을지 생각이 들었는데, 다음과 같았다.
상황 1: A 방법을 적용하면 정확도가 상승하나, 모델 신뢰도가 떨어진다.
상황 2: B 방법을 적용하면 정확도는 조금 떨어지나, 모델 신뢰도가 상승한다.
이슈: A와 B 방법을 동시에 적용하면, 학습이 전혀 되지 않았다.
나의 경우 모델 정확도와 신뢰도를 모두 높이고 싶은 상황인데, 본 세미나를 청취한 뒤, 상황 1과 상황 2가 서로 침해되지 않은 선에서 학습 시킬 수 있는 방법에 대한 인싸이트를 찾을 수 있지 않을까 생각하였다.
좋은 세미나를 준비해 준 석호 형님에게 감사의 말씀을 전하며 세미나 후기를 마치도록 한다.

이번 세미나는 continual/incremental learning에 대해 진행되었다. ML/DL은 특정 task에 대해서 매우 우수한 성능을 보여주고 있고, 지속적으로 성능이 상승하고 있다. 하지만 아직 인간과 유사한 인공지능으로 보기에는 여러가지 한계점이 존재한다. 우선 딥러닝은 지속적으로 학습하지 않으며 knowledge가 축적/이동되지 않는다. 또한 문제 상황이 closed-world를 가정하고 있어서, 데이터가 새롭게 추가되는 실제 현실에 대한 대응이 어렵다. 마지막으로 한 번 학습된 모델은 test task에 적용한 후에 새롭게 학습되지 않는다.
Continual learning은 이러한 문제를 해결하기 위해서 하나의 neural network로 여러 개의 sequential tasks의 성능을 유지하거나 향상시키는 것을 말한다. 우선 기존 task들의 정보를 담고 있는 knowledge를 knowledge base(KB)에 축적한다. 이후에는 Knowledge를 task를 교차시키면서 transferring을 진행한다. 하지만 continual learning을 위해서 하나의 network로 여러 task를 학습시키게 되면 이전 task의 정보를 잃는 catastrophic forgetting이 발생한다. 이런 문제를 해결하기 위해 regularization, replay, architecture-based로 해결 방법이 제안된다. Regularizatio base는 손실함수에 제약식을 설정하고, replay based는 memory를 통해 training subset을 만들거나 data generator를 학습한다. 마지막으로 architecture base는 각 task별로 sub-network를 가지거나 network가 dynamic expandable하는 형태이다.
이후에는 관련 논문인 EWC, DER, DGR과 같은 논문이 소개되었다. 인공지능은 궁극적으로 '인간'과 같은 모습으로 발전되어간다고 생각하는데 이번 세미나를 통해 새로운 연구분야를 알 수 있었다. 흥미로운 연구를 소개해준 석호형께 감사의 말씀을 전하며 세미나 후기를 마친다.

기존 머신러닝/딥러닝 알고리즘은 학습 데이터가 전체 분포를 대표한다는 Closed Set 가정하에 수행된다. 이에 따라 새로운 질감(도메인), 범주(클래스)가 들어올 경우 일반화가 잘 되지 않고 오히려 성능이 급락하는 Catastrophic Forgetting 상황이 발생한다고 한다. 금일 세미나는 이러한 Catastrophic Forgetting을 해결하기 위한 분야인 Continual Learning에 대한 기초, 분류, 최신 알고리즘에 대해 간단히 알아 볼 수 있었다. 3~40분 내의 세미나에 굉장히 많은 연구들이 함축적으로 소개 되어있다. Continual Learning은 시나리오적인 측면에서 Task/Domain/Class Incremental로 나눌 수 있고, 방법론적인 측면에서는 Regularization/Replay/Architecture기반으로 나눌 수 있다. 방법론적인 부류에서는 3가지 모두 소개되지만, 시나리오적인 측면에서는 Domain Incremental보다는 Task와 Class Incremental 쪽 연구들이 소개된 듯하다.
Regularization-based : EWC - 수식의 유도가 세미나에는 전부 나와있지 않아 이론적으로는 완벽히 이해하지 못하였지만, 골자는 모델의 파라미터 중 이전 데이터와 중요도가 높은 파라미터를 골라 업데이트를 규제화하는 느낌이다. 단순히 L2 Regularization을 쓰는 것에 비해 좀 더 데이터 특징을 잘 살린 방법이라고 생각이 들며, Figure 1 또한 이러한 측면을 잘 반영한 그림이다.
Replay-based : DGR - 한정적인 메모리에 반해 Task 증가에 따른 Train Set 증가 문제를 해결하고자 한다. Generator와 Solver라는 용어가 조금 낯설어서 완벽히 이해하지는 못하였다. 하지만 실험 결과에서 완벽히 모든 데이터를 저장할 수 있는 상황(ER)에 대비하여 제안하는 방법론(GR)이 거의 근접하는 놀라운 성능을 보여준만큼 직접 읽어보고 싶다는 느낌이 든다.
Architecture-based: PNN - Task 별로 모델을 만들되, 이후 Task에 대한 모델은 이전 Task에 대한 가중치를 결합한다는 것이 골자이다. 2016년도 논문이라 그런지 방법론이 매우 단순하며, 모델 구조적인 측면에서 Incremental Setting을 이렇게 풀 수 있다라는 것을 보여준게 주 기여점인듯하다.
Dual Net : DGR에서 영감을 받은 듯하다. Fast Learner와 Slow Learner를 따로 두어, Slow Leaner는 데이터의 일반적인 특징 추출을, Fast Learner는 특정 태스크에 빠른 수렴을 하는것이 목표인 듯 하다. 하지만 Feature Adaptation과 Memory Consolidation이 구체적으로 어떻게 이루어지는가가 설명되지 않아 약간 아쉽다.
DER : Class Incremental Setting을 해결하고자 한 논문 같은데, 세미나 설명 상 Task Incremental이 아닌가라는 느낌이 든다. 해당 방법론에서 개별 Feature Extractor는 Class 기준인지 Task 기준인지 잘 와닿지 않아 이해하기 쉽지 않았던 것 같다.
짧은 시간 내에 되게 많은 논문을 함축하여 소개하였으며, Continual Learning을 처음 공부할때 어떤 순서로 봐야하는지, 각 논문이 풀고자 하는 세팅은 무엇인지를 파악하는데 도움이 되는 세미나이다. 준비하느라 고생하신 석호형께 감사의 말을 전한다.