2019 International Conference on Computer Vision - 곽민구
- 2019년 11월 10일 오전 6:37
- 조회수: 679
Reviewed by
곽민구
곽민구
[ICCV를 참가하면서]
10월 27일부터 11월 2일까지, 7일이라는 긴 기간 동안 코엑스에서 열리는 International Conference on Computer Vision (ICCV) 2019에 참가하였다. 바로 전날에 INFORMS 2019에 참가하고 막 귀국한 참이었지만 어느 때보다 들뜬 마음으로 세션장에 들어섰다. 세계적으로 손꼽히는 학회인 만큼 수많은 연구자들이 왔으며 59개 국가에서 7,500명이 넘는 사람들이 참가했다고 한다. Tutorial, workshop, oral & poster presentation 다양한 세션이 열렸고, 대부분 좋은 퀄리티의 연구들이 발표되어서 1주일 동안 너무 즐겁게 참가했다. 사실 5일차쯤 되어서는 약간 피곤하기도 했지만, 일자 별로 조금씩 다른 주제로 연구들이 발표되어 계속 새로운 것을 보는 재미에 7일 동안 풀타임으로 참석할 수 있었던 것 같다. 산업공학이 아닌 컴퓨터 비전 분야의 학회에 이번에 첫 번째로 참가를 했는데, 기존에 갖고 있었던 선입견을 여러 개 깰 수 있었던 기회였다.
첫 번째로, 우리가 생각하는 것보다 컴퓨터 비전 분야에서 연구되고 있는 task들은 엄청나게 다양하다. Deep learning 알고리즘을 배우면서 처음에 접하게 되는 컴퓨터 비전 task는 image classification, object detection, segmentation 등이 있다. 그 이후로 연구 분야에 따라 다르겠지만 super resolution, data augmentation, synthetic image generation과 같은 task도 조금씩 접하게 된다. 하지만, ICCV에서 발표된 논문들의 주제를 대략적으로만 구분해봐도 이보다 훨씬 더 많은 수의 task와 연구 토픽들이 있었다. ICCV 학회를 보면서 연구의 트렌드와 주목받고 있는 토픽들을 살펴볼 수 있었다.
두 번째로, 컴퓨터 비전 분야에서 Google, Facebook, NVIDIA, IBM 같은 대기업들이 최신 기술들을 리딩하는 곳은 맞지만, 그에 못지 않게 학교에서도 훌륭한 연구들이 많이 이루어지고 있다. 최근 Neural Architecture Search (NAS), BERT와 같이 어마어마한 컴퓨팅 파워가 필요한 연구들이 많이 이루어지는 경향이 다분하다고 느꼈었다. 하지만 ICCV, 특히 포스터 세션에서 많은 연구들을 보면서 순수하게 아이디어로 승부를 보는 연구가 많다고 느꼈다. ICCV 튜토리얼에서 R-CNN의 저자인 Ross Girshick이 하나의 집중된 아이디어나 문제에 대해 다루고, 이를 간단한 버전과 단계적 검증(ablation)을 통해서 연구를 해야 한다는 조언을 했는데 많은 점을 느낄 수 있었다.
세 번째로, ICCV 2019는 포스터 세션을 위주로 진행이 되었는데 이 방식이 매우 새로웠고 장점이 많다고 느꼈다 (물론 단점도 있다). 지금까지 참가한 학회는 모두 oral presentation이 메인으로 진행되고 12~17분이라는 짧은 시간 내에 발표자가 청중들에게 자신의 연구를 전달해야 하는 방식이었다. 하지만 ICCV에서 oral presentation은 자신들의 포스터를 홍보하는 수단이었다. 연구의 자세한 내용은 모두 배제하고 5분이라는 시간 동안 핵심만 전달하여 자세한 내용은 1시간 ~ 1시간 30분 동안의 포스터 세션에서 설명을 하는 방식이었다. 실제 학회장에서 발표를 듣다 보면 집중력이 떨어져서 내용을 놓치거나, 동시에 여러 개의 세션이 진행되는데 자신이 원래 기대했던 연구가 아니어서 실망하는 경우가 많았는데 이러한 방식을 통해서 각자가 원하는 내용의 연구를 집중적으로 볼 수가 있었다. 또한, 저자에게 설명을 들으면서 헷갈리거나 궁금한 부분은 바로 다시 물어 볼 수 있는 interactive한 대화를 할 수 있다는게 매우 매력적으로 느껴졌다. 하지만, 인기가 있는 포스터 세션에는 사람들이 너무 많이 몰려서 듣기가 힘들고, 기본적으로 자세한 내용은 포스터에 많이 담겨있지 않아 본인이 적극적으로 읽고 물어봐야 한다는 점도 있다.
[컴퓨터 비전의 연구 분야]
첫 번째 선입견을 깨면서 컴퓨터 비전 분야에서 진행되고 있는 다양한 연구 분야를 접할 수 있었다. 1주일 동안 진행되는 학회 기간 동안 매일매일 집중적으로 다루는 분야가 다를 정도로 많은 토픽들이 있었는데 개인적으로 느끼기에 많은 사람들이 관심을 보였고, 많이 진행을 하고 있다고 느낀 분야를 몇 개 정리해보았다. 수 많은 논문이 발표되고 있기 때문에 관심있는 키워드를 통해서 추후 검색을 해서 살펴보는게 중요할 것이다. (ICCV만 하더라도 하루에 약 300편의 포스터 발표가 있었는데, 단순하게 생각하더라도 최소 1,500편의 논문이 발표되었다)
1) Neural Architecture Search (NAS)
구글이 AutoML을 통해 리딩을 하고 있는 분야이다. 문제를 해결하기 위해 수많은 뉴럴 네트워크 구조를 시도해봐야 하는데 이를 자동적으로 만들어주기 위한 연구이다. 관련 연구는 크게 3가지 정도로 구분을 할 수 있을 것 같다. 첫 번째는 네트워크를 구성하는 각각의 operation에 관한 연구이다. CNN filter, pooling method와 같은 방법들에 대한 연구가 종종 보였는데 비전 학회이다 보니 비중은 상대적으로 적다는 느낌을 받았다. NeuriPS 학회에는 관련 연구가 더 많이 발표될 것 같다. 두 번째는 각 operation, layer를 연결하는 ‘wire’에 관한 연구이다. 랜덤으로 연결하는 것이 의외로 성능이 좋다고 말하고는 있지만, Google과 Facebook에서 좋은 성능을 내기 위해 네트워크 아키텍쳐를 구축하는 방법들을 지속적으로 연구하고 있다. 마지막으로는 data augmentation에 대한 연구들이 많았는데 이미지 데이터를 가공하여 학습 및 예측 성능을 올리기 위함이었다. 하지만 이 과정에서 데이터가 많을수록, 그리고 해상도가 클수록 연산량이 매우 많아지는데 메인 네트워크와 연결되지는 않아서 이를 어떻게 하면 효율적으로 계산할 수 있을지에 대한 연구도 많이 이루어지는 것 같았다.
2) Generative Adversarial Network (GAN)
첫날부터 깜짝 놀랐던 점이 “아직도 GAN이 이렇게 많이 연구가 되고 있나?”였다. Too many GANs라는 농담이 나올 정도로 처음 vanilla GAN이 나온 이후 엄청나게 많은 연구가 된 알고리즘이었지만, 여전히 많은 아이디어들이 구현되고 성능에 대해 검증하고 있었다. GAN이 가장 많이 사용되는 분야는 domain adaptation or distill, 그리고 image resolution이었다. 최근 BERT와 관련된 과제를 진행하면서 domain adaptation 관련 논문을 몇 개 살펴볼 기회가 있어서 모델 아키텍쳐와 학습 프로세스에 관해서 집중적으로 보았다. 물론 domain adaptation에서는 temperature annealing, loss function design, feature alignment 등을 사용한 연구도 많이 이루어지고 있었지만, adversarial learning이라는 컨셉의 다양한 활용성에 대해서 다시 한번 생각해 볼 수 있는 기회였다.
3) 3D data
2D 이미지 데이터를 넘어서서 video, 3D point cloud에 대한 포스터를 많이 볼 수 있었다. 개인적으로 관심이 있는 분야가 아니어서 대부분은 그냥 지나쳤음에도 불구하고 기억에 남을 정도로 많은 논문들이 발표 되었다. Classification, object detection, segmentation, deblurring, few-show learning과 같은 2D 이미지에서의 task들이 time, multiple frames를 고려한 작업으로 넘어가서 이루어지고 있었으며 최근 공개된 VideoBERT에 대한 설명도 저자로부터 직접 들을 수 있었다 (이런 점이 poster session의 가장 큰 장점이자 매력인 것 같다). 3D point cloud는 말 그대로 3차원 상에 있는 점들의 집합, 구름을 분석하는 분야이다. X, Y, Z 좌표로 정의되는 점들의 집합은 일반적으로 사물의 표면을 나타내기 위해 사용되는데 3D 프린터, 스캐너의 기술적 발달로 인해서 새롭게 인기를 끌고 있는 분야이다. 3D 스캐너를 통해 사물의 표면에서 수많은 점들을 측정해서 데이터로 얻을 수 있는데 data generation, style transfer 같은 분야의 연구가 주를 이루었다. 아무래도 이런 데이터를 갖고 분류 등을 하는 것 보다 ‘feature representation of 3D data’를 효과적으로 학습하고 이를 generative model을 통해 시각적으로 확인하는 작업들이 많이 보였다. 처음 접하는 분야라 초반에는 당황스러웠지만 2D에 적용되는 알고리즘들을 3D에 적용시키기 위한 접근 방법들을 위주로 살펴보는 재미가 있었다.
4) Explainable Artificial Intelligence
뉴럴 네트워크로 많은 분야에서 SOTA 알고리즘들이 계속 갱신되는 만큼 성능은 계속 향상됨에 따라, 왜 그런지 분석, 해석을 하는 분야이다. Neural Architecture Analysis, Feature Analysis, CAM 관련 알고리즘과 더불어, 특히 BERT와 함께 각광을 받고 있는 다양한 종류의 attention mechanism을 이용한 연구들이 많이 보였다. 첫 날 튜토리얼에서는 Interpretable Machine Learning for Computer Vision, 마지막 날 워크샵에서는 Interpretating and Explaining Visual AI Models이라는 주제로 구성이 될 정도였다. 개인적으로도 관심과 흥미가 있는 분야이기 때문에, 두 개 세션에 모두 참가하여 발표를 청취했다. 튜토리얼에서 소개되었던 논문 중 GAN Dissection, Seeing What a GAN Cannot Generate는 GAN + Segmentation을 이용해서 GAN을 구성하는 노드들이 각각 이미지의 어떤 부분으로 대응 되는가를 살펴본 논문이었다. 포스터 세션을 찾아가 궁금한 점을 몇 가지 질문하기도 했는데 개인적으로 좋은 경험이었다고 생각된다.
5) Attention
Attention mechanism은 Explainable AI와 연결되어 가장 많이 연구가 되고 있는 알고리즘이다. Attention은 기본적으로 RNN 모델의 long-term dependency 문제를 해결하기 위해 등장했지만, 최근에는 recurrent 모델이 아닌 뉴럴 네트워크 자체에 많이 적용이 되고 있다 (Attention is All You Need). Attention 모델을 개인 연구에도 적용을 해보면서 가장 어려웠던 부분은 interpret에 관한 내용을 보여주는 방식에 관한 것이었는데, 컴퓨터 비전 및 이미지에서는 샘플에 대한 시각화가 직관적이고 누구나 이해할 수 있는 방식이기 때문에 더더욱 각광을 받고 있다고 느꼈다. 특히 이미지의 local한 특징을 잡아내는 것이 중요한 segmentation에 많이 적용이 되고 있었다. 몇몇 연구에서는 너무 억지로 디자인 했다는 느낌이 들기도 했지만, 그만큼 많은 연구자들이 연구하고 있는 알고리즘임에는 틀림없다.
이 외에도 scene graph, re-identification, distill 등 너무 많은 분야의 연구들이 발표되었기 때문에, 각자 현재 진행하고 있는 연구 분야에 알맞게 논문을 선택해서 리뷰하는 것이 중요할 것 같다.
[Tutorial, Workshop, Poster 후기]
1) Workshop: Interpretable Machine Learning for Computer Vision. Understanding Latent Semantics in GANs (Bolei Zhou, The Chinese University of Hong Kong) & Tutorial: Interpretating and Explaining Visual Artificial Intelligence Models. The Role of Individual Units in Deep Networks in Vision (David Bau, MIT)
각 발표에서 다룬 내용이 비슷하고, 실제로 두 발표자가 공동으로 진행한 연구를 위주로 발표가 진행되었다. 주제는 GAN이 학습한 latent code를 재해석해서 모델이 이미지의 어떤 부분들을 학습해서 새롭게 데이터를 생성하는지 확인하는 것이다. 기본적인 전제이면서 동시에 연구에서 가장 먼저 확인을 한 것은 ‘GAN의 node별로 학습하는 이미지의 파트가 다르다’이다. 이를 확인하기 위해서 random vector를 통해 가상의 이미지를 생성한 후, decoder를 구성하는 node의 weight를 0으로 만들어 (turn off) 새로운 이미지를 생성한다. 두 이미지를 비교하면 해당 노드가 어떤 부분을 맡아서 데이터를 만들었는지 확인할 수 있다. 흥미로웠던 예시는 GAN으로 이미지를 생성했을 때, 학습한 이미지에 있던 watermark, copyright를 그대로 내뱉는 경우가 있었는데 그와 관련된 노드를 끄면 해당 부분은 지우고 기존의 context를 유지한 채로 데이터가 새롭게 생성되는 것이었다.
각 노드가 학습하는 부분을 확실하게 파악하기 위해서 segmentation을 적용한 GAN Dissection이라는 연구도 매우 흥미로웠다. 학습된 GAN의 decoder에 여러 개의 random vectors를 넣어서 다량의 이미지를 생성한다. 그 다음에 개별 node가 실제 이미지에서 activate하는 정도를 측정한 다음에 semantic segmentation과의 일치율을 계산하는 방식이다. 상당히 직관적이면서도 효과적인 아이디어라고 생각이 들었다. 이 프로세스를 통해 얻은 결과를 시각화하면서 ‘GAN이 생성하지 못하는 부분’에 대한 고민도 공유해주었다. 보통 뉴럴 네트워크가 이미지 데이터를 학습할 때, 풀이나 하늘과 같은 ‘많은 부분을 차지하는’ 배경과 같은 부분은 확실하게 학습하지만 사람, 자동차 같은 특정 객체는 학습하기 어렵다. 특히, 이를 노드 단위로 해석하려고 하면 특정 객체를 학습하는 노드를 찾는 것은 더욱 어렵다. 여러 내용의 연구를 하나의 흐름으로 엮어서 긴 시간 동안 설명을 해주어 다른 발표에 비해 내용을 더욱 이해하기 쉬웠으며 추후 관련 논문들도 찾아서 다시 한번 리뷰할 예정이다.
2) Drop To Adapt: Learning Discriminative Features for Unsupervised Domain Adaptation (Seungmin Lee, Seoul National University)
서울대학교와 네이버에서 연구한 포스터 세션의 발표 였으며 Unsupervised Domain Adaptation을 위한 feature learning 학습 방법론에 관한 내용이었다. 인공적으로 이미지 데이터와 레이블을 동시에 생성하여 특성치를 학습한 이후에, 실제 이미지 도메인에 적용해서 분류 모델을 새롭게 구축하는 방법에 관한 발표였다. 기존에 접해보지 못했던 기법들이 소개되었으며 직관적으로 설명을 잘 해주어서 특히 기억에 남는 연구였다. Drop to Adapt라는 제목은 adversarial dropout을 사용해서 target feature, decision boundary를 타겟 도메인에 더 어울리도록 학습하는 방법 때문에 붙여진 것이다. Adversarial Sample에서 주로 사용되는 용어인 perturbation이 여기서 등장을 하는데, 총 2가지 측면에서 네트워크 학습을 ‘흔든다’. 첫 번째는 fully-connected의 노드에 adversarial dropout을 적용해서 target feature space를 조정하며 이는 소스 도메인과 타겟 토메인을 더 잘 분리할 수 있도록 decision boundary를 미는 역할을 한다고 한다. 두 번째에서는 convolutional layer에서 얻은 feature map의 채널에 바로 adversarial dropout을 적용함으로써 boundary로부터 feature space를 미는 역할을 하게 된다. 어느정도는 practical하게 살펴봤다고는 하지만 분류기 (fully-connected)를 조정하는 역할은 곧 decision boundary를 조정하는 것이며 convolutional layer를 조정하는 것은 직접적으로 feature space를 움직이는 것이라고 생각을 할 수 있기 때문에 꽤 직관적으로 받아들일 수 있었다. 하지만, 학습 중간에 feature를 분리하는 것을 목적으로 하는 만큼, 얼마나 잘 분리 했는가를 측정하는 객관적인 평가지표가 필요하다고 생각되며, 이 뿐만이 아니라 여러 관점으로도 후속 연구가 가능할 것이라고 생각이 되어 관심있게 청취했다.
3) TensorMask: A Foundation for Dense Object Segmentation (Xinlei Chen, Facebook)
R-CNN의 저자인 Ross Girshick가 직접 포스터 세션에서 설명을 진행한 만큼, 제대로 포스터를 보기 위해서는 한 타임을 기다리기까지 했어야 했다. Segmentation에서 YOLO는 box & dense prediction을 하고, R-CNN은 box & region refinement, Mask R-CNN은 mask & region refinement를 한다. 하지만, mask & dense prediction에 대한 알고리즘은 아직까지 개발이 되지 않았는데 이번에 발표한 TensorMask가 이 파트에 해당되는 알고리즘이었다. 여기서 가장 중요한 것은 mask, representation, resolution 3개로 구분할 수 있다. Mask를 구성하는데 있어서 2차원의 직사각형 모양의 윈도우와 동시에 2차원 이미지 그리드 정보를 갖는 ‘4차원 tensor’를 사용하게 된다. 이를 representation 하기 위해서는 align을 시켜주는 방법이 필요하다. 또한, segmentation의 성능에 크게 영향을 미칠 수 있는 부분이 ‘큰 객체’와 ‘작은 객체’는 각각 효율적으로 학습할 수 있는 방법이 다르다는 것에 있다. 객체의 크기에 따라 high/low-resolution mask가 따로 사용이 되어야 하기 때문에 bipyramid 구조를 사용해서 네트워크 아키텍쳐를 구성했다. 분석 목적에 맞게 데이터의 특징을 살펴보고, 효율적 분석 프로세스를 위해 많은 고민을 했다는 것이 느껴져서 segmentation이라는 연구 분야와는 별개로 많은 점들을 생각하게 되는 발표였다.