[DL] Feature Pyramid Network 논문 리뷰
이번 포스팅에서는 Feature Pyramid Network에 대해 살펴보도록 하겠습니다. 사실 EfficientDet 논문을 읽어보면서 FPN와 관련된 내용들이 있어 먼저 읽어봐야겠다고 생각했습니다. 실제로 FPN이 많은 Object Detection 모델에 영향을 끼친만큼 공부할 필요가 있을 것 같습니다.
이번 포스팅에서는 Feature Pyramid Network에 대해 살펴보도록 하겠습니다. 사실 EfficientDet 논문을 읽어보면서 FPN와 관련된 내용들이 있어 먼저 읽어봐야겠다고 생각했습니다. 실제로 FPN이 많은 Object Detection 모델에 영향을 끼친만큼 공부할 필요가 있을 것 같습니다.
지금까지 20편이 넘는 컴퓨터 비전 분야 딥러닝 논문들을 읽어오면서 CNN 모델 구조의 흐름을 알게 되었습니다. 처음에는 더 깊은 모델을 추구하였으며, 이후에는 더 넓은 모델, 보다 최근에는 더 가벼운 모델을 설계하는 방향으로 연구의 흐름이 진행되었습니다. 하지만 더 깊고, 더 넓으며, (제가 읽은 논문 중에는 없었지만)더 높은 이미지 해상도를 입력값으로 가지는 동시에 더 가벼운 방향으로 모델 설계를 고려한 경우는 없었습니다. 오늘 포스팅에서는 앞서 언급한 모델의 속성을 모두 추구한 EfficientNet모델에 대해 살펴보도록 하겠습니다. 현재 ImageNet Dataset 분류 성능 랭킹에서 최상위권은 모두 EfficientNet의 변주 모델이 차지하고 있을 정도로 좋은 성능을 보이고 있습니다.
이번 포스팅에서는 YOLO v3 모델에 대해 살펴보도록 하겠습니다. YOLO v2가 이전 버전에 비해 혁신적인 변화를 주었다면 v3 모델은 v2를 더 나은 방향으로 세말하게 수정하는 식으로 개선되었습니다. 논문도 짧아서 읽기 좋았습니다따라서 YOLO v3가 v2를 어떤 식으로 조정했는지를 중심으로 살펴보도록 하겠습니다.
이번 포스팅에서는 YOLO의 두 번째 버전인 YOLO9000에 대해 살펴보도록 하겠습니다. 이번 논문은 개인적으로 상당히 읽기 쉽게 구성되었다고 생각합니다. 논문의 제목은 YOLO9000:Better, Faster, Stronger으로 이전 버전에 비해 개선한 점을 Better, Faster, Stronger이라는 세 가지 측면에서 살펴본다는 점이 흥미로웠습니다(내용은 어려웠습니다ㅠ). 이전 버전에 비해 성능이 크게 향상한YOLO9000의 개선점들에 대해 살펴보겠습니다.
이번 포스팅에서는 최초의 실시간 객체 탐지 모델인 SSD(Single Shot MultiBox Detector)에 대해 살펴보도록 하겠습니다. SSD모델은 bounding box proposal 과정을 제거하고, 뒤따라오는 feature 추출 과정을 제거함으로서 속도 면에서 개선을 이뤄냈습니다.
R-CNN 계열의 Object Detection 모델들은 객체가 있는 위치를 bounding box를 통해 예측하고 범주를 예측하는 과정이 분리된 과정을 통해 수행됩니다. 이러한 이유로 R-CNN 계열의 모델은 two-stage detector라고 불립니다. 이러한 two-stage detector의 경우 탐지 성능은 뛰어나지만 속도가 느리다는 단점이 있습니다. 이번 포스팅에서는 detection 속도 문제를 해결한 최초의 one stage detctor인 YOLO v1 모델에 대해 살펴보도록 하겠습니다.
Fast R-CNN은 ROI Pooling layer, multi-task loss 사용으로 single-stage detector 모델로서의 모습을 갖췄지만 여전히 region proposal 작업을 네트워크와 별도로 수행합니다. 이번 포스팅에서는 이러한 문제를 해결하고 진정한 single stage detector의 면모를 갖춘 Faster R-CNN 모델에 대해 살펴보도록 하겠습니다.
Fast R-CNN은 R-CNN에 이은 two-stage detection 계열의 모델입니다. 하지만 네트워크의 구조 는 질적인 측면에서 크게 달라집니다. 이를 통해 Fast R-CNN은 성능 및 속도 측면에서 기존의 알고리즘을 크게 웃도는 모습을 보입니다. Fast R-CNN 논문을 통해 개선됨 점들을 자세히 살펴보도록 하겠습니다.
RCNN은 Object detection에 딥러닝을 적용하면서 기존 방식보다 성능 면에서 월등한 결과를 보였습니다. 그럼에도 불구하고 inference와 학습 시 지나지게 많은 시간을 소요한다는 단점을 가지고 있습니다. 이번 포스팅에서는 RCNN이 가지는 문제를 해결하고 이후 등장하는 Fast RCNN 모델에 큰 영향을 끼친 SPPNet에 대해 살펴보도록 하겠습니다.
과거 Object detection 작업을 위해 이미지의 feature를 통계학적으로 분석하여 객체를 탐지하는 SIFT, HOG 등의 방식을 사용했습니다. 하지만 하드웨어 성능의 향상과 CNN 모델의 발견으로 Object detection 분야에 딥러닝을 적용할 수 있게 되었습니다. 이번 포스팅에서는 Object detection에 딥러닝을 적용하여 유의미한 성과를 보인 RCNN 모델에 대해 살펴보도록 하겠습니다.
최근 컴퓨터 비전 분야에서는 이미지를 분류하는 것을 넘어 이미지의 객체를 탐지하는 Object detection에 대한 연구가 활발히 진행되고 있습니다. Object detection은 자율 주행차, 얼굴 및 보행자 검출, 영상 복구 등 다양한 분야에서 활용되고 있습니다. 저도 Object detection에 관심을 가져 관련 논문을 읽어보고자 했으나, 이미지 분류 분야와는 다른 문제 정의, 해결 방법, 그리고 평가 방식의 차이를 이해하지 못해 좌절했습니다… 그래서 관련 논문을 본격적으로 살펴보기에 앞서 Object detection의 정의와 평가 방법 등에 대해 공부한 내용을 정리해보았습니다.
최근 핸드폰, 자율주행차 등 하드웨어에서 딥러닝을 사용하기 위한 모델의 경량화 연구가 활발히 진행되고 있습니다. 모델 경량화를 위해 모델 구조 변경, Weight Pruning, Quantization 등과 같은 방법이 사용되고 있습니다. 이번 포스팅에서는 지난 MobileNet와 유사하게 효율적인 Convolution filter를 설계하여 경량화시킨 모델인 ShuffleNet에 대해 살펴보도록 하겠습니다.
신경망 설계 초기의 트렌드는 주로 네트워크를 더 깊고 복잡하게 만들어 더 높은 정확도를 획득하는 것이었습니다. 하지만 성능 위주의 발전 방향은 네트워크의 실행 시간이나 용량 측면에서의 효율을 의미하지는 않습니다. 현실에서는 로보틱스, 자율 주행차, AR 등의 어플리케이션은 제한된 플랫폼과 용량 내에서 주어진 시간 내에 실행되어야만 하지만 기존 네트워크는 지나치게 무겁거나 지연 시간이 걸린다는 문제가 있습니다. 이러한 문제를 해결한 MobileNet에 대해 살펴보도록 하겠습니다.
신경망 연구 초창기에는 네트워크를 더 깊게 설계하는 방법에 초점을 맞췄습니다. 이후 Wide ResNet, ResNext 등의 논문이 발표되면서 네트워크의 깊이뿐만 아니라 넓이, 혹은 cardinality와 같이 폭을 늘리는 신경망 설계 방식이 주류가 되었습니다. 이후 2016년에는 layer와 layer 사이를 촘촘하게 연결하여 정보 전달을 원활하게 하는 새로운 네트워크 설계 방식인 DenseNet이 등장합니다. Densely Connected Convolutional Networks논문을 통해 DenseNet에 대해 자세히 살펴보도록 하겠습니다.
ResNet 모델까지 딥러닝 네트워크는 주로 어떤 식으로 더 깊게 layer를 쌓을 수 있는지에 초점을 맞췄습니다. 이러한 연구 현황에서 깊이보다 네트워크의 넓이에 집중한 Wide ResNet이라는 새로운 네트워크가 등장합니다. Wide ResNet은 네트워크의 넓이를 늘림으로서 기존의 깊이 위주의 네트워크보다 더 좋은 성능을 보입니다. 그럼 Wide ResNet 논문 Wide Residual Networks을 살펴보도록 하겠습니다.
기존의 컴퓨터 비전 분야의 딥러닝 연구는 주로 이미지의 분류(Classification), 탐지(Detection), 분할(Segmentation)에 집중하여 이뤄졌습니다. 하지만 현재는 위의 세 분야와 더불어 이미지 생성(Generation) 에 대한 연구가 활발히 진행되고 있습니다. 이전에도 이미지 생성에 대한 연구가 진행되었지만 GAN 등장 이후로 이미지 생성에 대한 관심이 폭발적으로 증가하였습니다. GAN은 모델이 학습이 아닌 경쟁을 통해 이미지를 만들어내는 개념을 통해 이전의 방식보다 좋은 성능을 보여주고 있습니다. 저도 GAN에 대해 기본적인 부분에 대해서는 알고 있었지만(경찰과 위조 화폐범의 예시 정도;) 보다 심도 있는 작동 원리를 파악하고자 GAN 논문인 Generative Adversarial Nets에 대해 살펴보았습니다.
모델의 구조가 복잡해지면서 지정해줘야 하는 하이퍼 파라미터 수(filter size, channel. stride 등등)가 증가했고 이에 따라 모델을 설계하는 작업이 어려워졌습니다. ResNext 모델은 cardinality라는 새로운 dimension을 활용하여 하이퍼 파라미터 작업을 단순화시킵니다. 뿐만 아니라 기존 모델보다 더 좋은 성능을 보입니다. Aggregated Residual Transformations for Deep Neural Networks 논문을 통해 ResNext 모델의 구조에 대해 살펴보도록 하겠습니다.(Wide ResNet에 대한 논문 리뷰를 먼저 읽어보고 오시면 좋을 것 같습니다!)
최근까지 CNN 연구는 주로 이미지 인식의 정확도를 높히는 방법에 집중하였습니다. 하지만 이러한 연구 결과를 실생활에서 적용하기 위해서는 모델의 성능만큼이나 모델의 크기 역시 중요합니다. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size 논문에서는 SqueezeNet 모델을 통한 모델 경량화와 그 이점에 대해 설명합니다.
일반적으로 신경망이 깊어질수록 입력 데이터에 대한 보다 높은 수준의 특징을 학습할 수 있을 것이라 알려져있습니다. 하지만 실제 연구 결과 신경망이 깊어져도 training error가 줄어들지 않는 degradation 문제가 발생했습니다. Resnet은 이에 대한 해답을 훌륭하게 제시합니다. Resnet은 image classificatioin 분야는 물론 image detection 분야에도 영향을 끼치는 중요한 모델입니다. 이에 대해 심도 있게 살펴보고자 관련 논문 2편을 살펴보고 정리해보았습니다.
이번 글에서는 Image classification 분야에서 활용되는 CNN 모델들에 대해 살펴보도록 하겠습니다. 발전이 빠른 딥러닝 분야에서 5년 이상 된 오래된 모델들은 실용적이지는 않다고 생각합니다. 하지만 모델의 발전 과정을 살펴봄으로써 현재 활용되고 있는 모델에 대한 이해를 도모하고, 개선할 점을 파악할 수 있다고 생각합니다. 따라서 각 모델의 구조를 살펴보기보다는 각 모델이 신경망 설계에 기여한 점을 중점으로 살펴보고자 합니다.