16기 임정준_2주차 Review Paper은 ResNet입니다. VGG보다는 복잡한 구조를 형성하고 있으나, 연산량이 비교적 적고(빠른 학습이 가능) VGG와 함께 최근에도 backbone으로 많이 활용되는 모델입니다. 모델이 나온 당시에도 'Residual Block'이라는, 새로운 관점의 Training을 시도하여 더 깊은 layer들의 학습을 가능하게 했던 Network였습니다. CNN Model의 Depth에 대한 고민을 기반으로 이를 새로운 Optimization을 시도한 ResNet 프레임워크에 대해 알아보겠습니다.
'Deep CNN'이 Image Classification 문제에서 떠오르는 돌파구가 되고 있지만, 그 깊이와 관련되어서 과연 layer들을 더 쌓는 것이 더 좋을까?라는 문제점이 제기된다. 여기서 기울기 소실/폭발 문제가 나오는데, 이는 network의 수렴을 방해하는 기제로 작용한다. 그러나 이는 정규화된 initialization이나 중간에 normalization layer를 추가하여 이를 다룰 수 있다고 한다.
하지만 수렴하기 시작하면 'degradation'이 발생하는데, 이는 network의 깊이가 깊어짐에도 정확도가 포화되어 더 이상 오르지 않고 오히려 급격히 감소하는 것을 의미한다. 이는 overfitting에 의해서 발생되는 것이 아니라, layer들을 추가할 때 더 높은 training-error를 가져온다는 사실에서 기반한다. 즉, 이는 optimize(최적화)가 deep network에서는 잘 일어나고 있지 못하는 것을 의미한다.
--> "Identity Mapping"을 활용하여 문제 해결
말 그대로 'Residual Learning'이란 말 그대로 잔차학습을 의미하는데, 이는 기존의 신경망과는 다른 학습법을 보여준다.
기존 신경망은 H(x)=x가 되도록 학습하였으나, 본 Residual Block에서는 Skip/Shortcut Connection을 통해 output에 x를 더하고 H(x)=F(x)+x 로 정의한다. 즉 F(x)=H(x)-x이며, F(x)=0이 되도록 학습하여 궁극적으로 H(x)=0+x가 되도록 한다. 저자는 이 mapping을 최적화시키는 것이 기존의 network보다 훨씬 쉽다고 가정하였으며, 극단적으로는 이 identity mapping이 최적이라면, residual가 0으로 쉽게 수렴될 수 있음을 시사하였다. 그리고 ImageNet, CIFAR-10과 같은 Dataset을 통해 이러한 가설에 대한 증명을 달아두었다.
본 논문에서의 block은,
y = F (x, {W_i }) + x
x와 y는 각각 input과 output을, 함수 F(x, {W_i})는 학습 대상인 residual mapping으로 정의된다. x와 F의 차원은 동일해야 하지만, 만약 이것이 성립되지 않는 경우(ex. input/output channel 변경), 선형 사영 W_s (Linear projection)을 수행하여 차원을 동일시시킬 수 있다.
y = F (x, {W_i}) + W_s*x
물론 정사각행렬(Square Matrix) W_s를 활용할 수도 있지만, degradation 문제와 경제성을 위하여 W_s는 오직 차원을 동일하게 맞출때만 활용한다.
왼쪽 모델은 Reference로서의 VGG-19, 중간 모델은 residual mapping 적용 이전의 Plain Network, 오른쪽 모델이 적용 이후의 모델이다. 저자는 본 baseline을 VGG에서 영감을 받았으나, VGG network 대비 18% 정도의 FLOPs(3.6 billion)만을 가지고 있다.
그리고 중간 모델인 Plain Network에 기반하여, Shortcut Connection을 삽입한 Network를 구성하였는데, Identity shortcut이 input/output 차원이 같을 때 직접적으로 쓰였으며, 차원이 증가할때는 zero padding(추가 파라미터 X)이나 앞서 언급한 Projection shortcut(W_s)를 활용하여 차원을 매칭시켰다.
Training time을 줄이기 위해, 즉 network의 복잡도를 감소시키고자 2-layers(3 x 3, 3 x 3) stacking 대신, 1 x 1, 3 x 3, 1 x 1 convolutions을 쌓아 하나의 residual function으로 만들었다. 1 x 1은 차원을 축소 및 증가(복구) 시키는 역할을 수행하고, 3 x 3 layer를 남겨 원래 block의 3 x 3 convolution 역할을 수행한다.
다음은 ImageNet을 위한 Architectures를 layer들의 개수에 따라 그 구조를 구분한 것이다.
Bottleneck Design을 기반으로 34-layer를 50-layer architecture와 거의 비슷한 연산량(3.6 * 10^9 vs 3.8*10^9) 수준으로 끌어올린 것을 확인할 수 있다. 더불어, 이 구조를 기반으로 101-layer, 152-layer까지 ResNet의 구조를 끌어올린 것을 확인할 수 있다. 심지어, 152-layer architecture도 VGG network보다 더 적은 연산량을 가지고 있다는 것을 직접적으로 확인할 수 있다.
상기 그래프는 Plain network와 Resnet의 Training Error간 비교인데, Plain Network 대비 ResNet이 더 낮은 Training Error를 보이는 것을 확인할 수 있다. 더불어, Plain Network에서 18-layer보다 34-layer의 Error가 더 높아진 것을 확인할 수 있는데, 이는 논문 전반부에서 언급한 'degradation' 문제를 관찰한 것이라고 할 수 있다. Plain Network에서의 이 최적화 문제가 gradient 소실때문에 일어난 것은 아니라고 판단하는데, Batch Normalization과 함께 학습되었고, 0이 아닌 분산을 가지는 forward propagation이 진행되었기 때문이다. 그럼에도 정확도가 낮아진 것은 분명 기하급수적으로 낮은 수렴 비율이라고 판단하고 추후 연구가 필요하다는 제언을 남겼다.
반면, Residual Network(ResNet)에서는 늘어난 layer 수에 기반하여 Error가 어느정도 잘 감소했다고 판단할 수 있고, 이는 'degradation' 문제를 충분히 잘 다룬 결과라고 설명할 수 있다. 더불어, training error에서의 유의한 감소 수준은 deeper network에서도 잔차 학습의 효율성이 증명되었다고 할 수 있겠다. 또한, 수렴 속도 역시 plain network에 대비하여 더 빠르게 수렴하는 것을 확인할 수 있는데, 이는 Resnet의 Optimization이 더 빠른 수렴을 제공한다는 것을 알 수 있다.
결론적으로, 본 Network는 일반적으로 좋은 성능을 발휘하여 주목할만한 성능 향상을 이끌어냈고, 그 결과 ILSVRC & COCO 2015 competitions: ImageNet detection & localization / COCO detection & segmentation에서 모두 우승한 모델이 되었다.
[2주차 / 문성빈 / 논문리뷰] Deep Residual Learning for Image Recognition (1) | 2023.01.31 |
---|---|
[3주차 / 임정준 / 논문 리뷰] Fast R-CNN (0) | 2023.01.31 |
[2주차 / 진유석 / 논문리뷰] Deep Residual Learning for Image Recognition (0) | 2023.01.31 |
[2주차 / 임채명 / 논문리뷰] Deep Residual Learning for Image Recognition (0) | 2023.01.31 |
[0주차 / 이름 / 논문리뷰] 논문명 (0) | 2023.01.29 |
댓글 영역