티스토리 뷰
[업데이트 2018.04.30 17:10]
여덟번째 요약할 논문은 "Deep Residual Learning for Image Recognition"(https://arxiv.org/pdf/1512.03385.pdf) 입니다. 본 논문에서는 residual learning을 통해 기존의 심층 신경망보다 상당히 더 deep한 신경망에 대해서도 학습을 잘하는것을 보여주고 있습니다. ResNet이라고 불리는 본 논문의 심층 신경망의 경우 152개의 layer로 구성되며, VGGNet 대비 8배나 많은 depth를 가집니다. ILSVRC 2015 image classification 분야에서 top-5 test error 3.57%를 기록하며 우승했습니다. 또한 ImageNet detection/localization, COCO detection/segmentation 분야에서도 1위를 기록하게 됩니다. 실제로 인간이 이미지를 인식 할 때 발생하는 오류율이 약 5%-10%인데, 이것보다 더 좋은 결과를 보여준 놀라운 결과였습니다.
그러나 네트워크의 depth가 깊어지면 쉽게 성능 향상을 할 수 있을 것 같지만, 실제로는 2가지 문제를 유발하게 됩니다.
1. vanishing/exploding gradient 이슈
2. 학습이 어려워지는 이슈(overfitting에 의한 것이 아닌 네트워크 depth가 깊어짐에 따른 training error 증가)
아래 그림1은 빠른 시험 결과 도출을 위해 CIFAR-10 dataset을 사용하여 망 깊이에 따른 오류율을 확인한 결과입니다. 56개의 layer를 가진 경우가 더 오류율이 높은 것을 알 수 있습니다. 또한 overfitting이 아닌 학습 오류 또한 네트워크 depth가 깊어짐에 따라 커지는 것을 볼 수 있습니다.
이러한 degradation 문제를 해결하기 위해 본 논문에서 제안한 방법이 residual learning입니다.
기존에는 H(x)를 출력으로 하는 layer에 대해 weight를 업데이트하였다면,
F(x) = H(x) - x
즉, 출력과 입력간의 차에 대해 학습을 시키면 degradation 문제를 해결 할 수 있다고 제시하고 있습니다. 위의 수식을 정리하면 아래와 같습니다.
H(x) = F(x) + x
입력 x값을 출력값에 더하는 identity mapping을 수행하며, Shortcut Connections라고 불리는 방법입니다. 이렇게 함으로써 추가적인 파라메터가 필요하지 않고, computational complexity가 증가하지 않게 됩니다. Shortcut Connections의 컨셉은 기존 논문중 하나인 GoogLeNet에도 적용되어 있음을 알 수 있습니다. 학습중에 Inception layer에 적용되는 Auxiliary classifier가 그 예입니다.
Shortcut Connections을 통한 identity mapping시 아래와 같이 수식을 정리 할 수 있습니다. 기본적으로 입력 x를 더할 때, F(x)와 차원이 같을 때는 아래와 같이 그냥 더하면 됩니다.
y = F(x) + x // F(x) = W2*relu(W1*x)
만약 F(x)와 x가 차원이 다를 경우, Ws projection matrix를 곱하여 차원을 같게 만든 후 더하게 됩니다.
y = F(x) + Ws*x
본 논문에서는 VGG-19, plain, residual network 이렇게 3가지에 대해 비교하며(Figure 3), 또한 ResNet(이하 residual network)의 경우 depth를 늘리고, Shortcut Connections시 방법 A, B, C에 따라 결과를 비교하고 있습니다. 여기서 중요한 포인트는 기존 VGG-16대비 연산량도 줄어들고, depth가 깊음에도 residual learning을 통해 학습이 더 잘되며, 좋은 성능을 이끌어냈다는 점입니다.
아래 Figure 4는 plain net과 residual net의 training error와 validation error를 비교한 결과로 ResNet이 더 우수한 성능을 보여줌을 알 수 있습니다. (training error의 큰 감소)
최종적으로 ILSVRC 2015 competition에서 ResNet-152 모델을 ensemble한 결과로 top-5 test erro에서 3.57%를 기록하며 우승하게 됩니다.
ResNet-152모델의 경우 "bottleneck" building block 구조(layer가 3개)를 가지고 residual function을 구성해 적용하였습니다. (Figure 5)
학습 및 테스트시 사용한 파라메터들입니다. 기본적으로 Alex Net, VGG Net의 환경을 따라 구현하였습니다.
[학습]
- [256~480] 이미지 사이즈에서 random하게 resize
- resize된 이미지를 다시 224x224 size로 random crop, horizontal filp, per-pixel mean subtracted, standard color augmentation
- batch normalization
- SGD w/ 256 mini-batch size
- learning rate 0.1, error가 plat해질때 마다 1/10 감소
- weight decay 0.0001, momentum 0.9
- dropout 미사용
[테스트]
- 테스트시 10-crop testing, image resize {224, 256, 384, 480, 640}
- Total
- Today
- Yesterday
- Worry
- Mask R-CNN
- sentence test
- ate
- 2D Game
- Memorize
- belief
- Badge
- Sea Bottom
- Physical Simulation
- Jekyll and Hyde
- docker
- project
- #ApacheZeppelin
- #ApacheSpark
- Library
- ILoop Engine
- 도커
- aws #cloudfront
- some time ago
- SSM
- GOD
- Game Engine
- OST
- #REST API
- Meow
- #TensorFlow
- English
- Ragdoll
- #ELK Stack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |