[GD] 1. ResNet의 구조와 딥러닝 논문읽기 📜

resume_e·2022년 9월 22일
0

GoingDeeper

목록 보기
1/1

본 게시물은 모두의연구소 AIFFEL 컨텐츠를 이해한 내용을 바탕으로 정리한 내용입니다.
게시물 내용 저작권은 모두의연구소에 있음을 알려드립니다.

오늘의 학습내용

  1. 딥러닝 논문 구조
  2. ResNet의 핵심 개념과 그 효과
  3. ResNet 이후 시도
  4. 모델 최적화하기

0. Prologue

  • 딥러닝 논문 구조 파악하자! 대표적인 딥러닝 네트워크 구조 알자!
  • ResNet 복기
  • 새로운 시도들

1. 딥러닝 논문 구조

1) ResNet 논문 읽기

ResNet 논문을 토대로 아래 영상을 함께 보면서 이해하자!

(영상요약)
ResNet의 가장 큰 특징은 Skip Connection(short cut)입니다.
-> 한 층의 활성값을 가지고 훨씬 깊은 층에 적용하는 방식
-> 100개 넘는 깊이의 신경망을 학습할 수 있게 해줌

또한 Skip Connection은 Residual Block 을 가지고 있습니다.
각각의 Residual Block에서는 short cut을 만들고

신경망의 더 깊은 곳으로 정보를 보낼 수 있게 됩니다.

이러한 Residual Block들을 쌓아서 깊은 신경망을 만드는 것이 기본 매커니즘입니다.

다섯개의 Residual Block이 합쳐진 것이 바로 ResNet~

이론상으로는 신경망이 깊어질수록 점점 error가 감소해야 하는데 실제로는 그렇지 못했습니다.
그러나 ResNet에서는 신경망이 깊어져도 training error 가 감소되는 결과를 얻었습니다. (오른쪽 그래프)

2) 딥러닝 논문 구조 알아보긔

  • 논문은 일반적인 책과 다르게 정형화 되어있습니다.

  • 초록(Abstract)
  • 서론(Introduction)
  • 관련 연구
  • 이론 설명
  • 실험
  • 결론
  • 참고문헌
  • 부록

논문을 왜 쓰는가?
이전까지의 연구가 해결하지 못했던 문제의식을 발견해서, 이 문제를 해결하기 위한 유사한 시도들을 소개하고, 이 논문만의 차별화된 시도는 어떤것이며, 실제로 실험해봤더니 차별화된 성과가 어떻게 나타났는지 보여주는 과정입니다.

2. ResNet 핵심개념과 그 효과

논문읽는 방법을 중심으로 ResNet 논문을 읽어보겠습니다. 앞서 이해한 내용을 바탕으로 논문을 읽는거지요.
ResNet 논문은

  1. Abstract
  2. Introduction
  3. Related Work
  4. Deep Residual Learning (이론 설명)
  5. Experiments
  6. References
  7. Appendix

로 이뤄져있습니다.

1) Indroduction


앞서 다뤘듯이 딥러닝 모델의 레이어를 깊게 쌓았을 때 성능이 좋아져야 이론상으론 맞는데 실제로는 그렇지 않다는 점이 문제의식이 됩니다.
논문에서는 Degradation Problem 이라는 표현을 사용하고 있습니다.

(Degradation Problem)

  • 신경망이 깊어지면서, 정확도가 saturated 되어 급격히 감소되는 현상.
  • 몰랐는데 이게 overfitting 때문에 일어난게 아니었음;;
  • 글고 더 많은 레이어를 추가하면 할수록 training error 가 증가되드라
  • degradation은 모든 시스템이 다 최적화하기 쉬운게 아니라는 것을 보여줌
    -> 최적화때문이네?

2) 사용할 이론 설명, 문제 해결 아이디어 제안

ResNet 논문에서는 Abstract3. Deep Residual Learning 에서 찾아볼 수 있습니다.

