이번에 읽어볼 논문은 DPN, Dual Path Networks 입니다. DPN은 ILSVRC Object Localization task에서 1위를 차지한 모델입니다.
DPN은 DenseNet과 ResNet의 장점을 활용한 모델입니다. Dual Path Network 이름 그대로 2개의 path로 구성되어 있습니다. one path는 residual network, 다른 path는 dense network입니다.
ResNet은 residual path를 활용해서 레이어의 입력값을 출력값에 더해줍니다. 이 방식은 feature reuse 효과가 있습니다. 이전 레이어의 출력값이 소실되지 않고 계속해서 활용되기 때문입니다. 위 그림을 보면 shortcut connection을 사용해 이전 레이어들의 출력값을 계속 사용합니다. 논문에서는 이것을 파라미터를 공유한다고 말합니다. 이처럼 파라미터를 공유하게 되면 feature reuse 효과가 생기는 것입니다.
DenseNet은 densely connected path를 활용해서 이전 레이어의 피쳐맵을 그 다음 모든 레이어의 피쳐맵에 연결합니다. 각 레이어는 이전 레이어의 피쳐맵을 활용해서 특징을 추출합니다. 따라서 새로운 특징을 찾을 수 있습니다. 이 효과를 exploring new feature 라고 합니다. 위 그림을 보면 레이어의 피쳐맵들이 연결되면서 densely connected path가 점점 두꺼워집니다. 논문에서는 이것을 파라미터가 공유되지 않는다고 합니다. 파라미터를 공유하지 않으므로 항상 새로운 값을 활용해 특징을 추출한다고 생각할 수 있습니다. 따라서 exploring new feature 효과가 발생합니다.
다시 정리하면, Dual Path 구조를 활용해 ResNet과 DenseNet의 장점을 활용한 모델이 DPN입니다. 따라서 DPN은 feature reuse, exploring new feature 효과를 활용하여 성능을 끌어올렸다고 생각해볼 수 있습니다. 어떤 구조로 ResNet과 DenseNet을 결합했는지 살펴보겠습니다.
Dual Path Network, DPN
ResNet과 DenseNet을 결합했습니다. 그림만 봐서는 이해하기 어려운데요. 같이 한번 살펴보도록 하겠습니다.
DPN은 backbone으로 residual network(ResNet, ResNext)를 사용합니다. 그리고 residual network은 bottleneck 구조의 residual unit로 구성됩니다.
backbone을 ResNext로 사용한다는 가정하에 3x3 conv에서 group convolution을 수행합니다. 그리고 마지막 1x1conv 에서 출력값은 두 파트로 나눠집니다. 한 파트는 residual path로 더해지고, 한 파트는 densly connected path에 연결됩니다. 예를 들어, 마지막 1x1 conv가 256+k개의 피쳐맵을 생성했으면, 256개 채널은 residual path로, k개 채널은 densly connected path로 연결되는 것입니다. k는 하이퍼파라미터입니다. 따라서 bottleneck 구조를 거칠 때마다, k만큼 채널수가 확장되는 것입니다. 아래 표를 확인해보겠습니다.
Dual Path를 활용하면 높은 정확도, 작은 모델 크기, 적은 계산량, 적은 GPU memoty 점유량을 얻을 수 있습니다.
Comparison with State-of-the-art
최신 모델과의 성능 비교입니다. classification 분야 뿐만 아니라 object detection, semantic segmentation 분야에서도 좋은 성능을 나타냅니다.
Classification
Object Detection
Semantic segmentation
참고 자료와 그림 출처
[2] towardsdatascience.com/review-dpn-dual-path-networks-image-classification-d0135dce8817