요즘 딥러닝이 슬슬 연구단에서 넘어가 애플리케이션화 되면서 continual learning과 같은 개념에 관심이 더 많아지는 듯 하다. 이러한 수요를 대변하듯, 2022년 올해 CVPR 워크샵 기준으로 이 주제를 다루는 곳이 2군데가 있다. 'Visual Perception and Learning in an Open World' 라는 CVPR 워크샵은 올해가 두번째로 개최된다. CVPR 2022 Workshop on Continual Learning (CLVision) 또한 올해가 3번째이다. 따끈따끈 하구만.
올해 워크샵을 이것저것 찾아보는데 재밌어 보이는 주제 중 하나가 continual learning인지라 이 분야에 대한 조사를 (이제부터 글쓰면서) 시작하였다.
Continual Learning?
Lifelong learning이라고도 불리며, 한번 학습해서 고정해놓고 사용하는게 아니라 계속 학습을 한다는 것 같은데.
이런거 정의는 다른데서 잘 정리해줄테니 대충 넘어가자. 개념 자체가 광범위해보이니 말이다.
아무튼 딥러닝 모델을 계속 업데이트 한다는 개념인데, 그러면 가장 문제가 되는건 catastropic forgetting이라고 한다. 이걸 어떻게 해결하느냐가 이 분야의 대부분의 연구에서 관심사인듯 하다.
위에서 언급한 CVPR open world 워크샵에서도 continual learning이 왜 어려운지에 대해 잘 설명하고 있어서 이해를 위해 가져왔다.
- Open-world data follows a long-tail distribution. Data tends to follow a long-tailed distribution, but real-world tasks often emphasize the rarely-seen observations. The mismatch between data and task requires careful design of perception algorithms. Visual perception algorithms can easily fail to recognize rare examples and cause serious issues. For example, a visual recognition system could fail to recognize underrepresented minorities and make unethical predictions (ref. case1, case2).
- Open-world contains unknown examples. Largely due to the long-tail nature of data distribution, visual perception models are invariably confronted by unknown examples in the open world. Failing to detecting the unknowns can cause serious issues. For example, a Tesla Model 3 did not identify an unknown overturned truck and crashed into the truck (ref. case).
- Open-world requires learning with ever-changing ontology. To describe a world of interest (such as autonomous driving and fashion industry), we define an ontology (e.g., class labels and fashion styles). But in the real open world, the ontology is evolving over time. For example, in a fashion industry, we would keep expanding fashion vocabulary as clothing and styles are changing across seasons. How should we train a fashion-prediction model with respect to a fashion ontology that is continually changing?
영어는 읽기 괴로우니까 한국어로 요약을 해보자. 먼저, open-world 데이터는 long-tailed distribution을 가지는데다가 관측 데이터에 잘 없었던 게 실제 task에서는 빈번하게 풀어야할 수도 있다고 한다.
게다가 unknown example도 있는데, 이걸 그냥 기존에 있는 클래스로 판단하는 등 제대로 처리하지 않으면 큰 문제를 야기할 수 있다.
그리고 인퍼런스 해야하는 데이터의 스타일이 계속 바뀔 수 있다는 문제도 있다. 예를 들면 패션업계처럼 유행을 타거나 시즌별로 데이터가 계속 바뀌는 경우에는 또 어떻게 generalization이 잘 되도록 문제를 풀 수 있을까?
어쨌거나 개념만 보면 결국 제공하려는 모델이 generalization 잘 되기 위해서 새로운 학습을 할 수 있으며, 기존의 정보를 덜 까먹게 만들려는 수요때문에 탄생한 주제로 보인다. 그러다보니 기존에 있었던 learning theory쪽을 포함하여 아주 다양한 기법을 엮어서 문제를 풀고자 시도를 했다. 서베이 페이퍼들을 보면 종류가 아주아주 많은데.
우선은 논문을 보기에 앞서 papers with code 들어가서 벤치마크 뭐뭐 있는지 확인하고 가려고 한다.
PapersWithCode 확인
개념 설명에 있는 논문
- Continual Learning by Asymmetric Loss Approximation with Single-Side Overestimation https://arxiv.org/abs/1908.02984 (ICCV 19)
- Continual lifelong learning with neural networks: A review https://arxiv.org/pdf/1802.07569.pdf
- 이 논문에 대해 모 연구실에서 세미나 진행 자료가 있음 http://dmqm.korea.ac.kr/activity/seminar/266
Benchmarks
19가지의 데이터셋이 있지만 모든게 널리 쓰이진 않는 것 같다.
아래 링크로 들어가면 논문이 가장 많은 순서대로 리스트가 나오니 참고하도록 하자.
https://paperswithcode.com/datasets?task=continual-learning
각 벤치마크에 대한 순위인데, 1등 한 것에 CTR이 유독 많이 보인다.
첫번째에 있는 ASC (19 tasks) benchmark의 경우 MTL은 upper bound 성능을 표기한 것 뿐이고, 들어가보면 실제로 CTR이 1위이다. 저 벤치마크가 가장 제출된 결과(=논문, 모델)가 많기 때문에 그냥 저걸 기준으로 보는 게 좋겠다.
https://paperswithcode.com/sota/continual-learning-on-asc-19-tasks (ASC benchmark)
CTR은 NeurIPS 2021에 붙은 논문이다.
https://proceedings.neurips.cc//paper/2021/file/bcd0049c35799cdf57d06eaf2eb3cff6-Paper.pdf
SOTA격 논문이 어떤건지 발굴했으니 다시 태스크에 대한 이해로 돌아가자.
Open World Challenge CVPR 2021
저 논문을 리뷰하기에 앞서, 아직 continual learning이 어떤 태스크인지 와닿지는 않기 때문에 CVPR 워크샵으로 다시 돌아가 확인해보려고 한다.
아직 올해 것이 나오지 않기도 했고, 작년에는 태스크가 딱 1개밖에 없기 때문에 간단한 확인을 위하여 Open World Challenge 작년 것을 자세히 읽어보기로 했다.
워크샵 측에서 제공하는 문서를 읽어보자.
문서: https://docs.google.com/document/d/19kfy77P6ahWRmDKq27hz_MxfJOTEe-d3cQkODGn8bVE/edit#
참고할 자료
- 코드: https://github.com/pi-umd/open_world_vision
- 제출 서버: https://eval.ai/web/challenges/challenge-page/1041
- 서버 확인 결과, 최종 제출은 작년에 약 20팀 정도로 보임
어떤 문제를 푸나요?
- 정의: test시에 K+1 way image classification 문제를 풀기
- K known class
- 1 unknown class
- classification top-1 accuracy를 가지고 평가한다.
- 기존에 PASCAL VOC에서 open-set 환경을 모델링하기 위해 이런 셋팅을 만들었고, 이 챌린지 또한 동일한 방식을 따른다.
- 데이터셋
- ImageNet 사용할거라서 ImageNet pretraining은 그 어떤 방식으로도 안됨. 다만 다른 데이터는 되는 듯?
- ImageNet을 전부 활용하지는 않는, 50GB 미만의 작은 데이터셋을 사용
- validation set: 일반적으로는 하나지만, 여기선 6개를 사용.
각 셋에는 2천개씩 이미지가 있음 (known, unknown 다 있음)- validation을 위하여 기존에 이미 배운 것(closed-set, known)과 새로운 것(open-set, unknown)을 같이 사용한다.
Novel image에는 또 여러 종류가 있다. - Novel class: 클래스가 새로운 것 ⇒ “K+1”번째 클래스(new)로 판단해야함
- Augmentation Novelty: Gaussian, Bilateral Filter를 거쳐 만들었다.
쉬움/중간/어려움 난이도의 examples을 다양하게 만들었으며, 전부 original image와 같은 클래스로 판단해야한다. - Novel Attributes: train set과 같은 클래스인데 color, design이 다르거나 subclass가 다름.
⇒ 이 경우, 새 클래스가 아니라 기존 클래스에 할당해야한다. super category가 동일하기 때문이다.
- validation을 위하여 기존에 이미 배운 것(closed-set, known)과 새로운 것(open-set, unknown)을 같이 사용한다.
이렇게 보니까 상당히 와닿는다.
K+1 classification을 풀거고, 잘 동작하는지를 세세하게 알아보기 위해 다양한 validation set을 두고 평가하고, 기준은 여러 metric이 있겠으나 top-1 accuracy를 기본적으로 본다는 것.
다음 글에서부터는 아까 paperswithcode에서 발굴한 논문(옛날거랑 CTR)을 읽어보면서 사람들이 대략 어떻게 푸는지 알아보려고 한다.
'AIML 분야 > self supervised, Learning Theory 등' 카테고리의 다른 글
[2021.03.08 연구노트] KD, Semi-Supervised Learning에 대한 고민 (0) | 2021.03.08 |
---|---|
[Active Learning] A Survey of Deep Active Learning 읽기 (0) | 2021.02.23 |
[Active Learning] 서베이 하기 (0) | 2021.02.23 |
[연구 노트] Deep Active Learning 베이스라인 코드 리뷰 + 내 연구 (0) | 2021.01.15 |
Self-Supervised Learning 몰라서 공부하는 글 (0) | 2020.12.21 |
댓글