논문에서는 Residual Block을 사용해서 degradation problem을 해결하고자 합니다.

기존모델에 identity mapping layer를 붙인다고 해서 모델 성능이 떨어질 리는 없을텐데 레이어를 많이 쌓은것이 identity mapping 레이어보다 못한게 되는걸까요???

그럼 위 그림처럼 H(x) 를 F(x) + x로 만들면 어떨까?
그렇다면 F(x)가 학습이 안되더라도 identity mapping은 남을테니 성능 저하는 발생하지 않을것이라는 아이디어입니다.
그렇게 하면 H(x)를 직접 학습하는 것보다는 훨씬 학습이 쉬울것입니다. 이 F(x)는 H(x)에서 x 를 뺀 형태라서 Residual(잔차) 가 되는데 그래서 Residual Block이라는 이름이 된 것입니다.
이렇게 Residual Block 여러개가 모여 ResNet 이 되는것입니다.

3) Experiments

논문에서는 shortcut의 성능을 보여주기 위해 shortcut의 유무를 비교했습니다.


실험결과 그림입니다.
top-1 error는 모델이 가장 높은 확률값으로 예측한 class 1개가 정답과 일치하는지? 나타내는 오류율입니다. Top-5는 모델이 예측한 값들 중 가장 높은 확률값부터 top5 중에서 정답이 있는지?


top-1 error를 비교한 표입니다.
plain 네트워크는 더 깊은 레이어일때 에러가 증가했지만 그에 반해 ResNet은 감소되었습니다.

3. ResNet 이후 시도

1) DensNet

Dense Connectivity

ResNet - 특성 맵을 더해줌
Densenet - 특성 맵을 채널 방향으로 쌓아서 사용
Growth Rate
Growth rate 조정 : 레이어를 거치며 증가하게 되는 채널 개수 조절

2) SENet

Squeeze
pooling으로 특성에서 중요한 정보 짜내기

Excitate
Squeezing 한 정보를 토대로 어떤 채널을 강조해야 할지 판단

4. 모델 최적화하기

지금까지는 사람이 고안한 방식을 네트워크 구조에 적용한건데, 이제는 딥러닝으로 모델의 구조 자체도 최적화하고자 합니다. 이것을 NAS(Neural Architecture Search)라고 합니다.

1) NASNet


NASNet에서의 conv cell은 normal cell과 reduction cell로 구분되는데
normal cell
특성맵 가로세로 유지시키기 위해 stride 1로 고정
reduction cell
stride를 1또는 2로 해서 특성맵 크기가 줄어들게 함

두가지 셀을 조합해서 NASNet을 만듬.

2) EfficientNet

강력크함

그림에서 볼 수 있듯 기존 모델들의 오류율을 뛰어넘고 파라미터 수도 적절합니다.
NAS와 유사한 방법을 사용해서 Baseline Network 구조를 미리 찾고 고정합니다.
Resolution, Depth, Width 를 동시에 고려하는 compound Scaling을 제안합니다.

Reference

  1. K. He, X. Zhang, S. Ren and J. Sun, "Deep Residual Learning for Image Recognition," 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 770-778, doi: 10.1109/CVPR.2016.90.
  2. https://youtu.be/ZILIbUvp5lk
  3. [논문 읽기] Pre-Activation ResNet(2016) 리뷰
  4. G. Huang, Z. Liu, L. Van Der Maaten and K. Q. Weinberger, "Densely Connected Convolutional Networks," 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017, pp. 2261-2269, doi: 10.1109/CVPR.2017.243.
  5. Zoph, Barret, et al. "Learning transferable architectures for scalable image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
  6. Tan, Mingxing, and Quoc Le. "Efficientnet: Rethinking model scaling for convolutional neural networks." International conference on machine learning. PMLR, 2019.
profile
python과 ML DL를 배우고 있어요 / 노래추천광인 / AIFFEL 2기

0개의 댓글