- 2020년 11월 20일 오전 11:16
- 조회수: 10978
INFORMATION
- 2020년 11월 20일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
청취자 후기
금일 세미나 주제는 'Self-Supervised Learning (algorithm & application) '으로 self-supervised 최신 알고리즘 논문 소개와 application 사례를 흥미롭게 소개해주었다. 여기서 self-supervised learning이란, 데이터 레이블이 존재하지 않은 상황에서 데이터 자체에 대한 이해도를 높이기 위해 제안한 학습 방법론들을 의미한다. 존재하지 않은 레이블을 대체하기 위하여 사용한 레이블은 입력 데이터의 일부분이기 때문에, 'self-supervised'라는 어원이 붙게 되었다. 세미나를 통해 self-supervised 알고리즘 개요를 'Pretext task', 'Contrastive learning'으로 두가지로 나누어 이해할 수 있었고, 두번째 개요인 Contrastive learning에 대해 집중적으로 소개한 세미나였다. 우리 연구실에서 발표되었던 논문도 같이 소개해주었는데 반도체 분야에 self-supervised 학습 방법을 적용한 논문으로 연구실 뽕이 차오르는 순간이였다. 석호형이 진행해주는 세미나는 항상 동네 친근한 형이 알려주는 바이브라 듣는 내내 기분이 좋았으며, 세미나 중간 중간 형의 생각도 같이 이야기 해주며 나 역시 자기지도 학습에 흥미가 차오르는 기분이였다. 금일 소개된 논문은 다운로드 하며, 꼼꼼하게 읽어보는 시간을 갖고자 한다. 재밌고 흥미를 심어주는 세미나 준비해준 석호형에게 감사의 말씀을 전하며 세미나 후기를 마치도록 한다.
통상 딥러닝 계열 모델은 학습 파라미터 수가 많아 대량의 레이블링된 데이터를 요구하나, 비용과 시간 제약으로 실제 상황에서는 이를 충족시키기 어려운 경우가 허다하다. 이에 대한 여러 돌파법이 최근 여럿 제시되었으나, 금일은 입력데이터의 subset을 다른 부분에 대한 분포를 추정하자는 self-supervised learning, 그 중 contrastive learning을 사용한 논문(NPID, MoCo, PIRL) 위주로 소개되었다. Self-supervised learning의 초기(2014~2018)에는 설계자가 정의한 pretext task로 학습된 모델을 downstream task에 transfer learning 하는 방법으로 진행되는데, 이때 각 pretask를 위해 augment되는 데이터마다 학습이 진행되어 데이터셋이 커질수록 연산량이 급속도로 증가하여 성능 향상이 어려운 한계점이 있었다. 따라서, 이러한 단점을 극복하기 위해 나온 것이 Contrastive Learning이다. Contrastive Learning에서는 학습을 비슷한 인스턴스 간 similarity(s)는 서로 다른 클래스인 것들 간은 멀게 하는 일종의 matching problem으로 접근한다. 이때 쓰이는 objective funciton은 서로 대조(contrast)한다는 의미에서 contrastive loss(normalized cross-entropy loss)라고 하며, 식의 모양을 보면 하나의 positive sample(x+)에 이와 다른 클래스 인스턴스(negative sample:x-)에 대해 정규화한 모양새를 지닌다. 따라서, contrastive loss를 줄이는 것은 사실상 인스턴스 x와 x+의 임베딩 f(x), f(x+) 간의 상호정보량의 lower bound를 최대화한다고 볼 수 있다. 여기서 볼 수 있는 pretext task 접근법과 차이점은 한 번에 여러 데이터(;negative sample이 여러 개)를 처리한다는 한다는 점인데, 이때 학습의 inconsistency 문제가 발생한다고 하여 여러개의 negative sample을 학습하는 부분에 대해 NPID는 memory bank, 그리고 MoCo는 momentum encoder로 해당 문제를 완화시켰다고 한다. 나아가, 금일 발표된 세 가지 이론 논문 모두 contrastive loss 아이디어를 쓰나 근사시키는 방법이 전체 구조에 따라서 살짝씩 다른 부분이 눈여겨 볼 만했다. 최근 많이 떠오르고 있는 분야인만큼 follow-up 하고 싶은 부분이 있었는데 큰 아이디어에 대해 개괄적으로 소개해준 석호에게 감사하다고 전한다.
이번 세미나 주제는 Self-Supervised Learning의 Algorithm과 Application에 대한 내용이었는데, 요즘 많이 연구되는 분야인 것 같아 흥미가 있었다. 딥러닝을 위해 많은 데이터가 필요하지만, 정작 실제 현장에서는 정말 잘 Labeling된 데이터를 확보하는 것이 쉽지 않은 문제이고, Labeling을 위해 많은 시간과 비용이 들어가는게 현실이다. 이러한 문제를 극복하기 위한 방법으로 Transfer Learning, Semi-Supervised Learning, Self-Supervised Learning 등이 있으며, 최근 이러한 분야의 방법론들이 활발히 연구되고 있는 것은, 확실히 현실문제를 극복하기 위한 좋은 방향인 것 같다. 이번 세미나에서는 이 중 Self-Supervised Learning에 대한 내용이었다. 이 분야에서 그동안 연구된 방법들에 대해서도 간략히 소개해주어서 좋았다. 초기 연구들은 Pretext Task로 Pre-training된 Network를 궁극적으로 사용자가 풀고자 하는 문제에 Transfer Learning하는 방법이었다. 이후 Contrastive Learning 방법론들이 연구되고 있는데, 이에 대한 논문으로 NPID, MoCo, PIRL 세가지를 소개해주었다. NPID 저자의 Motivation 부분이 흥미로웠는데, 지도학습 기반의 이미지 분류 모델에서 입력 이미지에 대한 예측확률값이 정답과 유사한 클래스에서도 높게 나오는 것을 보고 동기를 얻었다고 한다. 즉, 모델이 따로 Labeling 기반의 지도학습을 하지 않아도, 비지도학습으로 잘 추출된 특징값은 데이터간의 유사도 정보를 가지고 있을 것이라고 생각했다고 한다. Application에 대한 논문으로 같은 연구실 강현구 연구원의 논문이 소개되었는데, 반도체 분야에 최초로 Self-Supervised Learning을 적용한 논문이다. 앞에서 소개한 알고리즘 중 PIRL을 적용한 방법으로 WBM의 불량 탐지를 위해 모델을 구축하여 기존 모델보다 우수한 성능을 보인 내용이었다. 간략하게 소개되었는데, 나중에 꼭 자세히 읽어보고 싶고, 앞서 소개해준 Algorithm에 대한 논문들도 추후 자세히 읽고 공부를 더 해야겠다는 생각을 했다. 이번 세미나에 소개된 Self-Supervised Learning은 마지막 결론에 나온 말처럼, 다양한 산업에 적용해볼만한 가능성이 많다고 생각하며 적용해볼 수 있는 주제에 대해 고민을 해보면 좋겠다. 좋은 주제와 논문으로 세미나를 진행해준 문석호 연구원에게 감사하다는 말을 전한다.
이번주 세미나는 'Self-Supervised Learning (Algorithm & application) '으로 세미나가 진행되었다. 딥러닝 계열은 모델 특성상 많은 양의 라벨링 작업이 된 데이터가 필요하다. 라벨링에는 많은 비용과 노력이 들어가기에 이런 버든을 줄이기 위해서 여러 도전하는 방법들이 있고 그 중 Self-Supervised learning 중 Unsupervised learning방법론을 세미나 해주었다. self-supervision이란 이미지의 특징을 추출하는 모델이 있다고 할때 인풋 데이터의 한 부분이 다른 부분의 supervision역활을 하게 하는 것이 self-supervision이다. 3개의 연구주제를 설명해 주었는데 첫번째로 Pretext task를 잘 정의해서 주어진 입력 이미지들에 대한 정보를 잘 추출하는 방식이다. 단점은 이미지마다 학습이 진행되어 데이터셋이 커질수록 연산량이 급속도로 증가하여 성능 향상이 어렵다. 또다른 연구주제는 Contrastive learning을 활용하여 주어진 입력 이미지들에 대한 정보를 추출하는 방식이다. 즉 지도학습 기반의 이미지 분류결과 비슷한 이미지일때 확률값이 높아지는것에 착안하여 모델이 따로 instance간의 구분(유사성)을 학습하지 않아도 잘 추출된 특징값은 instance간의 유사도 정보를 가지고 있을것이라고 생각하여 이 유사도를 contrastive learning 방식으로 학습하여 모든 입력 이미지를 128차원의 특징벡터로 변환하고 이특징 벡터 스페이스는 모든 이미지가 들어오므로 기존의 이미지가 많아지면서 생기는 연산 문제 또한 해결하였다. 계산량이 많아지는 것을 방지하기 위해 NCE(Noise-Contrastive Estimation)방법을 이용하여 분류문제에서 class가 너무 많아질 경우 data sample과 noise sample을 구분하는 이진문제로 변화해서 복잡성을 줄여주었다. 비슷한 연구 계열인 'Moco(Momentum Contrast for Unsupervised Visual Representation Learning)'은 큰 dictionary를 통해 많은 negative sample의 수를 확보하여 성능향상을 꾀했다. negative sample이 증가할수록 성능이 향상됨을 확인 할수 있었다. 'PIRL(Self-Supervised Learning of Pretext-Invariant Representations)'은 어떤 pretext task를 선정하는지에 상관없이 같은 이미지면 transformation후에도 visual semantic을 변화시키니 않는다는 아이디어에서 출발하였다. Cosine similarity s를 사용하고 NCE를 적용하여 최종적으로 기존의 다른 방법론들보다 우수한 성능을 보여주었다. 이러한 연구들을 실제 application에서 적용된 여려 논문을 설명해 주었다. 컴퓨터 비젼쪽에서 시작한 연구지만 실제 산업 도메인에 적용이 충분한 분야로 특히 시그널 쪽 데이터에서 augmentation기법을 잘 개선하여 적용하면 좋은 결과를 볼수 있을것 같다는 석호의 마지막 의견에 동의한다. 좋은 세미나를 진행해준 석호에게 감사의 말을 전한다.
이번주는 문석호 연구원이 Self-supervised learning(자기지도학습) 분야의 최신 연구들과 다양한 산업 도메인에 적용된 사례들을 소개해줬다. 자기지도학습은 우리가 현실적인 한계로 인해 라벨이 갖춰진 대규모 데이터셋을 만들기 쉽지 않다는 문제의식에서 출발한 연구분야다. 즉, 데이터가 라벨링 되지 않았다 하더라도 데이터의 특징을 자체적으로 판별해낼 수 있는 알고리즘을 설계함으로써 분류, 예측 등 과제를 수행하는 것이 자기지도학습의 목표이다. 이를 수행하기 위한 방식은 크게 pretext task, contrastive learning 등으로 나눌 수 있는데 이번 세미나에선 contrastive learning 기반 논문들이 주로 소개됐다.
contrastive learning은 입력 객체와 동일한 부류의 객체들이 서로 비슷하게 represent되도록 인코딩 하는 기법이다. 이중 NPID(Non-parametric instance Discrimination) 논문은 CNN을 통해 추출한 특징벡터를 한 특징벡터 공간(메모리 뱅크)에 모두 모이게 해 pretext task에 비해 연산시간을 크게 단축시켰다. 또한 클래스에 의존하는 일반적인 파라미터 대신 특징벡터 간 비교를 가능하게하는 Non-parametric classifier와, 노이즈 샘플을 골라내주는 Noise-contrastive estimation 등 장치를 특징적으로 사용했다.
contrastive learning 기반의 MoCo(Momentum Contrast)도 많이 거론되고 있는 모델이어서 흥미롭게 들었다. 이는 특정 이미지의 특징벡터를, 전체 학습 이미지의 특징벡터를 모은 딕셔너리의 키와 유사하게끔 훈련하되, 딕셔너리를 큐 형태로 정렬함으로써 consistency를 확보한 모델이다.
contrasitve learning의 대표적인 모델 외에도 이를 반도체 분야에 최초로 적용한 강현구 연구원의 논문이 소개됐다. 연구실 인원끼리 서로 공부가 될 수 있는 환경이라 다시 한번 감사함을 느꼈다. self-supervised learning 분야의 연구가 활발히 이뤄지고 있는 만큼 석호가 세미나 말미에 언급한 BYOL, PCL도 따로 공부해봐야겠다는 생각이 들었다. 세미나를 위해 많은 준비를 해준 석호에게 감사 인사를 전한다.
이번 세미나는 "Self-Supervised Learning (Algorithm&Application)"을 주제로 진행되었습니다. 딥러닝은 여러 분야에서 좋은 성능을 내고 있지만 레이블링 된 데이터가 많이 필요하다는 단점이 있습니다. 이러한 단점을 해결하기 위해 semi-supervised learning, domain adaptation 등 다양한 연구들이 활발하게 진행되고 있으며 이번 세미나는 이러한 연구 흐름 중 하나인 self-supervised learning에 관해서 소개되었습니다. Self-supervised learning은 unsupervised learning 방법론으로 레이블이 없는 데이터만을 활용하여 데이터의 representation을 잘 배우는 것이 목적입니다. 과거의 self-supervised learning 방법론들은 사용자가 미리 지정해 놓은 pre-text task를 기반으로 모델을 학습하고 사용자가 풀고 싶은 downstream task에 적용하는 방식의 연구가 많이 진행되었습니다. 하지만 최근에는 contrastive learning을 활용한 방법론들이 연구되고 있습니다. Contrastive learning을 활용한 방법론으로 NPID, MoCo, PIRL이 소개되었습니다. NPID는 contrastive learning 방식을 활용한 최초의 연구입니다. 해당 연구는 잘 추출된 특징은 인스턴스 간 유사도 정보를 가지고 있을 것이라는 점에서부터 출발합니다. 동일한 인스턴스는 feature vector 사이의 거리가 가깝게 다른 인스턴스는 feature vector 사이의 거리가 멀도록 학습이 진행됩니다. 모든 이미지 사이의 거리를 계산해야 하기 때문에 계산량이 많지만 이를 memory bank라는 별도의 저장공간을 활용해 해결합니다. 두 번째로 소개된 MoCo는 momentum contrast라는 방식을 활용합니다. 이미지를 인코딩할 때 key와 query 두 개의 인코더를 활용하며 key 인코더를 query 인코더를 통해 조금씩 업데이트해가게 됩니다. 또한 모든 데이터의 feature vector의 값을 저장하고 있어야 하는 memory bank 방식과는 다르게 별도의 queue를 이용해 negative sample을 저장하게 됩니다. 마지막으로 소개된 PIRL은 pretext task에 상관없는 contrastive learning 방식을 제안합니다. 기존의 연구들이 모든 이미지를 각 클래스로 구분하는 pretext task를 활용했다면 PIRL은 rotation을 활용해 모델을 학습합니다. 이러한 간단한 아이디어로도 좋은 결과를 낼 수 있다는 것을 실험을 통해 증명합니다. 세미나의 후반부에서는 self-supervised learning을 적용한 application 연구들이 소개되었습니다. 반도체의 wafer bin map의 이상 탐지에 활용한 연구와 심전도 및 뇌파 데이터를 활용한 연구들이 소개되었으며 self-supervised learning이 다양한 분야에 적용될 수 있음을 알 수 있었습니다. Self-supervised learning이 많이 연구되고 있다는 것은 알고 있었지만 어디서부터 시작해야 할지 갈피를 잡지 못하고 있었는데 이번 세미나를 통해서 연구의 흐름을 알게 되어 의미 있는 세미나였습니다. 세미나를 위해 수고해준 석호형에게 감사의 뜻을 전합니다.
이번 세미나는 'Self-Supervised Learning (Algorithm & Application)"에 대한 주제로 진행되었다. 실제로 개인 연구에 해당 분야의 아이디어를 활용해볼 수 있을 것이라는 조언에 따라 Self-supervised Learning에 관심이 가고 있던 시기에 이번 세미나를 접하게 되어 더욱 의미있었다. Self-supervised Learning이란 label이 존재하지 않더라도 데이터가 갖고 있는 특성을 활용하여 잘 학습시키고 좋은 예측 성능을 보이고자하는 연구 분야이다. 이번 세미나에서는 각 인스턴스의 유사도 정보를 Memory Bank로 저장하여 유사한 데이터들끼리 뭉치도록 하는 NPID라는 알고리즘과, negative sample의 수를 확보하고 실험시 학습이 안정적으로 되도록 consistency를 유지시켜주는 MoCo 알고리즘에 대하여 듣게 되었다. 또한, 이미지의 transformation 후에도 해당 이미지에 대한 representation은 동일하게 학습되어야한다는 아이디어가 적용된 PIRL 모델에 대하여 알아볼 수 있었다. 이 외에도 해당 방법론들이 활용된 다양한 application 논문까지 소개되어 이 분야가 다양한 분야에서 어떻게 적용될 수 있는지도 알아볼 수 있었다. 해당 세미나를 통하여 Self-supervised Learning에 대한 이론과 최신 모델들을 접할 수 있어서 유용하였고, 실제 해당 논문들을 읽어보며 각 알고리즘들을 다른 분야에 어떻게 접목시킬 수 있을지에 대한 고민을 더 해보아도 좋을 것 같다는 생각이 들었다.
오늘 석호가 "self-supervised learning"를 주제로 강의해주었다. 우리가 모델링을 수행하는 목적은 수집된 데이터에 대한 설명력을 높이기 위해 좋은 특징을 추출하는 것이다. 그 좋은 특징을 추출하기 위해 감독(supervision)이 주어지는지, 혹은 그렇지 않은지에 따라 모델링을 수행하는 이유와 종류가 달라진다. 감독이 주어진다는 의미는 입력데이터(X)에 따라 정답(Y, label)이 주어진다는 의미, 즉 supervised learning (지도학습)을 수행하는 걸 말하고, 그렇지 않은 경우는 unsupervised learning (비지도학습) 을 수행한다고 말한다. 일반적으로 특정 데이터를 표현할 때 정답이 주어지면 특징을 추출하기 유리하다. 하지만 많은 데이터에 정답을 부여하는 데에는 시간적으로 많은 비용이 들기 때문에 어떻게 모델링을 수행할 지 애매할 때가 있다. 이런 경우 널리 사용되는 게 self-supervised learning(자기지도학습)이다.
자기지도학습은 입력데이터 자신(self)을 정답으로 활용해 데이터 특성을 추출한다. 주로 이미지데이터 분야에 활용되어 왔으며 그 연구 현황은 크게 (1) pretext task 정의, (2) contrastive learning 적용으로 나눌 수 있다. (1) pretext task는 self-supervised learning을 사용하여 X 본연의 특징을 추출한 다음, supervised learning을 수행하는 프로세스로 이루어진다. self-supervised learning은 자신의 이미지를 변형(cropping, rotation, etc)한 이미지와 특징이 유사하도록 네트워크를 학습한다. 대표적인 방법으로 Examplar, Rotation 있으며 encoding network를 supervised learning 수행 시 feature extraction network로 활용 및 classifier를 추가하여 분류를 수행한다. (2) contrastive learning은 자기 자신과 유사한 이미지와는 가깝게, 유사하지 않은 이미지는 거리가 멀게 학습하고 자 하는 방법론이다. 대표 방법론으로 NPID(non-parametrix instance discrimination) 논문을 소개해 주었고 그 논문에서 새롭게 제안한 non-parametric softmax, memory bank, NCE (noise-contrastive estimation)를 설명해주었다. MoCo, PIRL 논문도 소개해주었는데 이 부분은 더 살펴봐야 할 것 같다. 세부 알고리즘에 대한 목적과 예시를 들어 자세히 설명해주었으면 더 좋았을 것 같다.
응용연구로 "subject-aware constrastive learning for biosignals" 논문이 흥미로웠다. 의료 데이터를 수집할 때 정답을 부여하는 데에는 많은 비용이 소요된다. 또한, 피험자(subject)마다 데이터 특성이 다르기 때문에 반드시 유용한 데이터 특징을 추출해내야하는 과업이 주어진다. 의료분야에서는 주로 EEG(뇌신호), ECG(심전도) 데이터가 피험자 상태를 설명하기에 많이 사용되는데 이들은 시계열 데이터다. 즉, 시계열 데이터를 위한 augmentation을 수행했을 뿐만아니라 self-supervised leaning 프로세스를 적용해 성능을 향상시킨 논문으로 문제상황과 응용면에서 적절해보였다. 지난번 Adversarial attacks & defences 를 주제로 발표하며 시계열 데이터는 데이터 변형을 어떻게 수행할 수 있을 지 궁금했는 데 좋은 논문을 찾은 것 같다. 이번 세미나로 인해 이전에 생각해봤던 연구주제를 다시 들여다 볼 수 있는 기회로 삼을 수 있을 것 같다. 오늘 많은 논문을 소개해주다보니 세미나를 청취하며 따로 자료를 찾아보지 않으면 이해하기 어려운 설명이 아쉬웠는데, 전반적으로 "self-supervised learning"에 대한 컨셉과 연구현황이 어떻게 이루어지는지 정리해볼 수 있는 세미나였다.
자가 표현 학습(Self-supervised representation learning SSL)이라 불리는 방식은 전 세계적으로 가장 핫한 연구 분야라 할 수 있다. 금일 세미나에서는 석호가 해당 분야의 발전 과정과 응용 분야에 관해 설명해주었다. Transfer learning(전이 학습) 분야 내 하나의 분야인 SSL은 기존 ImageNet 데이터를 정확히 분류하기 위해 학습된 Encoder의 파라미터를 가져오는 것이 아닌 풀고자 하는 문제에 대한 레이블이 없는 데이터(언레이블 데이터)를 활용해 Encoder를 학습시키는 방법을 의미한다. 과거에는 언레이블 데이터에 임의로 레이블을 지정해 Encoder를 학습할 수 있게 하는 Pretext Task 기반의 학습 방법이 유행하였다면, 요즘은 Contrastive learning 기반과 Clustering 기반 SSL이 화두이다. Contrastive learning, Clustering 기반 방법들은 유사한 이미지들은 같은 변수 공간에 맵핑될 것이며 이는 하나의 군집을 형성하는 것과 같다는 생각에서 시작하는 것으로 이해할 수 있다. 이렇게 학습시킨 Encoder를 사용해 원하는 문제를 해결한다면 입력 데이터의 분포를 잘 알고 있는 Encoder를 사용한 것이 되며 결국 더 좋은 성능을 낼 수 있다는 것이다.
실제 SSL을 음성(소음) 데이터에 적용해 분류 성능을 향상한 적이 있다. 하지만 코드상으로 이를 구현하기 위해서는 간단하지만 놓치기 쉬운 부분이 많은 것으로 생각하였다. PyTorch를 기준으로 Encoder와 Classifier(DNN)을 어떻게 Optimizer와 엮어서 학습시킬 것인지, 어떤 레이어의 파라미터를 고정할 것인지, 배치 정규화(Batch Normalization)를 진행할 때 어떤 것을 고려해야 하는 지등 코드상에서 꼼꼼히 확인할 필요가 있다는 생각이 들었다. 석호가 SSL에 많은 관심을 두고 연구하고 있는 것으로 알고 있는데 이론상의 공부도 중요하지만, 코드로 해당 이론을 구현 및 새로운 알고리즘을 개발할 때 이를 잘 파악하고 연구한다면 올바른 연구 방향으로 빠르게 나아갈 수 있을 것이라는 생각이 든다. 개인 연구에서도 발전이 있길 응원한다.
금일 세미나 주제는 최근에 알게 되어 아주 재미있는 주제라고 생각하던 찰나였는데 고맙게도 석호가 관련 주제로 세미나를 해주었다. MoCo가 나오게 되기까지와 그후, 어플리케이션으로 쭈욱 역사를 훑은 세미나였던 것 같다. 그리고 관심이 그리 크지 않았던 비지도 학습 부분이 이렇게 발전된 것에 참 놀라웠고 Transfer learning / domain adaptiation / semi/weakly supervised learning / self supervised learning등 종류도 많아지고 그 깊이가 꽤 생겼다고 생각이 들었다. 무엇보다 강화학습으로도 친숙한 Boostrap이라는 용어가 이렇게 강력한지 새삼 느꼈다. 시작은 Pretext task로 라벨이 없는 데이터를 augmentation ( Rotate, Image Augmentation)을 통해 학습을 하자는 것이지만(Exemplar) 데이터의 개수 * augmentation trials 횟수 만큼의 많은 양의 데이터가 늘어남으로 연산 자체가 꽤 클 것이라고 한다. 이 학습 방식에서 발전한 새로운 Constrative Learning의 시작인 "Unsupervised Featrue Learning via Non-Parametric Instance Descrimination"에서 동기부여를 설명하는 부분이 참 매력적이라 생각이 들었다. 기존의 이미지 분류 모델의 결과가 비슷한것은 softmax logit이 같게 높게 나오는 점을 착안했다는것 그리고 거기에서 유사도가 있을것이라고 연구가 시작했다라고 하는데 이런 도입부는 모두를 전율케 만드는것 같다. 그후에 메모리 뱅크를 사용한 NCE등 거쳐서 현재 state of art인 Moco를 보고 참 활용분야가 무궁무진하다고 생각이 들었다. latent features를 128차원으로 뽑고 기하학적인 접근을 하여 Positive sample은 모으고 negative samples는 멀게 한다라는 아이디어는 딥러닝 속을 들여다 보는 것 같다. 그리고 Non Parametric Classifier 클래스 구분하는 파라메터의 경우 다른 클래스가 들어올 경우 강건하지 못해서 기존의 피쳐맵을 가지고 인스턴스간 비교가 수월하게 해준다라고 하는데 기존의 Softmax밖에 생각하던 나에겐 Computer Science 측면의 접근인 것 같아서 기분이 오묘했다. 또한 Memory Bank, Queue는 강화학습의 Experience Replay랑 연관되어서 생각이 들기도 하였다. 마지막 PIRL은 신호처리에서의 augmentation 부분이 하이라이트인듯한데 시계열 데이터의 augmentation 기법 또한 있을까 호기심이 생겼다. 재미있는 새미나를 해준 석호에게 감사와 응원을 보낸다.
이번 세미나는 석호가 ‘Self-Supervised Learning’이라는 주제를 가지고 진행하였다. 딥러닝 계열 모델의 특성상 잘 학습시키기 위해서는 많은 양의 labeling 작업이 된 데이터가 필요하다. 하지만 labeling을 하는데는 많은 노력과 비용이 요구되며 이를 해결하기 위해 나온 방법론 중 하나가
Self-supervised learning이다. Label이 존재하는 경우를 supervision이라 하며 데이터에 label이 없는 경우에서의 Self-supervision은 image의 feature를 추출하는 모델이 input의 한 부분이 다른 부분의 역할을 하게 되는 것이다. 초기에는 pretext task를 기반으로 모델을 학습시켜 downstream task방식의 연구기 진행되었다. 하지만 현재는 Contrastive learning을 사용하여 연구를 진행하고 있다. Contrastive learning의 방법론들로는 NPID, MoCo, PIRL과 같은 다양한 방법론이 존재한다. 그 중에서 PIRL이라는 논문의 내용이 흥미로웠다. 이 논문의 기본 아이디어는 어떤 pretext task를 선정하는지에 상관없이 같은 이미지면 transformation 후에도 visual semantic을 변화시키지 않는다는 아이디어에서 출발하였다. 같은 이미지에서 나온 representation vector는 transformation에 상관없이 유사해야 하며 다른 이미지와 겹치지 않아야 하는 것이 특징이다. 세미나 마지막 부분에는 Self-supervised learning이 어디에 적용되고 있는지 까지 잘 설명해 주었다. Self-supervised learning의 개념부터 적용까지 꼼꼼하게 설명해준 석호에게 감사하다는 말을 전해주고 싶다.
금일 세미나는 석호오빠가 ‘Self-supervised learning’이라는 주제로 세미나를 진행해주었다. 딥러닝 알고리즘은 대용량 데이터로 학습이 되어야 일반화 성능을 가질 수 있다. 따라서, 다량의 레이블이 존재하는 양질의 데이터가 있어야 올바른 모델 구축이 가능하다. 이와 같은 고질적인 딥러닝의 특징이자 한계로 인해 레이블 annotation비용을 절감하기위한 연구가 transfer learning, domain adaptation, self-supervised learning 등 다양한 방식으로 수행되고 있다. 금일 주된 내용인 self-supervised learning은 label이 없는 unsupervised learning의 일부라고 할 수 있는데, label이 없는 상황에서 동일한 이미지의 일부 subset1이 다른 subset2의 레이블로 두어 supervised learning의 형태로 학습하는 방식이라 할 수 있다. Self-supervised learning의 연구동향은 크게 (1) pretext task, (2) contrastive learning, 그리고 (3) network structure, manifold information 반영하는 연구들로 이루어져 있다.
Pretext task는 unlabeled dataset을 input으로 사용하여 사용자가 정의한 문제(Pretext task)를 선수적으로 학습시켜 데이터의 이해를 하기 위한 네트워크를 구축하는 것을 의미한다. 이때, pretext task 네트워크가 잘 작동한다면, input을 효과적으로 representation한다고 가정할 수 있다. 이렇게 잘 추출된 정보는 downstream task 네트워크에 전달하여 최종적인 문제를 수행한다. 대부분의 pretext task는 일종의 augmentation과 같이 가상의 복제본을 학습하여 representation을 하도록 수행되며, 이 과정에서 computational cost가 크다는 한계점이 있다. 이러한 한계점을 극복하기 위한 새로운 접근법으로 representation하는 과정에서 자기자신과 비슷한 instance와 아닌 instance의 유사성을 반영하여 학습하는 contrastive learning이 각광받고있다.
Contrastive learning의 방법론 중 NPID의 motivation은 실제 input space에서 유사한 데이터가 feature space에서도 유사한 것을 실험적으로 확인하는 과정에서 잘 추출된 정보는 instance간의 유사도 정보를 내재하고 있을 것이라는 데에서 시작되었다. 먼저, class를 분류하기 위한 예측확률을 도출하는 관점에서 non-parametric classifier를 사용하며, memory bank를 사용하여 각 이미지별 feature map을 저장하여 사용한다. 다음으로 MoCo는 queue개념을 도입하여 NPID의 memory bank와 차별점을 가지고 있으며, queue구조상 처음 들어온 특징벡터가 먼저 상쇄되면서 consistency가 유지된다. 더불어, 파라미터 업데이트 과정에서 momentum update를 활용하여 학습이 안정되도록 개선하였다. 마지막으로 PIRL은 pretext task의 종류와는 무관하게 transformation한 이후에도 서로 유사하게 학습되어야 한다는 가설에서 시작되었다.
금일 세미나를 통해 self-supervised learning에 대한 최신 연구동향에 대해 살펴볼 수 있었으며, 현구오빠가 진행한 application paper에 대해서도 다루며 산업공학의 적용사례까지 이해해볼 수 있었다. 그룹 연구미팅 초기 처음으로 self-supervised learning에 대해 알게 되었을 때부터 한번쯤 연구 동향에 대해 잘 정리하고, 이해해보고 싶다고 생각해왔었는데 금일 세미나를 통해 미뤄왔던 숙제를 한 기분이 들었다. 여러 논문을 잘 정리하고 전달해준 석호오빠에게 감사하며, 새로운 도메인에 적합한 self-supervised learning방법론을 제안하는 연구도 잘 마무리되길 소망한다.
이번 세미나는 문석호 연구원이 최근 많은 발전을 이룬 Self-supervised learning 알고리즘과 해당알고리즘을 실제 적용한 예제를 여러가지 소개해주었다. 딥러닝 계열 모델 특성상 잘 학습시키기 위해서는 많은 양의 labeling작업된 데이터가 필요하다. 하지만 labeling 작업에는 많은 노력과 비용이 요구되기 때문에 현실적으로 고품질의 레이블드 데이터를 확보하는 것은 어렵다. 이러한 문제를 해결하기 위한 한가지 방법으로 Self-supervised learning 연구가 요즘 각광을 받고있다. Self-supervised learning 연구 내에서도 pretext task활용, contrastive loss활용 등 연구 방향이 여러가지가 존재한다. 그 중 pretext task활용 self-supervised learning 연구는 pretext task를 잘 정의하여 잘 해결하는 모델을 학습시키면 해당 모델의 파라미터값을 원래 목적인 downstream task 모델의 초기값으로 사용하는 연구이다. 오늘 주로 설명된 방법은 contrastive loss 활용 알고리즘으로 NPID, MoCo, PIRL등이 소개되었다. 해당 알고리즘은 비슷한 클래스의 이미지들은 비슷한 곳에 특징 벡터가 요약 되어야한다는 큰 가정을 가지고 있다. 이는 metric learning의 큰 가정과 유사하여 metric learning과 supervised learning을 통합한 느낌을 받았다. 아쉬웠던 점은 다양한 논문의 아이디어와 모델, 성능을 나열하기보다 최근 논문들에서 관통하여 사용하는 핵심 개념에 대해서 이해하기 쉽게 설명해주었더라면 더 좋은 세미나 발표가 되지 않았을까 생각했다. 앞으로 진행할 self-supervised learning을 활용한 석호의 연구에 오늘의 세미나가 큰 디딤돌이 되길 바란다.
금일은 Self-Supervised Learning를 주제로 세미나가 진행되었다. 최근 많이 사용되고 있는 딥러닝 모델, 머신 러닝 등을 활용해서 성능이 좋은 예측 모델을 구축하기 위해 중요한 것 중 하나는 정하고 깔끔하고 많은 데이터를 준비하는 것이다. 하지만 현실에서는 정확한 데이터를 준비하는 일, 즉 정확한 레이블링(=y)을 하기 위해서는 시간과 비용이 많이 든다. 여 입력 데이터에 매칭 되는 정확한 레이블을 부여하기 위해서는 실제로 사람이 하나, 하나 확인해야하기 때문이다. 그렇기 때문에 현실에서는 정확한 레이블이 없이 제한된 상황에 놓여 있는 경우가 많다. 이번 세미나에서는 이러한 현실적인 문제를 극복할 수 있는 방식 중 하나인 Self-Supervised Learning에 중에서도 contrastive learning을 다룬 논문들을 중심으로 설명이 이어졌다. 그 중에서도 대표적으로 NPID, MoCo, PIRL 알고리즘에 대한 핵심 개념들에 대한 설명이 세미나의 중심이었다. 먼저 NPID는 Instances 간 유사도를 contrastive learning 방식으로 학습하는 알고리즘으로 모델이 잘 추출한 특징값은 instances 간 유사도 정보를 가지고 있을 것이라는 아이디어에서 시작되었다. MoCo는 encoder를 통과한 query와 momentum encoder를 통과한 key 간의 contrastive learning을 통해 학습하는 방식으로 많은 negative sample 수를 확보해 성능이 향상되었다는 장점을 가진 알고리즘이다. 마지막으로 PIRL은 같은 이미지에서 나온 representation은 transformation과 무관하게 유사하고 다른 이미지와는 겹치지 않도록 학습을 진행하는 알고리즘이다. 본 세미나에서는 Self-Supervised Learning 중 contrastive learning 방식으로 학습하는 알고리즘에 대해 전반적으로 소개받을 수 있었다. 개인적으로 특정 과제에서 우리 연구실 내 인원들이 MoCo를 적용한 내용을 들었을 때 꽤 흥미롭다고 느껴졌다. 예측 모델을 구축할 때, ‘특정 class를 분류하는 일보다 더 중요한 것은 입력 데이터의 특성을 기반으로 좋은 특징 공간을 추출하는 것이다’는 생각을 다시 한번 하게 되었기 때문이다. 핵심 개념 위주로 좋은 세미나를 준비해준 석호에게 수고했다고 말해주고싶다.
이번 세미나는 Self-Supervised Learning (algorithm & application)을 주제로 문석호 연구원님께서 진행해 주셨다. 최근 deep learning의 발달로 인해 지문인식, 자율주행, 외국 번역 등 인간의 삶의 많은 부분에 적용이 되고 있고, 이러한 deep learning의 성능을 의심하는 사람은 거의 없다고 할 수 있다. 문제는 이러한 deep learning은 supervised learning으로 인해 이루어 지는데 이는 수많은 양질의 data를 필요로 한다. 즉 사용하고자 하는 데이터에 정확한 label이 달려있어야 한다는 뜻이다. 이는 사용하고자 하는 모델의 수준에 따라 엄청난 시간과 비용을 필요로 한다는 뜻이다. 예를 들어 한장의 의료 사진에서 암을 구별할 수 있는 모델을 구축해야한다면, 이미지 안에서 픽셀 단위의 labeling이 이루어져야 하고 이는 전문적인 훈련을 받은 의사에 의해 수행 되어져야 한다. Self-Supervised Learning은 이러한 문제를 해결하기 위한 방법으로 deep-learning의 특징 추출 알고리즘을 바탕으로 labeling을 도와준다. 오늘 세미나의 구성은 Self-Supervised Learning 방법의 발전 순서로 크게 Pretext task 방식과 Contrastive learning 그리고 NCE (Noise-Contrastive Estimation)를 설명해 주었다. Self-Supervised Learning을 하기 위한 아이디어를 순차적으로 설명해 주었기 때문인지 더욱 이해가 잘 되었고, Self-Supervised Learning의 학습방법론이 인간의 학습과 어떻게 다른 것인지, 그리고 다음에는 어떠한 아이디어를 발휘해서 인간의 인지능력을 따라갈 수 있을지 고민을 많이 해야겠다는 생각을 하게 되는 세미나였다. 세미나를 위해서 많은 이론과 Application 논문까지 찾은 정성이 느껴지는 세미나였다. 연구원들에게 영감을 많이 준 세미나였던 것 같고 핵심 위주로 포인트 강의를 잘 해준 문석호 연구원께 감사의 인사를 전하고 싶다.
금일 세미나는 석호가 self-supervised learning, 특히 contrastive learning 알고리즘 페이퍼를 소개해주는 방식으로 진행하였다. 초기 self-supervised learning은 unlabeled data의 특징을 학습하기 위한 pretext task network로부터 knowledge transfer을 통해 downstream task를 해결하는 방식의 연구되어왔다. 그러나 이는 입력 데이터의 수와 pretext task의 작동 방식에 따라 결정되는 augmentation에 의해 연산량이 결정되기 때문에 데이터 사이즈가 큰 경우에 많은 리소스가 필요하다는 단점이 있다. 이번 세미나의 중점적인 내용이였던 contrastive learning 알고리즘은 pretext-based의 단점을 해결하기 위해 key 이미지를 저장하는 memory bank를 도입하는 방식을 채택하였다. NPID는 non-parametric classifier로 memory bank에 저장된 key와 query간의 유사도를 계산하는 방식을 사용하며, NCE는 classification을 data와 noise를 구분하는 이진분류 형태로 변환하여 계산 복잡도를 더 낮추는 방식을 제안했다. MoCo는 memory bank를 선입선출 queue 형태로 정의하여 데이터나 배치 사이즈에 의존하지 않고 memory bank 사이즈를 일정하게 유지하여 학습에서의 consistency를 확보하였다. PIRL은 원본 이미지와 rotation 이미지간 semantic representation의 동일성을 전제로, cosine similarity를 사용한 유사도 계산 방식을 사용하여 loss를 계산한다.
알고리즘 페이퍼들이 CV 분야에서 발전해왔기 때문에 이러한 알고리즘들을 augmentation이 어려운 audio, text 등 다른 유형의 데이터에 그대로 적용하기는 쉽지 않다. 그래서 더 연구 가치가 있을 것 같고 나도 NLP쪽에 self-supervised learning을 적용하려면 어떻게 할 수 있는지 연구들을 찾아보고 실제로 현업에 가서 상황에 따라 적용해볼 수 있으면 해보고 싶다는 생각이 들었다. 또한 3~4개의 연구 발전 방향을 보면서 뼈대를 다 바꾸는 정도의 획기적인 아이디어가 아니여도 작은(실제로는 작지 않지만) 부분부터 개선점을 찾고 디벨롭 하는 것이 좋은 연구가 될 수 있다는 것을 다시 한번 느꼈다.