본문 바로가기

AI 논문

[꼼꼼하게 논문 읽기] MTV :Multiview Transformers for video recognition 1 ( 2022 )

728x90
반응형
반응형

안녕하세요! WH입니다

오늘은 최신 논문을 다뤄볼까합니다

올해 google에서 나온 논문이죠?

시작해 볼게요.

 

누군가는 논문을 읽을 때

왜 굳이 introduction과 related work을 읽냐고 물어봅니다

간단합니다.

trend를 알 수 있고, 놓치고 있는 부분에 대해

찾아볼 수 있는 기회를 마련할 수 있기 때문이죠

 

 

 

역시 Abstract 부터 Related work까지 다루고

다음 파트에서 핵심이 되는 MTV에 대해 다루도로록 하겠습니다

그런데 이글을 읽기 전에

vivit관련 글을 읽고 오시면 더욱 도움이 될 것같아요

2022.05.30 - [AI 논문] - [ 꼼꼼하게 논문 읽기 ] VITVIT : video vision transformer 2

 

Abstract

  vidoe understanding에는 여러 개의 시공간적 해상도에서의 추론이 필요하다고 말하며 글을 시작합니다. 말이 참어려워요. 시공간적 resolution이라.. 이게 무슨 말이냐면 짧은 프레임 단위에서의 미세한 행동 변화 그리고 큰 프레임 단위에서의 background의 특징들을 알아내기 위함이라고 생각하면되요. 짧은 시간 단위의 프레임은 어떤 물체의 행동 변화를 잡아내는 데 적합하겠죠. 왜냐 지속적으로 변하는 어떤 것을 관찰할 수 있을 테니까요. 그리고 느린 프레임에서는 행동 변화가 보다는 주변 환경의 특징을 잡아낼 수 있겠네요. 여튼 설명은 이쯤하고 계속 진행하면, 바로 이어서 transformer architecture가 최고 수준의 성능에 도달하는 성과를 보여주고 있지만, 다른 시공간적 resolution에 대한 모델이 명시적으로 나와 있지 않음을 언급합니다. 그래서 자신들이 다양한 스케일을 고려한 MTV를 선보인다는 말을 하죠. MTV는 N 개의 encoder를 가지고 있고 이 encoder는 lateral 하게 연결되어 있으며 서로 다른 view에 대한 정보를 취득합니다.( 나열적으로 연결되어 있다는 말 ) . 그리고 이것저것 빼보고 추가해보며 하나의 view에대해 보는 것 보다 여러개의 view를 고려하는 것이 더 좋은 성능을 보인다고 말합니다. 여기서 view는 논문 전체를 고려했을 때 다양한 시공간적 resolution과도 일맥 상통하는 것 같아요.  ( 논문을 볼 때 마다 느끼는 것이지만, 논문에서는 항상 자신들이 최고죠 )

 

Introduction

  computer vision task의 양대 산맥( ? )을 언급하며 화두를 여는 데요. CNN과 transformer 입니다. 그리고 vision의 발전 방향이 handcrafted feature를 이용하는 데서 CNN, 최근에는 transformer를 이용하며 하나의 input에 대해 다양한 resoltution을 활용해 분석하고 있다고 말하고 있죠.

  이미지 분야에서는 multiscale processing이 하나의 이미지를 다양한 크기 ( 피라미드 형태 )로 처리한다고 말하고 있는데요 ( ssd나 fpn 등 아이디어만 봐도 알수 있죠 )그러면서 시간적 특성을 다양한 스케일로 다루는 방법에 대해 SlowFast 연구에 대해 말합니다. 두 가지 stream, 즉 slow( low frame )와 Fast( high frame)를 이용해 넓은 범위(?)의 상호 작용( long range interaction )에 대한 모델링을 했다고 말하고 있습니다. ( 이게 해석하기 애매합니다 )

  피라미드 구조를 만들 때, 시공간적 정보가 pooling이나 subsampling 연산으로 인해 부분적으로 소실된다고 말합니다. 그러면서 다시 Slow, Fast에 대해 예를 들어주는 데요. subsample에서 시간적 정보가 손실됨을 말합니다. ( 물론 CNN에서 역시 공간적 정보가 소실되었었죠. ) 그래서 자기들은 피라미드 구조를 이용하지 않는 transformer 기반 모델을 만들었다고 하네요.( 자기들이 만든 모델은 정보 손실이 최소화 된다는 말을 이렇게 어렵게 씁니다 ) 그 모델은 다양한 시간적 문맥 정보를 가지고 있다고 하구요( 이게 아마도 tubelet의 volum에 따라 시간적 정보가 다름을 이용한다는 의미입니다. )

  잠깐 위의 그림을 보면, 같은 vedio input을 서로다른 2개의 tubelet 을 embeding 하는 방식으로 인코더에 넣게 되죠? 이게피라미드 구조를 이용하지 않고 정보의 손실 없이 multi scale의 view를 고려한다는 의미인 겁니다. 그리고 두개의 input 중 volume이 큰 첫 번째에서는 변화가 적은 background와 같은 특징을 문맥적으로 학습하고 volume이 작은 두번째에서는 순간 순간 변화에 대한 정보를 학습한다고 말하고 있습니다.  그리고 input에 따라 다른 encoder를 사용했다고 말하고 있는데요, 배경을 잡는 left input에 대해서는 작고 얕은 층으로 구성하고 미세한 변화를 잡는 encoder는 수용력이 크도록( 깊게 ) 하는 것이 좋았다고 말하고 있네요. 그니까 input마다 처리하는 encoder 역시 다 다르다라는 것을 말하고 있는 겁니다. 

  그 다음에서 역시 자신들은 하나의 input이 simple해서 기존 연구보다 좋다라고 말합니다.( 처리가 간단하니까요 ) 근데 이게 큰 장점이라고 합니다. 기존 연구들은 일반화를 위해 다양한 수의 view를 input넣었지만 자기들은 하나로 했고 다양하게 넣으면 accuracy가 증가하기에 기존 연구보다 좋다라고 말합니다. ( 이번 논문을 통해서 frame 자체가 augmentation이 될 수 있다는 생각이 좀 드네요.. 공간적 특성을 고려할 때는 애매하긴한데..)

