본문 바로가기

AI_Paper/Vision

ResNet 논문리뷰

- Image Classification 기초 논문 

[ 목차 ] 

- Abstract 

- Introduction

- Deep Rsidual Learning

- Experiments

- Deeper Bottleneck Architecture

 

- Abstract 

( image classification ILSVRC 2015 1st달성 )

( ImageNet detection COCO 2015 1st달성 )

( ImageNet localization COCO 2015 1st달성 )

( ImageNet segmentation COCO 2015 1st달성 )

neural network의 layer의 depth가 깊어질수록 학습하기 어렵다(Over fitting, graient 소멸, parameter 증가 등). 층이 깊은 neural network의 학습을 용이하게 하기 위해 residual learning기법을 발표했다. 

Residual networks는 최적화 시키기 더 쉽고, 상당히 깊이가 증가하더라도 높은 정확도를 얻을 수 있다.

- Introduction

최근 network의 layer의 depth가 성능향상의 중요한 증거가 되는 것이 확인되고 있다.

단순히 layer의 증가로 성능 향상을 볼 수 있을까??

[ 그림 1 ] Layer의 깊이에 따른 error rate

-> 아니다. 위 [ 그림 1 ]를 볼 경우 더 깊은 layer를 가진 모델이 더 낮은 정확도를 가짐을 보인다.

( Gradient vanishing/exploding 발생으로 인해 or overfitting의 발생으로 인해 )

 

우리는 기존 layer mapping 방식이 아닌 residual mapping 방식을 통해 layer를 mapping시켜보았다.

[ 그림 2 ] Residual Block

위 [ 그림 2 ]와 같이 x identity값을 마지막에 추가 전달함으로써 계산의 복잡성은 늘리지 않고 SGD를 이용한 back-propagation방식도 여전히 사용할 수 있도록 mapping하였다.

 

실제로 ImageNet, Cifar10데이터셋에서 실험을 통해 기존 네트워크보다 최적화하기 쉽고, 더 좋은 성능(특히 layer가 깊어질수록)을 보였다. 2015 다양한 image분야 대회 SOTA달성을 하였다.

- Deep Residual Learning

[ 그림 3 ] Network Architectures

( doted shortcuts -> increase the dimensions)

왼쪽 모델 : VGG-19 model

가운데 모델 : plain network (34 parameter layer) 

오른쪽 모델 : residual network (34 parameter layers)

 

( 실험 환경 : 논문 참고 )

 

- Experiment

[ 그림 4 ] Plain-network(18,34) / ResNet(18,34) error rate 비교

( 기본 모델 구조는 plain network와 residual network가 동일하나 3x3 filter에 shortcut connection이 추가되었다. 추가적인 parameter 증가 없이) 

-> 실험 결과를 통해 얻은 정보 <- 

1. Plain-network에서 layer를 늘렸음에도 불구하고 error rate가 증가하는 반면, ResNet에서는 layer의 depth를 늘려도 error rate가 감소하였다. 즉 ResNet에서는 증가된 깊이에서 더 높은 정확도를 보임을 확인했다.

 

2. plain network보다 좋은 성능을 보였다.

 

3. (plain,residual)18-layer를 이용한 network 모두 비교적 정확한데 ResNet이 더 빨리 수렴함을 보였다.  즉 Resnet이 초기단계에서 더 빠른 수렴을 제공한다.

 

- Deeper Bottleneck Architectures

[ 그림 5 Bottleneck Architecture ]

본 논문에서는 기존의 왼쪽 residual function을 오른쪽 그림과 같이 bottleneck design으로 변경하였다.  1x1, 3x3 convolution layer를 이용하였다. 

1x1 convolution layer는 dimension을 줄이고 증가시키는 역할을 한다. 3x3 layer가 더 작은 입출력 치수를 가진 bottleneck이 된다.

왼쪽, 오른쪽 설계는 유사한 시간 복잡성(연산량)을 가진다.

 

50-layer ResNet : 기존의 34-layer ResNet에서 3-layer bottleneck block으로 변경시킴

101-layer ResNet, 152-layer ResNet : 50-layer Resnet에서 3-layer block을 추가적으로 붙혀 만들었다. 152-ResNet에서 깊이가 상당히 증가했지만 기존 VGG-16net보다도 파라미터수가 적다.

 

[ 그림 6 ResNet과 비교군 model error rate ]

- ResNet에서 깊이가 증가할수록 점점 더 error rate가 감소함을 확인할 수 있다.

 

그렇다면 ResNet의 깊이를 무한대로 늘리면 성능이 계속 좋아지지 않을까?? 

-> overfitting의 발생으로 인해 성능이 오히려 안좋아지는 경우가 발생한다.

 

 

 

'AI_Paper > Vision' 카테고리의 다른 글

UNETR 논문리뷰  (0) 2022.11.25
Mask R-CNN 논문리뷰  (0) 2022.02.25
LeNet 논문리뷰  (0) 2022.02.09