[논문 리뷰] ResNet : deep residual learning for image recognition
Machine Learning/Deep Learning 논문 2021. 10. 13. 21:08반응형
ResNet : deep residual learning for image recognition
세계적인 딥러닝 연구자인 Kaiming He 님이 작성하였고, Computer Vision 역사의 한 획을 그은 논문인 ResNet을 간략히 알아보자.
연구의 배경
- 컴퓨터 비전 분야에 있어서, 깊은 네트워크는 이미지의 다양한 Feature를 학습할 수 있다는 점에서, 매우 중요한 일이라고 평가받는다.
- 하지만, 2015년 당시, VGG16과 VGG34를 CIFAR 10 데이터셋에서 학습시켰을 때, 오히려 VGG 34가 더 깊은 구조를 가지고 있음에도 불구하고 정확도가 떨어지는 현상이 관측되었다.
- 원래 네트워크가 깊어질 수록, Gradient Vanishing, 오버피팅등 다양한 Degradation이 발생하지만, 저자가 직접 parameter들을 추적하며 실험한 결과, 이는 단순히 Gradient Vanishing과 오버피팅으로 인한 문제가 아닌, Convergence Rate가 낮아서 발생하는 문제로 정의했다. 즉 Global Optima로 수렴하는 속도(학습 진도)가 너무 느리다는 것이다.
- 본 논문에서는, Layer가 깊어져도 학습이 잘 진행될 수 있도록 하는 Residual Block 개념을 제시한다.
Residual Block
- H(X)를 한번에 구하는것이 너무 어려우니, F(x) = H(x) - x를 만족하는 F(x)를 학습한다.
- 입력값 x를 identitiy mapping으로 사용하므로, 추가적인 파라미터나 계산 복잡도 증가가 발생하지 않는다.
- 만약 x가 optimal한 identity mapping이라면, F(x)의 값이 0에 가깝게 수렴하게 되어, VGG-16과 VGG-34에서 나타난 현상처럼, 적어도 깊은 레이어가 얕은 레이어 구조보다 Error가 더 큰 상황은 방지할 수 있을 것이라는 가정에서 고안되었다.
- 각각의 블록에서 y = F(x, w_i) + w_s*x 로 계산
- 만약 identity의 차원이 다르다면, w_s를 통해 Linear Projection하여 더해준다.
BottleNeck Block
- ResNet50 이후의 깊은 모델에서 사용되는 블록이다.
- 1x1, 3x3, 1x1과 같은 형태의 컨볼루션 레이어를 통해, 데이터의 차원을 줄이고, 연산량은 낮으면서 정보를 효과적으로 전달할 수 있도록 하는 구조이다.
- 이를 통해 기존 SOTA였던 HighWay나 VGG-16/19보다 더 높은 정확성을 가지면서 오히려 FLOPs는 낮은 결과를 얻어낼 수 있었다.
실험 결과
- 실험 결과, 위와 같이, 기존 VGG-Like 아키텍쳐로 18레이어와 34레이어를 쌓았을 때는 오히려 plain-34에서 정확도가 낮아지는 경향성을 보였다.
- 그러나, ResNet의 경우, Layer가 깊어질 수록 효율적으로 학습이 진행되고, 에러율이 줄어들며 점점 더 정확해지는 특성을 확인할 수 있다.
반응형
'Machine Learning > Deep Learning 논문' 카테고리의 다른 글
[논문 리뷰] Attention Is All You Need(Transformer) (0) | 2021.12.12 |
---|---|
[논문 구현] Pytorch 기반 ResNeXt 구현 및 CIFAR10 실험 (0) | 2021.10.18 |
[논문 리뷰] ResNeXt : Aggregated Residual Transformations for Deep Neural Networks (0) | 2021.10.18 |
[논문 구현] Pytorch 기반 VGG 구현 및 CIFAR10 실험 (3) | 2021.10.16 |
[논문 구현] Pytorch 기반 ResNet 구현 및 CIFAR10 실험 (0) | 2021.10.14 |