- 2020년 4월 27일 오후 5:56
- 조회수: 10696
INFORMATION
- 2020년 5월 1일
- 오후 1시 ~
- 화상 프로그램 이용(Zoom)
TOPIC
OVERVIEW
청취자 후기
금일 세미나는 "Self-Supervised Representation Learning"이라는 주제로 석호형이 세미나를 진행해주었다. 지금껏 크게 supervised Learning / semi-supervised Learning / unsupervised Learning 으로 구분해서 알고 있었기에 Self-supervised Learning은 다소 생소하게 들렸다. 하지만 세미나 자료에서 self-supervised learning에 대한 연구 배경과 학습 방식, 성능 비교까지 순차적으로 잘 나타나있어서 처음 접했지만 직관적으로 이해할 수 있었다. 내가 이해하기로는 unsupervised learning 방식을 따라 레이블이 없는 데이터를 입력하여 입력된 데이터를 잘 설명할 수 있도록 학습을 따로 진행하고 이러한 학습 과정을 pretext task라고 불리며, 이후 실제로 풀고자 하는 문제에 pretext task에서 학습된 가중치를 가져와 적용하는 과정을 downstream task라고 이해했다. 인상깊었던 부분은 Count라는 pretext task에 대한 예시로 강아지 사진은 입력하여 trival solution을 피하고자 배 사진을 가져와서 비교하여 비용 함수를 제시한 부분이다. 처음에는 다소 직관적으로 이해하기 힘들었는데 교수님과 현구형, 민구형이 문제를 쉽게 풀어주어 이해하는데 도움을 받을 수 있었고 이런 방식으로도 loss를 계산할 수 있다는 거에 인상 깊었다. 성능을 검증하는 부분에서도 파라미터의 수를 늘리면 supervised learning과 유사한 성능을 보이는 것을 볼 수 있었는데 그렇다면 실제 산업 분야에서도 레이블링이 되어 있지 않은 수많은 데이터를 대상으로도 적용해 볼 수 있을 것 같고 꼭 이미지가 아니더라도 충분히 적용했을 때 좋은 결과를 기대해봐도 좋을 것이라고 생각된다. 이후에 적절한 데이터가 주어지면 다시 한번 공부 하면서 직접 구현해보는 것이 좋을 것 같다. 오늘 전혀 알지 못했던 이론에 대해서 자세히 설명하고 좋은 영감을 준 석호형에게 감사하다.
금일 세미나는 석호가 "Self-Supervised Representation Learning"이라는 주제로 진행해주었다. Self-Supervised Learning이라는 다소 생소한 개념을 직관적인 발표자료로 처음 접한 사람도 이해할 수 있도록 잘 설명해주었다. 내가 금일 세미나를 통해 이해한 Self-Supervised Learning은 Label이 없는 데이터만 주어진 상황에서 Classifier를 학습시키는 방법론 전반이라 생각한다. 실제로 세미나에서 예시로 짚어 주었듯이 Raw Data에 Label을 달아주는 작업은 많은 비용을 요구한다. 그래서 금일 세미나 주제는 산업 현장과 밀접하게 맞닿아 있는 우리 연구실의 연구원들에게 많은 흥미를 불러 일으킨 것 같다.
석호가 오늘 여러가지의 Self-Supervised Learning 알고리즘을 소개해주었는데, 전반적인 Self-Supervised Learning 알고리즘의 큰 흐름은 Input Image의 특성을 잘 요약? 추출? 하도록 네트워크의 파라미터를 학습시키는 것이라고 생각한다.
Positive Sample(같은 이미지의 augmentation 또는 일부분)을 활용하여 유사하도록, 다른 이미지를 Negative Sample로 사용하여 유사하지 않도록 Loss Function을 구성해서 Network를 학습시키면 학습된 파라미터가 실제 Label된 데이터로 테스트하였을 때(downstream task로 transfer), 좋은 Classifier가 된다는 것이 흥미로웠다.
최근 Adversarial Learning을 공부하며, Negative Sample과 Positive Sample을 어떻게 두어야 하는가에 대한 고민이 많았었는데, Self-Supervised Learning에서도 해당 고민이 중요한 과제인 것 같았다. 이제 막 배우고 있는 내가 공부하던 내용을 확장하기에 좋은 방향을 제시해준 것 같아 다시 한번 오늘 발표를 훌륭하게 마무리해 준 석호에게 감사를 표한다.
오늘은 Self-Supervised Learning을 주제로 세미나가 진행되었습니다. Self-Supervised Learning은 label이 없는 데이터를 활용해 사용자가 사전에 정의한 문제를 풀게 함으로써 데이터 자체에 대한 이해도를 높이고자 하는 방법론입니다. 사용자가 사전에 정의한 문제를 pretext task라고 하며 해당 문제를 풀어서 나온 모델의 파라미터를 활용해 사용자가 풀고자 하는 문제에 적용합니다. 사용자가 궁극적으로 풀고 싶어 하는 문제를 downstream task라고 하며 label이 없는 데이터를 활용해 downstream task를 잘 해결하는 것이 Self-Supervised Learning의 목적입니다. Pretext task로는 Jigsaw Puzzle, Cont 등 다양한 방법론들이 소개되었습니다. Jigsaw Puzzle은 기존의 이미지를 9개로 나누어 임의로 섞은 후 섞여진 이미지가 기존 이미지의 1~9까지 영역 중 어느 부분에 해당하는지를 순서대로 맞추는 문제입니다. 9개의 순서를 섞는 조합을 모두 맞추는 것은 class 개수가 너무 많아지기 때문에 그중 100개의 class만 선정하여 문제를 진행하게 됩니다. Count는 기존의 이미지를 4개로 자른 후 4개의 이미지에서 뽑힌 feature와 기존의 이미지에서 뽑힌 feature가 같아지도록 loss function을 설정해서 학습을 진행합니다. 이때 feature가 단순히 0이 되는 것을 방지하기 위해서 4개의 이미지에서 뽑힌 feature가 다른 이미지에서 뽑힌 feature와는 최대한 달라지도록 보정해주는 값을 loss function에 추가해줍니다. 다음으로는 최근에 발표된 Self-Supervised Learning 방법론 중 가장 성능이 우수한 SimCLR이 소개되었습니다. SimCLR은 기존의 이미지를 augmentation 통해서 feature를 뽑아낸 후 동일한 이미지에서 뽑힌 feature의 차이는 작게 다른 이미지에서 뽑힌 feature는 크게 만드는 loss function을 통해서 학습을 진행합니다. SimCLR은 Supervised Learning을 통해 학습한 모델과 비교했을 때도 비슷한 성능을 낼 만큼 좋은 성능을 보입니다. 오늘 세미나를 통해서 Self-Supervised Learning이라는 개념을 처음 접하게 되었고 활용될 수 있는 분야가 넓은 만큼 앞으로 관심을 가지고 공부해봐야 될 분야라는 생각이 들었습니다. 오늘 세미나를 위해 수고해준 석호형에서 감사의 뜻을 표합니다.
이번주 세미나는 석호가 ‘Self-Supervised Representation Learning’이라는 주제를 가지고 세미나를 진행하였다. 먼저 Self-Supervised란 Supervision을 스스로 준다는 것을 의미하며 데이터는 레이블이 존재하지 않는 데이터만 사용하게 된다. 여기서 사용자가 정의한 새로운 문제를 pretext라고 정의하고 이러한 pretext task가 잘 학습이 되게 네트워크를 pre training시킨후 downstream task로 transfer learning을 하는 방식인데 이를 석호가 여러가지 논문을 가지고 자세하게 설명해 주었다. Pretext tasks과정에서 가장 먼저 guideline이 된 것은 Exempler인데 기존 이미지를 cropping한뒤 augmentation하여 학습을 진행하였다. 그 뒤에는 Context Prediction과 Jigsaw Puzzle과 같이 9개의 patch로 나눈 뒤 예측하는 방법론이 나왔고 앞의 방법과는 다른 Count라는 방법론이 나왔다. Count는 전체 이미지를 4분할 한 뒤 input으로 사용하게 되고 기존에 분류하고자 하는 이미지와 다른 이미지를 input으로 같이 넣어 class가 다른 이미지의 feature를 반영하고자 하였다. 이러한 방식으로 pretext tasks를 진행한 뒤 목표한 downstream task에 적용하는 방식으로 진행된다. 이번 세미나에서는 input을 이미지로 하였는데 이미지가 아닌 excel data인 경우는 어떻게 augmentation을 해서 self-supervised learning에 적용할지에 대해 생각해본다면 그것 또한 좋은 연구가 될 것 같은 생각이 들었다. 다소 낯선 주제에 대해 직관적으로 잘 설명해준 석호에게 감사한 마음을 전하고 싶다.
이번주 세미나 주네는 Self-Supervised Representation Learning로 석호형이 진행하였다. 지도학습, 비지도학습 이외의 영역 Self-supervised, semi-supervised 등이 있다는 것만 알았는데, 이번 세미나를 통해 Self-supervised의 배경과 적용분야에 대해 다양하게 들을 수 있었다. Self-supervised Learning 핵심 아이디어는 Representation Learning을 Label 없이 진행하고자 하는 것이다.Input 데이터 일부분을 이 외의 다른 부분 기반하여 예측하게 되는데, 이 과정이 잘 짜여져있다면 효과적인 Representation vector가 생성될 것이고 데이터 자체에 대한 이해도가 높아지게 되는 것이다. 높은 데이터 이해도를 이용하게 되면 성능 상승에 큰 도움 되는 것이 Self-supervised 장점이다. Self-supervised Learning에서 데이터 자체에 대한 이해도를 높이는 과정을 Pretext라 하는데, 이번 세미나를 통해 여러 가지 Pretext task 분야를 들을 수 있었다. 최근 발표된 self-supervised 중 가장 성능이 우수한 SimCLR도 인상적이였다. Input 이미지에 서로 다른 Noise를 일으킨 뒤, 두 사진 사이의 유사도를 최대화하는 방향으로 학습되며, 이 과정에서 데이터에 대한 이해도가 상승하게 된다. 간단한 아이디어지만 학습 효율성을 어떻게든 높이기 위해 창의적인 시도를 많이 하고 있다라는 것을 깨닫게 되었다. 세미나를 다 듣고 나니, 주제가 Self-supervised와 Representation Learning가 결합되어 있는지 이해하였고, 핵심적인 아이디어 위주로 바로 옆에서 설명하듯이 친근하게 설명해주신 석호형에게 감사를 표하고 싶다.
Self-Supervised Learning을 주제로 석호가 진행한 세미나를 청취했다. 세계의 많은 기업과 연구자들이 최근 집중적으로 연구를 하고 있는 테마이며 그만큼 성능적으로 많은 각광을 받고 있다. Self-Supervised Learning은 데이터의 레이블이 적은 상황에서 unlabeled data로 일단 데이터가 갖고 있는 특징을 잘 추출한 다음에, 그 네트워크를 그대로 들고 가서 원래 하고자 했던 작업에 소수의 label만 사용하여 추가 학습을 진행하여 좋은 성능을 내는 것을 목표로 한다. Unlabeled data로 하는 작업을 pretext task라고 하며 labeled data로 원래 하려는 작업을 downstream task라고 부른다. 많은 unlabeled data를 사용하여 유의미한 representation을 학습하는 것이 가장 중요하기 때문에, 많은 연구들이 집중하는 것은 '어떤 pretext task를 사용해야 하는가'에 관한 것이었다. 대부분 이미지 데이터를 갖고 연구를 많이 했기 때문에 jigsaw, colorization, count, rotation과 같은 pretext task들이 연구되었다. 최근에 구글에서 발표한 SimCLR이라는 논문에서는 contrastive learning이라는 개념과 함께 다양한 data augmentation 기법을 사용해서 기존의 self-supervised learning 방법론들의 성능을 뛰어넘기도 했다. 개인적으로 SimCLR에서 가장 중요하다고 생각되는 점은 data augmentation보다 constrastive loss를 계산하는 방법이며, loss 계산에 있어서 효율성과 강건함을 유지하는 것이 핵심이라고 생각한다. 최근 개인적으로도 이러한 개념들을 차용하여 연구를 진행하고 있는데 Self-Supervised Learning의 개념을 찬찬히 다시 볼 수 있어서 좋았던 시간이었다.
금일 세미나는 Self-Supervised Representation Learning을 주제로 석호가 진행하였다. 머신러닝/딥러닝 연구자라면 모두가 한번쯤 고통받는 '데이터가 없어' 또는 '데이터는 많은데 레이블이 없어...' 상황에서 어떻게 feature을 학습시킬 수 있을까에 대한 연구 분야인 self-supervised learning 방법론이 주된 내용이였고, 이는 self-supervised pretext task training으로 학습된 feature를 knowledge transfer하여 supervised downstream task training으로 task를 수행하는 프로세스를 갖는다. 세미나는 이 2가지 프로세스에 대한 디테일한 설명과 함께 Hinton 교수의 최신 논문인 SimCLR까지를 커버하였다. 이미지 데이터셋에 대한 연구들에 대하여 석호가 쭉 설명해주었는데, 텍스트 분야에서 pre-trained BERT를 사용하는 과정과 상당히 유사하다고 생각하였다. 텍스트나 다채널 데이터 등 다른 형태의 데이터에 적용하려면 중간중간 디테일한 방법론들을 알맞게 커스터마이징을 해야겠지만, 좋은 아이디어만 있으면 흥미롭게 연구해볼만한 분야라고 생각되었다. 개인적으로는 SimCLR을 좀 더 자세하게 설명해주었으면 하는 아쉬움은 있었다. 그래도 첫 세미나였는데 깔끔한 피피티와 함께 차분하게 잘 설명해준 석호에게 감사하다는 말을 전한다.
흔히 사람들이 딥러닝이라 부르는 방법은 대부분 지도학습이다. 지도학습의 성능은 데이터 분포의 정규성, 독립성 등등도 중요하지만 데이터가 얼마나 잘 레이블링 되있느냐에 따라 모델의 성능이 좌우된다. 아무리 좋은 아키텍처로 구성하더라도 양질의 레이블링된 데이터가 없으면 학습 할 수가 없다. 오늘 석호형의 세미나 중 가장 와닿았던 말,"데이터에 레이블링을 하는 속도는 데이터가 증가하는 속도를 따라 갈 수 없다. 또한 레이블 또한 사람의 편견이나 제한이 들어있다면, 차라리 사람이 붙여준 레이블이 아니라 데이터 그 자체를 이해하고자 하면 어떨끼"는 이번 세미나의 주제인 self-supervised learning의 중요성과 의의를 나타내주었다.
다 이해할 수는 없었지만 pretext task method 중, rotation, jigsaw puzzle, count 방법들이 상당히 재미있어서 기억에 남았다. downstream task의 SimCLR 같은 경우는 잘 와닿지 않았지만, 내가 미처 알지 못했던 분야에 대해 '이런 것도 있구나' 정도만 잡는 것도 세미나의 장점이라고 생각한다. 보고 들은 만큼, 문제 상황에서 찾아보거나 고려해볼만한 선택지가 늘어나기 때문이다.
세미나를 준비한 석호형에게 감사하다는 말씀을 드리며, 오늘 특히 세미나를 시작할 때 도움을 준 타 연구원들에게 감사 인사를 전하는 모습이 매우 인상적이고 멋있었다.
이번 세미나는 “Self-Supervised Representation Learning”을 주제로 진행되었다. Self-Supervised라는 개념을 이번 세미나를 통하여 처음 듣게 되어 더욱 흥미롭게 다가왔다. Label이 없는 데이터를 갖고도 해당 데이터의 feature를 추출하는 방법인 Self-supervised Learning은 이미 갖고 있는 데이터의 다른 부분으로 supervision 역할을 함께 수행하는 과정이다. Supervised Learning을 진행하기에 앞서 Unlabeled Data로 Pretext task를 진행하게 되며, 여기서 나온 결과값을 transfer시키는 방식으로 Downstream Task를 진행하게 된다. 이때 활용되는 Pretext task의 여러 방법론들부터 최근 발표된 논문인 SimCLR까지 다양한 방법론들에 대하여 차근차근 설명해주셔서 처음 접하는 내용임에도 불구하고 잘 따라갈 수 있었다. 이 중에서도 특히 Count 방법론을 사용할 때 주어지는 이미지가 아닌 아예 다른 이미지를 추가하여 trivial solution을 방지하는 기법이 특히 인상적이었다. 이번 세미나를 통하여 앞으로도 Self-Supervised Learning에 대하여 큰 관심을 갖고 공부해보고 싶다는 생각이 들었으며, 해당 방법론들의 아이디어를 다양한 분야에서도 활용해보고 싶다.
이번주 세미나는 석호가 'Self-Supervised Representation Learning’이라는 주제로 진행해주었다. 같이 Open Set 스터디를 하면서도 느꼈지만 역시나 이번 세미나 준비과정을 보면서도 빠르게 핵심을 잘 짚는다고 생각을 했다. Self-Supervision의 정의에 대한 설명을 시작으로 pretext task와 downstream task로 나뉘는 큰 프레임워크를 introduction에 소개해주어서 뒤에 상세한 설명에 대한 이해에 매우 큰 도움이 되었다. 이후 비전 쪽에서 발전된 pretext tasks를 다양하게 들을 수 있었고 이런 아이디어를 내가 주로 연구하는 시그널 데이터에 어떻게 활용 가능할지 고민하게 했다. 이전에 윤상 오빠의 세미나에서 교수님께서 좋은 세미나는 들으면서 충분한 이해가 되고 이를 어떻게 활용할지 사람들이 생각할 수 있게 된다고 하셨었는대 이번 세미나도 그런 세미나였던 것 같다. 또한 contrastive loss를 활용할 수 있는 상황에 대해서도 고민하게 되었고 이를 프로젝트나 연구에도 활용하여 쓸 수 있을까 생각하게 했다. 지윤이 멘티답게(?) 발표 장표도 너무 깔끔해서 다음에 나도 저렇게 만들기위해 노력해야겠다고 생각했다.
금일 세미나는 "Self-Supervised Representation Learning" 이라는 주제로 진행하였다. 기존의 딥러닝/머신러닝을 잘 학습하기 위해서는 양질의 데이터가 필요하지만 실제로는 양질의 데이터를 만들기 위해서는 많은 노력과 비용이 필요하다. 이런 양질의 데이터를 만들기 위한 노력과 비용을 줄이기 위해 여러 방법들을 이용하는데(Transfer Learning, Domain Adaptation, Semi-Supervised learning, Weakly-supervised learning, Self-supervised learning) 중에서 Unsupervised Learning 의 한 부분에 속한 self-supervised learning에 대해서 자세히 설명을 해 주었다. self-supervised learning이란 기존 Input 을 통해 Output을 알아내는것과 달리 "Input을 통해 또다른 부분의 Input을 예측 하는것"이다 라고 한다. self-supervised learning을 하기 위해 가장 중요한 부분은 "pretext task"로써 Unlabeled data로 하는 작업이다. 그리고 기존처럼 labeled data로 원래 하려는 작업을 "downstream task"라고 한다. Pretext task 를 어떻게 사용해야 하는가가 가장 중요하기 때문에 jigsaw, colorization, count, rotation 과 같은 data augmentation 기법을 사용하였다. 가장 최근 구글에서 발표한 SimCLR이라는 최신 기법은 contrastive learning 이라는 개념과 함께 여러 augmentation방법(Random cropping and resize to original, Random color distortion, Random Gaussian blur)을 통해 좋은 성능을 보여주었다. 특히 constrastive loss 계산에서 같은 Image에서 나온 zi,zj의 유사도는 클수록 좋고 다른 이미지에서 나온 zi,zk의 유사도는 작을수록 좋게 계산되어 잘 구분되도록 하는 계산법이 중요하다고 하였다. 마지막 결론에서 "상황에 따라 input data로 input data를 잘 설명하게 된다면 그것이 가장 합리적인 방법"이라는 생각이 정말 엄청나게 많은 label 이 없는 데이터가 생성되는 현대에서 가장 옳은 방법일 수 도 있다는 생각이 들었다. self-supervised learning이라는 분야를 금일 처음 듣게 되었는데 참 재미있는 내용이었다.
이번 세미나의 주제는 Self-Supervised Representation Learning이었다. Supervised Learning은 정답이 주어진 데이터를 가지고 모델을 학습하는 방법이라고 할 때 Self-Supervised는 별도의 정답이 주어지지 않은 상황에서 가지고 있는 데이터의 일부분이 다른 부분을 예측하도록 학습(자기학습)하는 방법이다. 따라서 관련 모델을 학습하기 위해서는 먼저 궁극적인 문제(downstream task)를 풀기 전에 사용가가 정의한 문제(pretext task)를 잘 풀도록 학습을 시킨다. 여기서 downstream task는 수능이고 pretext task는 모의고사 개념으로 이해하였다. 모의고사를 잘 풀도록 학습을 하면 결국 수능도 잘 풀게 되는 것처럼 잘 짜여진 pretask가 있다면 downstream task에서 입력값을 효과적으로 representation한다는 것이다. Pretext task에는 여러 종류가 있다. Exemplar, Context Predicition, Jigsaw Puzzle 등... 종류는 다양하지만, 이미지 데이터를 예시로 들었을 때, 원본 이미지에 변형을 가한 뒤 일부 이미지를 통해서 잘린 부분의 위치 또는 순서를 맞추거나 특징 값을 추론하는 학습을 한다. 이 Pretext task로 네트워크의 학습이 얼마나 잘 이루어졌는가에 대한 평가는 ImageNet과 같이 정답이이 있는 데이터셋을 가지고 진행한다. 이때 Downstream task는 ImageNet의 레이블을 얼마나 잘 분류하는가로 볼 수 있다. 지금까지 발표된 Self-Supervised Learning 중 가장 성능이 좋은 학습 방법은 SimCLR이다. 이 방법은 constrastive learning을 하는데 이는 입력한 이미지에 crop이나 resize 등의 왜곡을 가한 두 이미지를 만든 뒤 네트워크를 통과 한 두 값으로 constrastive loss를 구하는 것으로 만일 왜곡된 이미지가 같은 이미지에서 나왔다면 서로의 유사도가 높을수록 좋고 다른 이미지에서 나왔다면 유사도가 작을수록 좋다고 한다. 저번에는 Bayesian 관련한 딥러닝을 알게 되었고 이번에는 self-supervised 분야에 대해서 새로 알게 되었다. 매주 새로운 분야를 접하게 되면서 데이터 분석의 분야가 정말 넓다는 것을 새삼 다시 느끼게 되었다. 생소한 분야였지만 쉽게 이해할 수 있도록 발표를 준비해준 석호에게 감사의 말을 전한다.
Self-supervised learning은 feature representation learning을 잘 수행하기 위해 고안된 방법론이다. 이름이 self-supervised learning이기 때문에 supervised learning과 어떤 관계가 있는지 궁금해하는 경우가 많다. Supervised learning은 input-output pair로 구성된 데이터를 통해 학습을 진행하며, input과 output 모두 주어지는 반면, self-supervised learning의 학습을 위해서는 일반적으로 supervised learning의 input에 해당하는 데이터만 사용한다. 대신 self-supervised learning에서는 output (label)에 해당하는 부분을 특정한 logic을 통해서 정의하고, input-output pair를 만들어서 supervised learning을 수행한다. 이를 pretext task라고 부르는데, pretext task는 일반적으로 우리가 관심있어 하는 supervised learning task (예를 들면, image classification)와는 크게 관련이 없다. 대신, self-supervised learning은 pretext task를 통해 데이터를 잘 표현할 수 있는 feature representation을 학습하는 데 목적을 두고 있다. Self-supervised learning이 매력적인 이유는 여러가지가 있겠지만, label이 없는 다량의 데이터를 이용해서 학습 할 수 있으며, 우리가 원래 풀고싶었던 downstream task (supervised learning task)의 성능을 높이는 데 이용할 수 있다는 점인 것 같다. 다양한 도메인에서 모델의 input으로 사용할 수 있는 데이터는 얻기 쉬우나, label을 얻기가 어려운 상황이 많은데, self-supervised learning은 그런 상황에 시도해 볼 수 있는 접근 방식 중 하나이기 때문에 알아두면 좋을 것 같다.
금일은 Self-Supervised Representation Learning을 주제로 세미나가 진행되었다. 개인적으로 요즘 세미나를 통해 다양한 영역에 대해 공부할 수 있어 좋다고 생각하고 있다. Self-Supervised Representation Learning은 데이터 내에 Label(=Y) 값이 존재하지 않을 때 사용하는 방법이다. Label이 없는 데이터에 대해서 Input 데이터의 특징을 잘 추출할 수 있는 네트워크를 구축하고 이를 사전 학습된 모델로 활용한 Transfer Learning 학습 방식으로 실제 풀어야하는 문제를 풀게 된다. 이미지 분석에서는 특정 부분을 잘라내어 그 영역과 이미지내 다른 영역 사이의 관계를 찾는 방식을 활용하기도 하고, 잘려진 이미지들 간의 순열을 찾는 방식을 활용하기도 하며, 중간에 잘려진 이미지와의 관계를 나타내는 방식을 활용하기도 한다. 본 세미나에서는 Self-Supervised Representation Learning과 관련된 다양한 방법론이 소개 되고 마지막으로 최근에 성능이 좋다고 알려진 SimCLR에 대한 설명이 진행됐다. SimCLR에서는 이미지에 대해서 사이즈를 바꾸거나 색을 바꾸거나 Noise를 섞는 방법 등을 활용해서 Data augmentation을 진행한다. 그리고 같은 이미지내에서 나온 데이터는 유사하게, 다른 이미지에서 나온 데이터는 완전히 다르게 판단할 수 있도록 학습이 진행된다. 결과적으로 데이터 내에 Label이 존재하지 않음에도 데이터의 특징을 잘 판단할 수 있는 네트워크를 구축하게 된다. 이번 세미나를 들으며 ‘우리가 흔히 접하는 정형 데이터에 이러한 방법론을 적용할 수 있는 방법은 무엇일까?’라는 궁금증을 갖게 되었다. 아직 정확한 답을 찾진 못했지만 지속해서 고민해볼 만한 영역이라고 생각된다. ‘이미지 분석과는 다른 Data augmentation 방법을 잘 찾는 것이 핵심이지 않을까?’ 라고 조심스럽게 생각해본다. 좋은 세미나를 준비해준 석호에게 고맙다고 말을 전하고 싶다.
금일 세미나는 "Self-Supervised Representation Learning" 이라는 주제로 문석호 연구원님이 진행해 주셨다. 딥러닝은 크게 Label이 있는 데이터를 학습하여 학습하지 않은 데이터의 Label을 맞추는 Supervised learning, 그리고 Label이 없는 데이터의 특징을 추출하여 분석 및 군집화하는 Unsupervised learning 두가지로 나뉘며, 이 두가지 기법 중 Supervised learning의 활용도가 압도적으로 높다. 하지만 앞서 언급한 바와 같이 Supervised learning을 수행하기 위해서는 양질의 Label이 필요하고 양질의 Label을 얻기 위해서는 많은 비용과 노력이 필요하다. Self-Supervised Representation Learning은 이러한 Supervised learning의 한계점을 개선하기 위해 고안된 모델이다. Self-Supervised Representation Learning은 가지고 있는 데이터를 완벽히 이해하여 스스로 Label을 만드는 것을 목표로 한다. 가지고 있는 데이터를 목적에 맞게 이해하도록 pretext task를 만들어 학습하고 이를 최종적으로 만들고자 하는 downstream task로 transfer learning 하는 방법을 통해 목적에 맞는 Label을 생성하는 방식을 취하는 모델이다. 세미나를 듣는 내내 “이게 도대체 가능한 일인가?”를 지속적으로 의심할 정도로 너무나 신기하면서도 인공지능의 놀라운 성과에 무서움이 드는 세미나였다. 하지만 조금만 더 생각해 보니 스스로 특징을 찾고 학습하는 딥러닝이라면 충분히 가능하겠구나 라는 생각과 함께 이런 놀라운 아이디어를 낸 세계적인 석학들의 위대함에 고개가 숙여졌다. 새로운 분야라 많이 어려웠을 텐데 자세하게 설명해준 문석호 연구원님께 감사하다는 말을 전하고 싶다.
이번주 세미나는 ‘Self-Supervised Representation Learning’을 주제로 석호오빠가 진행하셨다. 딥러닝 및 머신러닝의 지도학습 모델을 잘 학습시키기 위해서는 input과 제대로 labeling된 output 데이터가 필요하다. 하지만 현실에서 input, output이 잘 매칭되어 있는 데이터를 찾기가 쉽지 않다. 오늘 소개된 Self-supervised learning은 이러한 문제를 해결하기 위한 한 가지 방법론에 해당된다. Label이 없는 Input 데이터를 받아 사용자가 정의한 문제(pretext task)를 학습하여 데이터 자체의 이해도를 높이고, pretext를 학습한 network(예를 들어, weight값)를 분류 문제와 같은 downstream task에 전이하여 지도학습을 진행한다. 우선, pretext task 어떻게 정의하고 잘 학습할지에 대한 다양한 방법들(jigsaw, colorization, count, rotation)이 소개되었다. 이번 세미나의 메인 논문인 SimCLR은 Contrastive 프레임워크를 적용하여 우수한 성능을 보여준다. Contrastive loss를 사용하여 같은 이미지는 유사도가 크게, 다른 이미지는 유사도 작도록 학습한다. 세미나를 통해 self-supervised learning에 대해 처음 접하게 되어 흥미롭게 들었다. 이미지 이외에도 label 없는 다른 형태의 데이터에 어떻게 적용할 수 있는지 고민하고 적용해보고 싶다. 생소한 개념도 차근차근 풀어서 이해하기 쉽도록 설명해주신 석호오빠 감사를 표하고 싶다.
오늘 세미나는 Self-Supervised Representation Learning을 주제로 석호가 진행했다. 먼저 Self-Supervised Learning은 말그대로 스스로 "지도"학습하는 방법을 말한다. Label이 주어지지 않은 상태에서 데이터 특성을 파악하는 목적으로 학습하는 방법은 Unsupervised learning 방법론으로 군집분석, 연관분석 등이 있는 반면, Self-supervised는 스스로 "정답"을 정의하여 지도학습의 성능을 이끌어 내고자 하는 점이 특징이다. 즉, Input 데이터 만을 활용하여 데이터가 가지고 특정 로직으로 정답을 정의하고, 데이터 특징을 추출하고자 하는 방법론을 말한다. 다방면으로 현실 문제에 활용 가능할 것으로 본다. 세미나를 진행하며 이야기 된 가상계측 문제와 같이 정답이 부여된 케이스가 극히 적을 때 예측모델이 좀더 올바른 방향으로 학습이 이루어지도록 할 수 있는 접근으로 활용가능하다고 본다. 인공지능이라는 단어가 현실과의 괴리가 적게 끔 하기 위해서 스스로 학습할 수 있는 방법이 고완되어야 할 것이라는 생각을 어렴풋이 한 적이 있다. 정답을 사람이 부여하고 데이터를 통해 관계를 파악할 수 있는 방법은 매우 많지만 좀 더 유연한(사람의 손을 최대한 적게 타는) 인공지능 모델을 만들기 위해서 앞으로 연구 분야가 무궁무진 할 것으로 생각한다.
많이들 알다시피 딥러닝 기술의 발전은 다량의 사진과 각 사진에 대한 정확한 레이블이 부여된 ImageNet 데이터에서부터 시작되었다. 사진을 입력하면 사람이 부여한 레이블을 예측하도록 지도를 해준다고 하여 지도학습이라는 이름이 붙는다. 많은 사람들은 이를 보고 인간의 불필요한 수고가 들어가는 많은 일들을 자동화할 수 있다고 생각하였고 여러 분야에 딥러닝을 적용하기 시작하였다. 하지만 현실의 문제는 ImageNet 데이터처럼 단순하지도 깨끗하지도 않았다. 연구실 생활을 하면서 제조, 의료, 영상분석, 자연어처리 등 다양한 도메인의 데이터를 접할 기회가 있었다. 도메인을 막론하고 분석을 수행하는 과정에서 아쉬웠던 점을 한 가지 꼽으라면 주저하지 않고 '정확한 클래스 레이블의 부족'이라고 말할 수 있다. '정확한 클래스 레이블이 조금만 더 있다면 더 좋은 결과를 낼 수 있을텐데...'라는 아쉬움으로 프로젝트를 마무리했던 경우가 많다.
Self-Supervised Learning(SSL)은 클래스 레이블의 양과 품질에 좌지우지되던 딥러닝 기술을 한 단계 업그레이드시켜 줄 중요한 연구흐름이라고 생각한다. 용어 자체는 조금 낯설 수 있으나 알게 모르게 우리가 공부하던 많은 방법론들이 여기에 포함되어 있다. 오늘 세미나는 컴퓨터 비젼에 국한한 내용이였지만, 작년 한해동안 자연어처리에서 큰 활약을 한 BERT 그리고 몇 해를 거슬러 올라가면 가장 기본적인 Wor2Vec(GloVe)도 SSL의 가장 기본적인 형태다. 골자는 클래스 레이블이 없는 상황에서 인풋 자체로부터 클래스 레이블로 활용할 수 있는 차선책을 임의로 만들어내어 학습하자는 것이다. 표현학습(Representation Learning)의 관점에서 봤을 때 SSL로 데이터로부터 좋은 특징들을 추출한 이후에 분류, 회귀 등의 문제에서 소량의 레이블로도 좋은 성능을 뽑아낼 수 있다.
사실 이 주제는 개인적으로도 많은 흥미를 느끼고 연구를 진행하고 있다. 연구실 차원에서 SSL이라는 연구 흐름에 대해 소개하고 싶었는데 오늘 석호가 너무 매끄럽고 좋은 세미나를 해주어 따로 그럴 필요가 없어졌다. 교수님께서 제언하셨듯이 컴퓨터 비젼에서 큰 발전을 이루고 있는 SSL을 우리 연구실에서 다루는 데이터에 적용할 수 있는지 치열하게 고민해보면 좋은 연구를 많이 할 수 있을 것 같다.
금일 세미나는 "Self-Supervised Representation Learning"이라는 주제 석호가 진행하였다. 해당 연구 분야는 소수의 레이블 데이터 와 다수의 언레이블 데이터가 존재하는 상황에서 시작한다. 다수의 언레이블 데이터에 대해 Pretext task라는 것을 부여하여 Backbone 네트워크를 학습한다. 사전학습된 Backbone 네트워크와 하고자하는 실제 task에 대한 네트워크를 합쳐서 최종 네트워크 모형을 만드는 방법을 의미하는것이 Self-supervised learning이었다. 석호가 Pretext task 진행 방법을 여러 예시와 논문을 이용해 친절히 설명해주었다.
해당 연구분야는 본인의 연구분야 중 하나인 픽셀 단위 이상치 탐지 기법에도 적용가능할 것으로 생각했다. 픽셀 단위 이상치 탐지를 하기위해 합성곱 오토인코더 계열의 모형이 필요했는데 해당 모형을 Self-supervised learning 기법 중 하나인 Context Autoencoder를 사용해보면 어떨까라는 생각을 했다. 빈칸을 잘 예측하는 오토인코더라면 이상 픽셀과 정상 픽셀의 차이를 극명히 보여줄 수 있을것이라 생각하였기 때문이다. 이를 본인의 연구에도 꼭 적용해보아야 겠다. 첫 세미나라 많은 긴장을 했을 석호에게 감사하다는 말을 전하고 싶다.
레이블이 되어있지 않은 대량의 이미지 데이터로부터 Feature Representation을 학습한 후 Downstream Task를 수행하게 하는 Self-Supervised Learning에 대한 세미나였다. 본 세미나에서 소개된 연구들은 모두 이미지를 다룬 것들이었지만 모델의 전체적인 방식이 Pre-Train 을 사용하는 NLP 모델들과 유사하다고 느꼈다. 레이블이 없는 대량의 이미지 데이터를 의도적으로 훼손시킨 후 그것을 복구해내는 과정에서 모델은 이미지에 담겨진 Feature를 학습하게 되었다. 사전훈련 방식을 어떻게 정의하느냐에 따라 학습하는 Feature Representation이 달라지기 때문에 그것을 잘 구상하는 것이 이러한 방법론에서 가장 중요한 부분이라는 생각이 들었다. 이미지에 관련된 연구를 다룬 세미나였지만 Self-Supervised Learning의 메인 아이디어는 도메인에 상관없이 최신 AI 연구들에서 가장 주목하고 있는 부분이 아닌가싶었다.
이번주 세미나는 석호가 Self Supervised Learning이라는 주제를 다루었다. 사실 이쪽 분야는 전혀 문외한이었는데 쉬운 설명으로 많은 아이디어의 시발점이 된 것 같다. 특히 컴퓨터 공학이 전공인 나로써는 라벨을 붙여주기 위해서 pretext task를 다양하게 만들어 볼 수 있을것 같고 실험을 하고 싶은 동기부여가 되었다. 그리고 관련 연구를 찾아봐야겠지만 블루오션이라 수많은 pretext task 아이디어가 있을 것만 같고 도메인마다 또 그 특성이 반영되어야 하는 제약이 있어 더 다양한 케이스가 있을 수 도 있을 것 같았다. 이미지 데이터가지고 예를 들었지만 사실 많은 데이터를 가지고 해볼 수 있을 것 같고 이 또한 인간의 반복적인 업무를 줄이는데 작은 노력으로 큰 결과를 볼 수 있는 분야라는 생각이 들었습니다. 그리고 강화학습으로 연관지어 보면 Model Based Learning과도 결합이 되어 환경에 대해서 준지도학습 방법으로 학습할 수 있는 연구가 있을거라 생각이 들어 나의 Todo List에 올려놔야겠다 생각했습니다.
오늘은 석호오빠가 ‘Self-Supervised Representation Learning’이라는 주제로 진행하였다. 기존에 크게 supervised와 unsupervised로 구분되었던 learning방식에서 더 나아가 label이 존재하지 않을 때, 특정 label을 annotation하는 과정 자체를 탈피해 자기 자신에 대해 이해를 하고자 하는 self-supervised에 대해 살펴볼 수 있었다. Self-supervised learning연구의 흐름은 어떠한 특징을 이해시킬 것인지에 대한 학습방식인 pretext task를 정의하는 방식에 따라 진행된다. 오늘 세미나에서는 여러 종류의 pretext task를 살펴볼 수 있었는데, 궁극적으로 특징을 잘 학습하기 위해 데이터와 임의의 label을 어떻게 가공하는지에 따라 학습된 특징이 다르다. 오늘 세미나를 깔끔하게 진행해준 덕분에 여러 적용방안에 대해 생각해보고, 세미나 마무리되는 과정에서 몇몇 연구원들의 적용될 상황에 대해 논의한 과정이 있었는데 이점이 인상깊었다. Image net과 같은 이미지 데이터는 전문가가 아니더라도 특징들을 파악하기 굉장히 직관적이며, 전처리와 같은 데이터 처리방식이 간결한 편이다. 이러한 이미지 데이터가 가진 장점으로 인해 self-supervised learning에서 적용하고자 하는 시도가 많다고 생각한다. 반면, 시그널 데이터와 공정 데이터 같은 경우에는 데이터 자체에 대한 이해가 어렵기 때문에 이러한 시도가 없었던 것 같다. 나도 오늘 기회로 센서 데이터에 대한 이해를 위해 pretext task를 어떻게 정의하면 좋을지에 대해 잠시 고민해볼 수 있는 좋은 기회였다. 끝으로 간결하고 깔끔하게 세미나를 진행해준 석호오빠에게 감사함을 표하며 세미나 후기를 마친다.
이번 세미나는 Self-Supervised Representation Learning이라는 주제로 진행되었다. Self-Supervised는 unsupervised 안에서 여러 방법들과 구분하기 위해 붙여진 이름이다. 이는 기본적으로 레이블이 없는 데이터를 가지고 데이터를 잘 이해하기 위해서 사용된다. 같은 사진을 회전한 데이터, 위치별로 섞은 후 원래대로 맞추는 데이터 등 여러 방법들이 있으며 이러한 방법들을 통해 결국에는 데이터를 더 잘 이해할 수 있게 된다. 이러한 task를 pretext task라 하며, 나중에 실제 문제에 적용하여 classification이나 regression 등을 하는 task를 downstream task라고 한다. 기본적으로 이러한 아이디어는 knowledge transfer를 이용한다는 개념이다. 이러한 방법은 사실 사람들이 이미 갖고 있는 meta 지식을 이용하는 관점에서도 유용하다고 볼 수 있다. 예를 들어 사람은 처음 보는 동물을 보더라도 눈코입, 위 아래 등 기초적인 지식을 활용하여 이해한다. Representation Learning은 이러한 지식을 딥러닝 모델에 적용한다고 볼 수 있다. 이 분야에서는 연구자의 여러 아이디어로 다양한 시도를 할 수 있기 때문에 재미있고 유용하게 사용될 수 있을 것 같다.
1. 최근 활발한 연구가 진행되고 있는 Self-Supervised Learning
2. 발표 앞 부분에 간단히 소개는 했지만, 왜 Self-Supervised Learning 아이디어가 나오게 되었는지에 대한 배경 설명이 추가 되었으면 좋았음
3. Pretext 단계가 핵심이긴 하지만 전체적인 Self-supervised learning 프레임워크에 대한 설명이 부족
4. 컴퓨터 공학에서 연구되는 오픈 이미지 외 현실 문제에 어떻게 적용할 지 생각해 볼 필요가 있음
5. 깔끔한 슬라이드 구성과 적절한 발표 시간은 매우 좋았음