0. Abstract
- 그 전의 ImageNet 모델에서 상 받은 모델들
- AlexNet(8 Layer) → VGGNet(19 Layer) → GoogleLeNet(22 Layer)
- 신경망의 depth가 깊어질수록 accuracy가 좋아짐
- 해당 논문의 배경
- Neural Networks가 깊어질수록 Train이 어려워지는 문제 발생
- → 해당 paper에서 이것을 해결위해 Residual learning framework를 제안함
- Neural Networks가 깊어질수록 Train이 어려워지는 문제 발생
- Residual Learning Framework
- east to opitimize, accuracy increased by deeper depth
- VGGNet보다 8배(152 layers) 더 깊어졌지만, Complexity는 더 낮음
- ResNet 모델로 3.57%의 error를 거둠→ ILSVRC2015 classification 대회에서 1등
- Depth의 중요성
- 많은 visual recognition task에서 중요함
- Deep Residual Net은 ILSVRC & COCO 2015 대회에서도 1등을 함
1. Introduction
1) Deep convolutional neural networks
- Deep CNN은 image classfication에서 돌파구와 같은 혁신을 가져옴
- end-to-end multi-layer 방법으로 low / mid / high level의 특징 및 분류기를 자연스럽게 통합함
- low-level에서 high-level로 갈 수록, 기본적인(엣지, 텍스처)와 같은 특징에서 더 추상적이고 복잡한 특징들이 확인 가능함 → layer가 더 추가될수록 이런 특징들이 자연스럽게 통합됨
- 최근의 evidence, 즉 성능이 좋아지는 “very deep” model들을 살펴보면, depth의 중요성은 커지고 있음
2) Is learning better networks as easy as staking more layers?
Vanishing/Exploding gradients
- 해당 question의 가장 큰 장해물은 Vanishing/Exploding gradients
- 하지만 해당 문제는 SGD를 적용해 10개의 layer까지는 normalization 기법과 Batch normalization과 같은 intermediate normalization layer를 사용할 경우 해당 문제가 없음
Batch Normalization은 딥러닝 모델에서 Gradient Vanishing 문제를 해결하는데 중요
1. 출력 정규화
: 각 층의 출력을 정규화하여 안정적인 기울기 흐름을 유지
2. 기울기 흐름 개선
: 기울기 소실 문제를 완화하여 깊은 네트워크에서도 효과적으로 학습
3. 학습 가속화
: 더 높은 학습률을 사용할 수 있게 하여 학습 속도를 높임
Degradation
- depth가 점점 증가면서, accuracy는 어느 순간 급격히 저하됨
- 이런 degradation의 문제는 예상외로 overfitting 때문이 아님
- 어느 순간 정확도가 더 이상 증가하지 않고, 오히려 감소하는 현상이 발생
- depth를 높이면 → Training Error가 올라감
Identity mapping
- 해결책으로 Identity mapping을 추가함
- Identity mapping ? 입력 x를 그대로 출력하는 함수, f(x) = x
- Residual Learning에서 중요한 역할을 함
- deeper model를 설계할 때, Identity mapping이라는 layer를 추가함
- identity mapping이면 연산량도 증가하지 않고, training error가 증가하는 일도 없음 → 단순히 depth만 깊어짐
Deep Residual Learning
- 우리는 deep residual learning frame을 제안하며, degradation problem을 해결함
- 기존 network는 input x를 받고, layer를 거쳐 H(x)를 출력함
- input x를 타겟값 y로 mapping하는 함수 H(x)를 얻는 것이 목적이었음
- ResNet의 Residual Learning은 H(x)가 아닌, 출력과 입력의 차인 H(x) - x를 얻도록 목표를 수정함
- Residual function F(x) = H(x) - x
- F(x)를 최소화 시켜야 하고, 출력과 입력의 차이를 줄임
- input x는 값을 변경하지 못하니, H(x)= x로 mapping하는 것이 학습의 목표가 됨
- 이전에는 Unreference mapping인 H(x)를 학습시켜야 한다는 점에서 어려움이 있었으나, 단순히 H(x) = x라는 최적 목표값이 제공되어 학습이 더 쉬워짐
- H(x) = F(x) + x로 네트워크 구조도 크게 변경할 필요가 없음
- 단순히 입력에서 출력으로 바로 연결되는 shortcut만 추가하면 됨
- short cut? 하나 또는 그 이상의 layer의 연결을 skip하는 것
- 파라미터 수에 영향이 없으며, 덧셈이 늘어나는 것을 제외하면 연산량 증가는 없음
- 단순히 입력에서 출력으로 바로 연결되는 shortcut만 추가하면 됨
- Vanishing gradient 문제를 해결 가능
- 곱셈 연산에서 덧셈 연산으로 변형되어, 몇 개의 layer를 건너뛰는 효과가 있음
2. Related Work
- Residual Representations, Shortcut Connections이 적용된 사례를 설명
Shortcut Connections
- “Inception” layer에서도 Shortcut branch를 가짐
- 경쟁인, “highway networks”도 shortcut connections을 가지지만, data-dependent해서 parameter를 가짐
- 그러나 ResNet의 shortcut connection은 parameter가 전혀 추가되지 않으며, 지속적으로 residual function 학습이 가능함
3. Deep Residual Learning
1) Residual Learning
- Residual function
- F(x) = H(x) - x
- 이러한 residual learning layer를 추가하면서, 더 deeper한 model이 될 수 있음
- identity mapping이 추가되기 때문에, 더 deeper한 model이 더 얕은 모델보다 training error가 커지지않음 → degradation problem의 해결
- Identity mapping이 최적인가?
- 해당 paper의 저자는, Identity mapping이 최적의 해법일 가능성을 낮다라고 주장
- 그러나, ResNet에서 사용하는 재구성방법이, degradation 문제를 더 쉽게 풀 수 있도록 도움을 줄 수 있다라고 주장
- 최적 함수가 Zero mapping보다는 Identity Mapping에 더 가깝다면, Identity mapping을 기준으로 학습하는게, 더 쉬움
- Zero Mapping
- 모든 입력을 0으로 매핑하는 함수
- H(x)≈0인 경우, 네트워크는 완전히 새로운 함수를 학습해야 하며, 이는 더 어려운 작업이 될 수 있음
- Zero Mapping
2).Identity Mapping by Shortcuts
- 제안하는 공식
- x : input vector
- y : output vector
- F(x. {Wi}) : 학습에 매핑될 잔차
- shortcut은 파라미터나, 복잡한 연산 복잡성을 추가하지 않음
- F(x) + x 연산을 위해, x(input)과 F(output)의 차원이 같아야함
- 만약 차원이 다를 경우
- linear projection인 Ws를 추가로 곱하여 차원을 같게 만듦
3) Network Architecture
Plain Network
- base model로 VGGNet을 사용
- conv filter 3x3이고 다음 design rule로 설계함
- 만약 같은 output feature map size라면, 같은 layer들은 모두 같은 수의 conv filter를 사용
- 만약 output feature map size가 반으로 되면, filter의 수를 2배 늘림 → 각 layer의 time complexity를 동일하게 유지하기 위해
- downsampling을 할 때, stride가 2인 conv filter를 사용함
- 모델 끝에, global average pooling layer를 사용하고, 사이즈가 100인 fully-connected layer와 softmax를 적용함
- 전체 layer의 갯수는 34인데, VGGNet보다 적은 필터와 복잡성을 가짐
- 우리 네트워크는 FLOPs(multiply-adds)가 3.6billion, VGG-19는 19.6billion
Residual Network
- Residual Network는 Plain 모델에 기반해, Shortcut connection을 추가해서 구성함
- input과 output의 차원
- 같을 땐, identity shortcut를 바로 사용
- 다를 땐, 다음 두 가지 방법을 사용
- zero-padding을 적용하여 차원을 늘림
- 앞에서 다룬, projection shortcut을 사용 (1 x 1 convolution)
4) Implementation
- 모델의 구현
- 짧은 쪽이 [256, 480] 사이가 되도록 랜덤하게 resize
- 224 x 224 사이즈로 랜덤하게 crop
- horizontal flip을 부분적으로 적용, per-pixel mean을 제거함
- standard color argmentation 적용
- BN(Batch Normalization), Opitimizer는 SGD를 적용
- learning rate는 0.1에서 시작, 학습정체시에 10으로 나눠줌
- Weight Decay는 0.0001, Momentum은 0.9
- 테스트 단계
- 10-cross validation 방식을 적용하고, multiple scalue을 적용해, 평균 score를 산출
- 데이터를 10개의 동일한 크기로 나누어, 훈련하고 테스트하는 과정
- 10-cross validation 방식을 적용하고, multiple scalue을 적용해, 평균 score를 산출
4. Experimental
1) ImageNet Classification
- plainnet과 resnet을 대상으로 ImageNet을 이용해 수행한 결과를 평가
PlainNet
- 18-layer가 34-layer의 더 깊은 모델이 높은 validation error가 발생함
- training error도 높아 degradation 문제가 있다고 판단
- 이러한 문제는 vanishing gradient 때문에 발생하는 게 아니라고 주장
- 해당 모델은 Batch Normalization이 적용되어, forward propagated의 variance 는 0 이나며, backward propagated gradients도 healthy norm을 보임
- 순전파, 역전파 모두 사라지지 않음
- 해당 모델은 Batch Normalization이 적용되어, forward propagated의 variance 는 0 이나며, backward propagated gradients도 healthy norm을 보임
- 해당 paper의 저자는, exponentially low convergence rate가 training error 감소에 좋지못한 영향을 미쳤다라고 주장
- 지수적으로 낮은 수렴 속도(Exponentially Low Convergence Rate): 알고리즘이 최적의 결과에 도달하는 속도가 매우 느리다는 것을 의미. 특히, 수렴 속도가 지수적으로 느리다는 것은 학습 속도가 매우 느려지고, 결과가 개선되는 속도가 기하급수적으로 떨어진다는 뜻
ResNet
- 18 layer와, 34 layer ResNet을 plain 모델과 비교
- residual learning으로 34-layer가 18-layer보다 2.8% 가량 더 우수한 성능
- degradation 문제가 잘 해결되었으며, depth가 증가해도 좋은 accuracy를 더을 수 있음을 의미
- residual learning으로 34-layer가 18-layer보다 2.8% 가량 더 우수한 성능
- 34-layer의 top-1 error는 3.5가량 줄었음
- PlainNet보다 더 빠르게 optimization에 수렴 가능
2) Identity vs. Projection Shortcuts
- parameter-free한 identity shortcut이 학습에 된다는 것을 알았으며, 이번엔 projection shortcut에 대해 알아봄
- 다음 3가지 옵션을 비교
- A) zero-padding shortcut을 사용
- dimention matching에 사용, 완전히 paremeter-free함
- B) projection shortcut을 사용
- dimention을 키울 때 사용, 다른 모든 shortcut은 identity함
- C) 모든 shortcut으로 projection shortcut한 경우
- A) zero-padding shortcut을 사용
- 3가지 option 모두 plainnet보다 좋은 성능을 보임
- 성능의 순위는 A < B < C
- 3가지 옵션의 성능 차이가 미미하기 떄문에, projection shorcut이 degradation문제를 해결에 필수적이지 않다는 것을 확인 가능
- memory / time complexity와 model size를 줄이기 위해서는, C 옵션을 사용하지 않음
3) Deeper Bottleneck Architectures
- ImageNet에 대해 모델 학습할 때, training time이 매우 길어질 것 같아서, bottleneck design으로 수정함
- 두 개의 design은 비슷한 time complexity를 가짐
- 3-layer stack 구조로 바꿈
- 1x1, 3x3, 1x1의 conv로 구성
- 입력 → 1x1 Conv (채널 수 축소)
- 3x3 Conv (공간적 특성 학습)
- 1x1 Conv(채널 수 복구)
- 1x1, 3x3, 1x1의 conv로 구성
- parameter-free한 identity shortcut은 bottleneck 구조에서 중요함→ 더 효율적인 모델로 만듦
- 계산의 효율성 : 1x1 Conv를 사용해, 중간 계산을 줄여줌 → 메모리, 연산량을 줄임
- 더 깊은 네트워크 : 성능 저하 없이 깊이는 늘림
- 3-layer stack 구조로 바꿈
- 1x1, 3x3, 1x1의 conv로 구성
- 입력 → 1x1 Conv (채널 수 축소)
- 3x3 Conv (공간적 특성 학습)
- 1x1 Conv(채널 수 복구)
- 1x1, 3x3, 1x1의 conv로 구성
- parameter-free한 identity shortcut은 bottleneck 구조에서 중요함→ 더 효율적인 모델로 만듦
- 계산의 효율성 : 1x1 Conv를 사용해, 중간 계산을 줄여줌 → 메모리, 연산량을 줄임
- 더 깊은 네트워크 : 성능 저하 없이 깊이는 늘림
50-layer ResNet
- 34-layer의 2-layer block은 3-layer bottleneck block으로 대체해서 구성, B옵션 사용
101-layer and 152-layer ResNet
- 더 많은 3-layer block을 사용해서 구성함
- VGG- 16/19 모델보다 더 낮은 복잡성을 가졌으며, degradation 문제없이 상당히 높은 정확도를 보임
- ResNet의 single모델은 이전의 다른 모델의 성능을 능가함, top-5-error를 3.57%를 달성함
4) CIPAR-10 and Analysis
- ImageNet 말고도, CIFAR-10의 dataset을 가지고 모델의 학습 및 검증
Exploring Over 1000 layers
- 1000개 이상의 layer가 사용된 ResNet 모델은 110-layer ResNet보델과 training error가 같았지만, test 결과는 좋지못함
- overfitting 때문인 것으로 판단 → 모델의 복잡도보다 dataset이 적기 때문에
5) Object Detection on PASCAL and MS COCO
- PASCAL VOC 2007/2012, COCO 에서도 VGG-16보다 6% 더 좋은 accuracy를 보임
- ILSVRC & COCO 2015 대회에서 1등을 차지
'AI > papers' 카테고리의 다른 글
[AI] Visualizing and Understanding Convolutional Networks 논문 리뷰 (2) | 2024.09.16 |
---|---|
[AI] MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications 논문 리뷰 (0) | 2024.09.15 |