Related work

 Evolution of video understanding models

  introduction에서 했던 말을 다시 반복하고 있습니다. hand-crafted feature 에 의존하던 연구가 이미지 net 과 같은 data set과 CNN의 등장으로 기존 방식을 뛰어넘었고 다양한 vision task에 적용되었다는 것을 말하고 있네요. 동시에 video understanding 분야에서는 CNN과 RNN 백본을 활용하게 되었다고 말하고 있구요. 그 뒤 Kinetics datset이 나오고 3D CNN이 인기를 얻게 되었고 속도와 성능 개선을 위한 많은 노력이 있었다고 합니다. 그런데 합성곱은 이웃한 featuremap 에 대해서만 처리할 수 있기 때문에 결과적으로 transformer block 을 CNNS에 넣어 시공간적 특징 중 시간적으로 오래된(?) 정보를 개선할 수 있도록 했다고 하죠. ( 사전 지식이 많이 필요하겠는데요.. 뭐 이 글을 찾아보시는 분들이라면 다 알고 계시겠지만요 그래서 설명 생략할게요 ㅎㅎ귀찮아서가 아님 ). 그러면서 pure transformer가 자연어 처리에서는 굉장한 성공을 보였지만 vision에서는 VIT, VIVIT 이전에 그런 성과가 없었다는 것을 말하네요. 그리고 그 성과는 기존 3D CNN을 뛰어넘는 성과라고 말하며 발전 과정에 대해 마무리 합니다.

  Multiscale processing in computer vision

  Pyramid 구조에 대해 언급하며 시작합니다. 이 구조가 초기 computer vision에 다양하게 활용되었다고 말하고 있스니다. 그리고 이 구조가 CNN structure( 공간적 정보가 네트워가 깊어짐에 따라 감소하지만 풍부한 특징을 포함하는 CNN 구조)에 성공적으로 적용 되었다고 말하고 있네요. 그러면서 downstream task에서 고 해상도( 정보가 소실이 적되 원본 특징을 잘 요약하는 ) output을 생성하는데 많이 사용되었다고 합니다. Multiscale processing은 CNN이 이미지나 비지오의 전체 veiw를 반영하기 위해서 계층구조를 사용해야 되기 때문에 필요하다라고 말하는데요. 이론적으로 transformer는 계층 구조가 필요로 하지 않지만 실제적으로 training data의 양 때문에 multiscale process를 적용하는 것이 효과적이라고 하네요.

 

  자신들의 모델은 피라미드 구조를 사용하는 것이 아니라 다른 view를 cross-view encoder에 직접 넣는 방식이라고 말을하는데요 실험에 따른면 single view 보다 multi view가 성능이 더 좋았다고 합니다. ( accracy/FLOPS 지표에서 ) 그리고 그 이유에 다양한 view를 처리하는 데 있어서 network depth를 늘리는 것보다 병렬적으로 늘리는 것이 성능향상에 더 도움이 되었기 때문이라고 하네요. 그리고 이런 성능 향상은 모델이 커질수록 지속되었다고 합니다. ( huge 모델까지 ) 그리고 이런 결과는 기존 피라미드 구조를 사용해서 parameter가 늘어났을 때는 관찰되지 않았던 결과라고 하구요. 개념적으로는 CNN에서 두 가지 view를 이용한 SlowFast 모델과 유사하다고 합니다. 그러나 다른 프레임을 가져오기보다 tubelets 사이즈를 조정하고 그를 linear projection 했다고 합니다. 그리고 마지막으로 transformer backbone을 사용했을 때 결과를 뛰어넘었다고 하네요. ( 역시 결론은 자신들이 최고였다 )

 

한줄 요약

 - 개념적으로는 transformer에 다양한 스케일을 적용해서 얻을 이점이 없지만 그렇게 적용했더니, 성능이 더 좋더라 ( 다만 기존에는 pyramid 구조를 사용 했다면 자신들은 tubelet을 이용해서 다양한 encoder를 활용했다 )

 

이번 글에서는 related work까지 다뤄봤습니다.

다음 글에서는 모델을 핵심적으로 파고 들어보도록 하겠습니다.

이상 wh였습니다.

 

그리고 이런 논문을 리뷰하고 지속적으로 스터디 나아가 프로젝트를 하는

커뮤니티를 만들까 합니다. 관심있으신 분은 아래 댓글로 남겨주세요!

 

728x90
반응형