방학 세션/CV

[2주차 / 문성빈 / 논문리뷰] Deep Residual Learning for Image Recognition

Brian Moon 2023. 1. 31. 23:39

💡 논문링크

Deep Residual Learning for Image Recognition

 

Deep Residual Learning for Image Recognition

Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with

arxiv.org

0. Depth of Layer

Feature의 level은 stacked layer의 깊이로 풍부해지는데, 과연 layer를 깊이 쌓을수록 더 쉽게 학습하는지에 대한 궁금증이 발생합니다.

실제로 ResNet의 출발점은 이것입니다. Shallow한 model이 있고, 여기에 Layer를 더 쌓은 deep한 model이 있다고 할 때, deep model은 shallow model을 포함하니까 shallow model 이상의 성능이 나와야 한다고 생각할 수 있습니다. 그러나 실제로 실험을 해보면 그렇지 않을 결과가 나옵니다. 이는 plain network가 점점 deep해질 수록 gradient vanishing, exploding problems가 발생하기 때문입니다. 이를 해결하기 위해 normalization layer를 추가하는 방법 등이 도입되었지만, 이 또한 degradation problem을 발생시킵니다.

Deep model이 shallow model만큼의 성능을 확보하려면 이미 학습된 부분을 identity mapping으로 다음 layer에 전달한다면 최소한 shallow model만큼의 성능은 확보할 수 있을 것입니다. 이러한 방법에서 시작한 것이 Resnet입니다.

1. Skip Connection in Residual Learning

기존의 neural network들은 H(x) = x 가 되도록 학습을 진행하였습니다. 하지만 ResNet에서는 Skip connection에 의해 output에 x를 더하여 H(x) = F(x) + x로 정의하여 F(x) = 0이 되도록 학습을 진행합니다. 이 때 미분을 하면 더해진 x값이 1이 되어 Gradient vanishing problem을 해결해줍니다. 또한 더해진 x값으로 인해 더 깊은 레이어에서도 작은 변화가 검출될 수 있다는 말을 의미하기도 합니다.

Gradient vanishing problem이 해결되면 정확도가 감소되지 않고 layer를 더 깊게 쌓을 수 있기 때문에 더 좋은 신경망을 구축할 수 있습니다.

2. ResNet Architecture

ResNet의 Architecture는 아래와 같습니다.

맨 오른쪽 구조가 34-layer residual network(ResNet)이며, plain network에 skip/short connection이 추가된 구조입니다.

Skip/Short connection을 추가하기 위해서 위에서 언급했듯이 더해지는 값 x와 Output의 dimension이 같아야합니다. 이에 ResNet에서 입력 차원이 출력 차원보다 작을 때 Skip/Short connection을 사용하는데, 그 종류는 아래와 같습니다.

  1. Shortcut은 증가하는 Dimension에 대해 추가적으로 zero padding을 적용하여 Identity mapping을 수행합니다.
  2. Dimension이 증가할 때만 projection shortcut을 사용하여 다른 shortcut은 identity로 만드는 것입니다.
  3. 모든 shortcut이 projection을 사용하는 것입니다.

3. Bottleneck Design

1x1 conv layers가 오른쪽 그림과 같이 신경망의 시작과 끝에 추가되며 이는 성능은 감소시키지 않지만, parameter의 수를 감소시킵니다.

Bottleneck design으로 연산량을 감소시켜 34-layer가 50-layer가 되고, 더 깊은 신경망이 되었습니다.

 

4. Experiments

실제로 plain network와 성능을 비교해보면, ResNet이 더 높은 성능을 지닙니다. 이는 gradient vanishing problem때문이라고 생각할 수 있지만, plain network가 batch norm을 사용하고, 성능 또한 준수하기 때문에 degradation problem이라는 것이라고 예측하는 것이 더 합리적입니다. ResNet에서는 더 많은 layer를 사용하였을 때 더 뛰어난 성능을 보이므로 degradation problem이 해결되었다고 볼 수 있습니다.

5. Conclusion

ResNet은 Residual Learning, Skip/Shortcut connection을 통해 degradation 문제를 해결하고 더 deep한 network를 효과적으로 학습시킬 수 있다는 점에서 충분히 의미가 있는 논문입니다.

 

 

참고자료

KUBIG 2023 Winter CV Week 2

[논문 읽기] ResNet(2015) 리뷰

콩코딩 : 네이버 블로그

Deep Residual Learning for Image Recognition