안녕하세요.

이번 글에서는 self-supervised learning이 무엇인지 설명해보려고 합니다.

 

Self-supervised learning는 개념이 어떻게 해서 탄생하게 됐고, 현재 어떠한 방향으로 학습이 되고 있는지 간단히 살펴보겠습니다. 

 

 

 

 

1. Unsupervised learning

Unsupervised learninglabel(정답)이 없는 데이터로 학습하는 모든 방법론을 일컫습니다.

 

<그림 출처:  https://machinelearningknowledge.ai/supervised-vs-unsupervised-learning/>

 

 

라벨이 없이 학습 할 수 있는 사례는 아래와 같이 다양 합니다.

 

 

<그림 출처:  https://www.researchgate.net/figure/Taxonomy-of-Unsupervised-Learning-Techniques_fig1_319952798>

 

 

 

위의 taxonomy에서 "Unsupervised Learning Techniquess" → "Hierarchical learning" → "Deep learning"의 대표적인 사례는 Generative model 중 하나인 GAN이라고 볼 수 있습니다.

 

(↓↓↓GAN 관련 정리된 글↓↓↓)

https://89douner.tistory.com/329

 

5-1. GAN (Part1. GAN architecture)

안녕하세요. 이번 글에서는 최초의 GAN 논문인 "Generative Adversarial Nets"을 리뷰하려고 합니다. 우선, GAN이라는 모델이 설명할 내용이 많다고 판단하여 파트를 두 개로 나누었습니다. Part1에서는 GAN a

89douner.tistory.com

 

 

딥러닝 외에도 기존dimension reduction task에서도 다양한 unsupervied learning 모델들이 사용 됐는데, 그 중에 대표적으로 알고 있는 것들은 t-SNE, auto-encoder 같은 것들이 있습니다. T-SNE, auto-encoder 모두 라벨 없이 데이터의 latent space를 찾는 dimension reduction 기법이라 할 수 있습니다. (auto-encoder는 애초에 처음에 dimension reduction 방식으로 제안이 되었죠)

 

(T-SNE의 embeding 결과 예시↓)

 

 

 

(↓Auto-Encoder의 embedding 결과 예시↓)

<그림 출처:  https://www.youtube.com/watch?v=rNh2CrTFpm4>

 

 

 

 

최초의 CNN 모델인 LeNet(1998)의 창시자 Yann LeCun 교수 또한 평소에 unsupervised learning 방식을 매우 강조해왔습니다. Yann LeCun 교수는 NIPS 2016 Key Note에서는 아래 PPT 내용을 발표하였고,

 

<그림 출처:  https://medium.com/syncedreview/yann-lecun-cake-analogy-2-0-a361da560dae>

 

 

 

같은 해(2016) CMU에서 특히 이를 강조하기도 했죠.

 

 

 

<그림 출처:  https://twitter.com/mldcmu/status/1046869963347283973>

 

 

 

 

 

2. Yann Lecun & Self-Supervised Learning

[2-1. 2018]

2018.09.12 Samsung AI Forum (SAIF) 에서 Yan Lecun 교수 self-supervised learning이라는 용어사용하게 됩니다. (물론 이전에도 사용해 왔을 수 도 있습니다) Yan Lecun은 supervised learning의 단점, reinforcement learning의 단점을 통해 self-supervised learning의 필요성을 주장했습니다.

 

  • Supervised learning의 단점
    • "레이블" 데이터가 많아야 함
    • 학습되지 않은 데이터가 튀어나오면 예측 불가능
  • Reinforcement learning의 단점
    • 실패해도 다시 시도하면 되는 게임에선 가능
    • 현실 세계에서는 실패 자체가 치명적일 수 있어서 적용하기 힘듬
  • Self-supervised learning의 필요성
    • 주변 상황과 조건을 고려해 예측해야 함
    • 실패하기 전에 사고가 난다는 것을 예측해야 함

 

 

(↓↓↓ Yan Lecun이 self-supervised learning을 언급했다는 내용↓↓↓)

