본문 바로가기

AI/이론

[ML] ResNet 2

ResNet의 저자들은 컨볼루션 층들과 fully-connected 층들로 20 층의 네트워크와 56층의 네트워크를 각각 만든 다음에 성능을 테스트해보았다. 

 

 

위 그래프들을 보면 오히려 더 깊은 구조를 갖는 56층의 네트워크가 20층의 네트워크보다 더 나쁜 성능을 보임을 알 수 있다. 기존의 방식으로는 망을 무조건 깊게 한다고 능사가 아니라는 것을 확인한 것이다. 뭔가 새로운 방법이 있어야 망을 깊게 만드는 효과를 볼 수 있다는 것을 ResNet의 저자들은 깨달았다. 

 

Residual Block

그것이 바로 ResNet의 핵심인 Residual Block의 출현을 가능케 했다. 아래 그림에서 오른쪽이 Residual Block을 나타낸다. 기존의 망과 차이가 있다면 입력값을 출력값에 더해줄 수 있도록 지름길(shortcut)을 하나 만들어준 것 뿐이다. 

 

기존의 신경망은 입력값 x를 타겟값 y로 매핑하는 함수 H(x)를 얻는 것이 목적이었다. 그러나 ResNet은 F(x) + x를 최소화하는 것을 목적으로 한다. x는 현시점에서 변할 수 없는 값이므로 F(x)를 0에 가깝게 만드는 것이 목적이 된다. F(x)가 0이 되면 출력과 입력이 모두 x로 같아지게 된다. F(x) = H(x) - x이므로 F(x)를 최소로 해준다는 것은 H(x) - x를 최소로 해주는 것과 동일한 의미를 지닌다. 여기서 H(x) - x를 잔차(residual)라고 한다. 즉, 잔차를 최소로 해주는 것이므로 ResNet이란 이름이 붙게 된다. 

 

ResNet의 구조

ResNet은 기본적으로 VGG-19의 구조를 뼈대로 한다. 거기에 컨볼루션 층들을 추가해서 깊게 만든 후에, shortcut들을 추가하는 것이 사실상 전부다. 34층의 ResNet과 거기에서 shortcut들을 제외한 버전인 plain 네트워크의 구조는 다음과 같다.

위 그림을 보면 알 수 있듯이 34층의 ResNet은 처음을 제외하고는 균일하게 3 x 3 사이즈의 컨볼루션 필터를 사용했다. 그리고 특성맵의 사이즈가 반으로 줄어들 때, 특성맵의 뎁스를 2배로 높였다.

 

저자들은 과연 shortcut, 즉 Residual block들이 효과가 있는지를 알기 위해 이미지넷에서 18층 및 34층의 plain 네트워크와 ResNet의 성능을 비교했다. 

 

 

 

왼쪽 그래프를 보면 plain 네트워크는 망이 깊어지면서 오히려 에러가 커졌음을 알 수 있다. 34층의 plain 네트워크가 18층의 plain 네트워크보다 성능이 나쁘다. 반면, 오른쪽 그래프의 ResNet은 망이 깊어지면서 에러도 역시 작아졌다! shortcut을 연결해서 잔차(residual)를 최소가 되게 학습한 효과가 있다는 것이다. 

 

구현환경
 - Scale Augmentation : 짧은 쪽 기준 256~480 크기로 랜덤 리사이징, 각 이미지마다 224x224로 랜덤 크롭 및 상하로 뒤집은 10장의 데이터 사용
 - Color Augmentation : AlexNet에서 사용한 방식 채택
 - Batch Normalization : 활성함수와 Conv Layer 사이에 적용
 - Weights Initialization : Rectifier networks에서 사용한 방식 채택
 - Mini Batch : 256
 - Learning Rate : 초기값 0.1에 에러율 변화가 없을 시 1/10으로 감소
 - Iteration : 60 x 10^4회 반복
 - Decay & Momentum : 각각 0.0001, 0.9
 - Dropout : 미사용
 - Pre-Learning : 미사용 (처음부터 끝까지 학습시킴)

 

 

CNN에서 깊은 신경망 구조는 정확도 향상에 있어 필수적이다. 하지만 Degradation 때문에 오히려 성능이 떨어지는 문제가 발생하며 성능의 한계에 다다르고 말았다. ResNet은 이런 상황에서 Shortcut을 사용한 Identity Mapping으로 이런 문제를 해결하며 신경망 갯수의 한계를 파괴했고 비교적 간단한 구조로 이루어져 있기에 지금까지도 가장 많이 사용되는 모델 중 하나로 자리잡았다.

 

[Part Ⅴ. Best CNN Architecture] 8. ResNet [7] - 라온피플 머신러닝 아카데미 -

Part I. Machine Learning Part V. Best CNN Architecture Part VII. Semantic ...

blog.naver.com

 

 

CNN 모델 탐구 (6) - ResNet

1. 개요 CNN은 원론적으로 그 망이 깊어질수록 정확도가 향상된다는 것이 일반적인 견해이지만, Gradie...

blog.naver.com

 

'AI > 이론' 카테고리의 다른 글

[CNN] Batch Normalization  (0) 2020.08.18
[ML] 오차(error)와 잔차(residual)의 차이  (0) 2020.08.18
[ML] ResNet 1  (0) 2020.07.30
Quantization  (0) 2020.06.23
[ML] Supervised/Unsupervised learning  (0) 2020.06.15