-
Deep Residual Learning for Image Recognition머신러닝, 딥러닝 공부 2020. 1. 31. 14:20반응형
Abstract
Deep neural networks의 단점은 그 깊이가 깊어질수록 더 학습하기 어렵다는 것이다. ResNet은 이전의 학습 방법들과 달리 residual(어떤 과정이 끝나고 난 뒤에 남은, 잔여[잔류]의)을 학습하는 방법으로 이러한 문제를 해결했다. 논문에서는 residual networks가 optimize하기 쉽고, 더 깊은 모델로 부터 쉽게 accuracy를 얻을 수 있다는 것을 증명했다. ResNet은 152 layer를 사용하여 ILSVRC 2015에서 3.57%의 error rate을 기록했다.
Introduction
최근까지의 network들은 depth가 중요한 요소로 여겨졌고, 더 깊은 모델일수록 더 좋은 성능이 나온다고 여겨졌다. 하지만 gradient vanishing/exploding의 문제로 depth가 증가하면 일정 깊이 이상에서 오히려 성능이 떨어지는 degradation(저하, 악화) 현상을 보인다. 이러한 degradation 문제는 overfitting이 원인이 아니라 depth가 깊어짐에 따라 training-error가 높아진다는 것이다. 아래 그림을 참고하자.
논문에서는 degradation 문제를 해결하기 위해 deep residual learning 이라는 방법을 제시한다. 전체 layer들 중에서 직접 desired underlying mapping (H(x))을 학습 하게하는것 보단, residual mapping (F(x) = H(x) - x)을 학습하는 것이 더 효과적 이라는 것이다.
기존의 neural network의 학습 방식은 입력(x)을 타겟값(y)로 맵핑하는 함수 H(x)를 찾는 것이었다. 즉 H(x) - y를 최소화 하는 방향으로 학습을 진행한다. ResNet에서는 입력과 출력의 잔차를 F(x) = H(x) - x라고 정의를 하고 결과적으로 출력 H(x) = F(x) + x가 된다. 이렇게 네트워크의 입력과 출력이 더해진 것을 다음 레이러의 입력으로 사용하는 것을 skip connection 이라고 한다. 기존의 neural network는 H(x)가 어떻게든 정답과 같게 만드는 것이 목적이었다면, 이제 입력과 출력 사이의 잔차를 학습하는 것이다.
ResNet은 ImageNet을 통해 degradation문제와 모델 평가에 대해 검증하였다. 첫 번째로, ResNet의 deep한 model은 optimize하기 쉽지만, 그 반대인 plain networks는 depth가 깊어짐에 따라 높은 training error을 보였다. 그리고 두 번째로, deep한 residual networks는 depth가 깊어져도 이전의 plain networks 보다 쉽게 accuracy를 도출해낼 수있었다.
Deep Residual Learning
1. Residual Learning
앞선 내용의 중복이다.
2. Identity Mapping by Shortcuts
위 그림을 수식으로 표현하면
또한
이다. 여기서 sigma는 ReLU이다. 문제는 F와 x의 dimension이 다를수도 있다는 점인데(input, output channel 개수가 변경 되어) 이 경우 linear projection을 통해 해결한다. 수식으로 표현하면 아래와 같다.
3. Network Architectures
먼저 Plain Network는 가운데 그림과 같이 단순히 layers를 쌓은 networt이다. conv layers는 거의 3X3 filters를 가지고 있고, 다음의 간단한 규칙을 따른다.
- 각 layers는 같은 크기의 output feature map을 가지고, 같은 수의 filters를 갖는다.
- 만약 feature map size가 반으로 줄어들었다면, time-complexity를 유지하기 위해 filters의 수는 두 배가 된다.
downsampling은 단순히 stride가 2인 conv layers를 통과시켰으며 global average pooling과 1000-fully-connected layer 와 softmax로 구성된다. 이 모델은 VGG nets보다 filters의 수가 적고 lower complexity를 가진다는 것이 장점이다.
다음으로 Residual Network는 Plain network에서 shortcut connections를 추가한 것이다. input과 output의 차원이 같다면 (그림에서 실선 shortcut 부분) identity shortcuts는 바로 사용될 수 있다. 차원이 다르다면 (그림에서 점선 shortcut 부분) 다음 두 가지 경우를 고려한다.
- shortcut은 계속 identity mapping을 하고, 차원을 증가시키기위해 zero-padding을 사용한다. 이때 Extra parameter는 필요하지 않다.
- projection shortcut을 할 때 (식에서 Ws) 차원을 맞추기 위해 1x1 conv fiter를 사용한다.
4. Implementation
image는 [256, 480] 사이에서 scale을 증대시키기위해 randomly sampled 되었다. 이미지 각각에 평균 픽셀값을 빼주는 Per-pixel mean substracted와 함께, 224x224 crop이 이미지에 대하여 randomly sampled 되었다. standard color augmentation이 사용되었고, 각각의 convolution 다음과 activation 이전에 Batch normalization이 적용되었다.
mini batch는 256 크기이며 SGD를 사용했다. (weight decay = 0.0001, momentum = 0.9를 사용했고, dropout을 쓰지 않았다.) learning rate는 0.1에서 시작해서 error가 local minimum에 빠질 때마다 1/10 감소시켰다.
Experiments
ImageNet Classification
우선 Plain Networks에서 34-layer의 validation error가 18-layer의 error보다 높게 나왔다. 여기서 degradation의 문제를 관측된다. Residual Networks의 경우 18, 34-layer를 평가했다. 결과적으로 layer가 깊어질수록 error가 2.8% 줄어들었다. 그래프에서 training error가 줄어들고 있고, validiation data에 대해 더 일반화를 잘하고 있다는 것을 알 수 있다. 이로써 degradation 문제를 잘 해결했다고 말할 수 있다.
References
반응형'머신러닝, 딥러닝 공부' 카테고리의 다른 글
Accelerating the Super-Resolution Convolutional Neural Network (0) 2020.02.16 Spatial Transformer Networks (0) 2020.02.08 Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (0) 2020.02.07 Learning Deep Features for Discriminative Localization (0) 2020.02.02 VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION (0) 2020.01.30