https://news.samsung.com/kr/%EC%84%B8%EA%B3%84-%EC%84%9D%ED%95%99%EB%93%A4%EC%9D%98-%EB%88%88%EC%9C%BC%EB%A1%9C-%EB%B3%B8-ai%EC%9D%98-%EB%AF%B8%EB%9E%98%EC%82%BC%EC%84%B1-ai-%ED%8F%AC%EB%9F%BC-2018

 

세계 석학들의 눈으로 본 AI의 미래…‘삼성 AI 포럼 2018’

인공지능(AI)과 딥러닝(Deep Learning) 분야 최고 권위자들이 한국을 찾았다. 9월 12~13일 이틀에 걸쳐 열린 ‘삼성 AI 포럼 2018’에 연사로 나서기 위해서다. 이들은 AI의 고도화된 학습기법인 ‘자기지

news.samsung.com

 

https://www.sait.samsung.co.kr/saithome/event/saif2018.do

 

Samsung AI Forum 2018 | Samsung Advanced Institute of Technology

Samsung AI Forum 2018 | Samsung Advanced Institute of Technology

www.sait.samsung.co.kr

 

 

[2-2. 2019]

2018년도 까지만 해도 self-supervised learning과 관련된 연구들이 진행되고 있었지만, unsupervised learning이라는 용어와 별도로 분리해서 사용하지 않는 등 “self-supervised learning” 용어가 보편화 되지 않았던 것 같습니다.

 

하지만, Yann LeCun 교수는 self-supervised learning이라는 개념이 unsupervised learning 용어와 분별하여 사용할 필요성을 느끼고 2019 트위터에 “self-supervised learning”이라는 개념구체화 하기 시작합니다.

 

 

 

 

(↓↓↓Representation learning용어는 뒤에서도 나옴↓↓↓)

<그림 출처: https://chowdera.com/2021/01/20210109003603375e.html>

 

 

 

 

[2-3. 2020]

2020.11.05 Samsung AI Forum (SAIF) 에서 Yann LeCun 교수 다시 self-supervised learning강조했습니다. 좀 더 구체적인 내용들을 토대로 연설을 시작하면서 왜 self-supervised learning이 필요한지 설명했습니다.

 

<그림 출처: [SAIF 2020] Day 1: Energy-Based Models for Self-Supervised Learning - Yann LeCun | Samsung>

 

 

 

 

3. Self-Supervised Learning (SSL) Motivation

Self-Supervised Learnig을 배우는 이유는 다양하겠지만, 이번 글에서는 대표적인 한 가지 이유에 대해서만 말씀드리겠습니다.

 

Vision 분야에서 딥러닝을 가장 흔하게 사용하는 방법 중 하나는 pre-trained model을 transfer learning 하여 사용하는 것입니다. Transfer learning을 하는 이유는 ImageNet과 같이 방대한 양의 데이터를 미리 학습하여 다양한 이미지들에 대한 feature를 잘 뽑을 수 있게 filter들을 학습시키고, 특정 task에 적용하는 것이죠.

 

보통 초기 layer들은 edge와 같은 특징들을 뽑아낼 수 있게 학습이 될텐데, edge feature를 뽑아 줄 수 있는 filter들을 형성하는데 있어서 이미지 종류는 크게 상관이 없을 확률이 높습니다. 왜냐하면, 강아지의 edge 특징이나 자동차의 edge 특징이나 거기서 거기일 가능성이 크기 때문이죠. 하지만, 마지막 layer에서 추출할 수 있는 semantic 정보이미지 종류마다 다를 수 있습니다. 그래서, 우리가 최종적으로 분류할 task의 이미지 종류가 pre-training 시에 사용됐던 이미지 종류와 다르다면 마지막 layer 부분을 다시 학습(by transfer learning or fine-tuning)하여 최종 task 이미지의 semantic 정보를 적절하게 추출할 수 있도록 setting 해주는 것이죠. 

 

 

여기서 중요하게 알고 넘어가야할 용어가 있습니다. 바로 "upstream task""downstream task"입니다.

 

upstream taskpre-training 단계에서 진행하는 학습 task를 의미하고, downstream tasktransfer learning 시에 적용하고자 하는 target task를 의미합니다.

 

그렇다면, transfer learning 관점에서 왜 self-supervised learning이 필요할까요? 이 질문에 답을 하기 위해서는 기존의 방식들에 대한 의문을 먼저 던져봐야합니다.

 

 

“Why should we use supervised learning method for pre-training model?”

 

  1. Supervised learning 학습 방식이 downstream task에 효과적인 feature를 학습하는데 도움이 되는가?
  2. Pre-trained model을 학습하는데 대용량의 label 정보가 필요한가?

 

사실 위의 두 질문에서 첫 번째 질문에 대한 답이 "supervised learning 방식은 좋지않다"라면 2번에 대한 답은 자연스럽게 "필요없다"가 됩니다. 즉, 우리는 첫 번째 질문에 대한 고찰만 하면 되는 것이죠.

 

그렇다면, 1번 질문을 집중적으로 살펴보면서 self-supervised learnin이 필요한 이유에 대해서 살펴보도록 하겠습니다.

 

"Supervised learning 학습 방식이 downstream task에 효과적인 feature를 학습하는데 도움이 되는가?"

 

 

Mon May 3rd through Fri the 7th

2021 ICLR Keynote

Alexei A. Efros (UC Berkely)

 

(↓↓↓ 위의 슬라이드 자료 ↓↓↓)

https://iclr.cc/media/iclr-2021/Slides/3720.pdf

 

(↓↓↓ 위의 슬라이드 발표영상 ↓↓↓)

 

 

위의 발표내용 중에 제가 문제라고 봤던 부분을 정리해서 설명해보도록 하겠습니다. 여기서 부터는 주관적인 해석이 많이 들어가 있으니 참고해서 봐주시고, 잘 못 됐거나 다른 관점이 있으신 분들은 댓글 남겨주시면 감사하겠습니다.

 

 

기존CNNsupervised learning으로 학습하는 방식에 대해 살펴보겠습니다. CNN 분류 학습의 가장 큰 목표라고 할 수 있는 것은 아래 다양한 의자들을 모두 동일한 클래스인 "의자"라고 분류하는 것 입니다. 즉, 의자의 다양한 형태에 robust하게 분류 할 줄 알아야 하는데, 이를 위해선 의자의 공통적인 feature를 잘 뽑아낼 수 있도록 Conv filter학습되어야 합니다. 그래서, 학습 시 아래 다양한 의자들을 모두 동일한 label로 설정하게 되는 것이죠. 

 

 

 

그런데, 잘 생각해보면 사람들이 유아기 때 저 의자를 구분할 수 있었던 이유는 '누군가가 저 모든 형태 하나 하나씩 의자라고 알려주었기 때문'이 아니라 '먼저 각각의 의자의 특성들을 잘 파악하고 서로 유사한지 아닌지 비교해나가기 때문'인 것을 알 수 있습니다.

 

 

“People don’t rely on abstract definitions/lists of shared properties”

 

 

즉, 애초에 저 '다양한 의자들을 모두 같은 것'이라고 가정하고 출발하는게 '인간이 학습하는 방식'에 맞지 않다고 보는 것이죠.

 

 

 

위와 같은 문제를 해결하기 위해 딥러닝 모델도 먼저 각각의 의자 이미지들에 대한 특성을 잘 파악할 수 있게 학습시키는게 먼저라고 봤습니다.

 

"즉, 해당 이미지들이 무엇인지를 학습하는 것이 아닌 해당 이미지들이 무엇과 유사한지를 살펴보도록 하는게 인간의 학습관점에 더 맞다고 판단한 것이죠."

 

 

 

 

또한, 다양한 의자의 feature들을 잘 표현(representation)해줄 수 있도록 Conv filter가 학습(learning)되는게, downstream task를 위한 representation learning 관점에서 더 좋을 수 있다고 봤습니다.

 

 

 

 

 

4. 앞으로 볼 내용 

Self-Supervised Learning은 아래의 순서대로 발전해 왔습니다.

그렇기 때문에 앞으로 Self-Supervised Learning 카테고리에서는 Pretext task, Contrastive learning, New approach 이렇게 세 가지 서브 카테고리로 나눠서 설명하도록 하겠습니다.

 

<그림 출처:  https://www.youtube.com/watch?v=5BCQ7T2Rw1w>

 

 

+ Recent posts