일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 주성분분석
- LDA
- pandas
- ADP
- Python
- Lambda
- 빅데이터분석기사
- PCA
- opencv
- 데이터불균형
- t-test
- 언더샘플링
- 크롤링
- 파이썬
- 데이터분석준전문가
- 대응표본
- numpy
- 군집화
- iloc
- 오버샘플링
- 빅데이터
- dataframe
- datascience
- 워드클라우드
- 독립표본
- 데이터분석
- DBSCAN
- ADsP
- 데이터분석전문가
- 텍스트분석
Archives
Data Science LAB
Deep Residual Learning for Image Recognition (ResNet) 논문 리뷰 및 정리 본문
📜 논문 review
Deep Residual Learning for Image Recognition (ResNet) 논문 리뷰 및 정리
ㅅ ㅜ ㅔ ㅇ 2023. 4. 30. 23:37728x90
0.Abstract
- 역대 ILSVRC 대회 결과를 보면 depth가 모델의 성능에 큰 영향을 준다는 것을 알 수 있음
- depth 증가 시 발생하는 문제 점 : overfitting, gradient 소실, 연산량 증가
- residual learning framework를 통해 문제 해결 → 오차를 3.75%까지 줄임
- residual learning framework : 이전 layer의 결과를 다시 이용함
1. Introduction
- 모델의 layer수가 증가할 수록 학습할 수 있는 Feature가 달라짐 → 깊이는 중요한 요소
- “Layer를 깊게 쌓을 수록 항상 좋은 성능을 보이는가?”
- 두 가지 문제점 존재
- Convergence Problem
- vanishing/exploding gradients 로부터 발생
- 학습 초기부터 convergence 방해
- 이 문제점은 normalized initialization과 intermediate nromalization layer로 해결
- Back Propagation과 함께 SGD로 수십개의 layer를 convergence 할 수 있게 됨
- Degradation Problem
- Convergence가 가능해지고 나니 발생한 문제점
- network 깊이가 증가할 수록 accuracy가 포화되고 그 이후로 빠르게 하락함
- overfitting에 의해 발생하는 문제점이 아닌 layer를 추가하면 training error가 높아짐
- Convergence Problem
- Deep Residual Learning framework를 통해 해결하고자 함
- Shortcut connection : Residual Mapping을 사용해 원래의 Underlying Mapping(H(x))에 nonlinear mapping인 x를 더함 → F(x) = H(x) + x
- shortcut connection은 두 개의 Layer를 건너뜀 (계산을 늘리거나 parameter 수를 증가시키지 않음)
- Deep Residual Networks는 Optimize하기 쉬움
- Depth가 증가하며 정확도의 증가를 얻음
- 전체 네트워크는 여전히 SGD with backpropagation으로 end-to-end 학습되며 쉽게 구현 가능
- Optimize가 잘 되는 것을 보이기 위해 100개가 넘는 layer에 대해 학습 성공
- ImageNet Dataset에 대해서 3.57%의 Top-5 Error를 달성하면서 ILSVRC에서 1등을 차지함
2. Related Work
- Residual Representation (잔차 표현)
- 벡터 양자화에 있어 residual vector를 인코딩하는 것이 original vector보다 훨씬 효과적임
- 벡터 양자화 : 벡터 x를 클래스 벡터 y로 mapping하는 것을 의미함
- Multigrid Method → pre-conditioning 방식 사용하여 훨씬 빠르게 수렴함 (두 scale간의 residual 벡터를 가리키는 변수에 의존하는 방식)
- Shortcut Connection
- 다른 방식과는 달리 parameter가 전혀 추가 되지 않으며, 0으로 절대 수렴하지 않음
- gate는 항상 열어놓음 (모든 정보가 통과됨)
- 지속적인 residual function 학습 가능
3. Deep Residual Learning
3.1 Residual Learning
- 실제로는 Identity mapping이 최적일 가능성이 낮음
- 그러나 Resnet에서 제안하는 재구성 방식은 pre-conditioning을 추가하는데에 도움이 됨
- pre-conditioning으로 인해 optimal function이 zero mapping보다 identity mapping에 가깝다면 identity mapping을 참조하여 작은 변화를 학습하는 것이 작은 변화에 더 쉽게 반응할 것임
3.2 Identity Mapping by Shortcuts
- Residual Block의 정의는 다음과 같음 (x : input, y : output)
- F + x : Element-wise addition을 사용해 각각의 element끼리 더한 뒤, Nonlinear function을 거침
- 이러한 shortcut connection은 parameter 수와 계산 복잡도를 증가시키지 않음
- Linear Projection을 추가해 x의 Dimension과 F의 Dimension이 다른 경우에도 계산할 수 있도록 함
- Ws는 차원을 매칭 시켜줄 때에만 사용함
- F는 여러개의 layer가 될 수 있지만, 한 개의 layer인 경우에는 이러한 장점을 얻기 어려움
3.3 Network Architectures
1) Plain Network
- VGG에서 영감을 받은 34개의 layer를 가진 모델
- 대부분 3x3 필터로 이루어져 있으며 Filter Dimension이 두배가 되면 Feature Map Size가 절반이 됨 (layer당 복잡도 유지를 위함)
- 2 stride를 가진 convolution을 이용해 downsampling을 진행함
2) Residual Network
- plain network에 shortcut connection 추가
- input과 output이 같을 때는 Eqn 1 사용 (실선)
- output dimension이 증가한 경우에는 두가지 방법
- zero padding을 적용해 shortcut은 여전히 identity mapping 수행
- 차원을 맞추기 위해 Eqn 2의 projection shortcut 사용
3.4 Implementation
- Image는 더 짧은 쪽의 길이로 resize
- horizontal flip 부분적용 및 per-pixel 평균을 빼줌
- 224 x 224 크기로 random crop
- standard color augmentation 사용
- 각 conv 이후와 activation 전에 batch normalization 적용
- 256 사이즈의 mini-batch로 SGD 사용
- learning rate는 0.1에서 시작해 error가 안정되면 10으로 나눔
- iter는 최대 60만 번
- 0.0001의 weight decay와 0.9 momentum 사용
- dropout은 사용하지 않음
이후, 테스트 단계에서는 10-cross validation 방식을 적용하고 multiple scale을 적용해 짧은 쪽이 {224, 256, 384, 480, 640} 중 하나가 되도록 resize 한 후, 평균 score을 산출
4. Experiments
4.1 ImageNet Classification
1000개의 class로 이루어진 2012 Imagenet classification dataset으로 실험 진행
Plain Networks
- 34-layer가 18-layer에 비해 높은 Train/Validation Error를 보임
- Vanishihg Gradients로 인한 현상은 아닐 것이라고 추측 → Batch Normalization이 적용되어 순전파 과정에서 모든 신호의 variance는 0이 아니며, 역전파 과정에서의 기울기도 healty norm을 보였기 때문
- 더 깊은 Plain Network가 아주 작은 Convergence Rates를 가지기 때문에 Training error가 줄어드는 것이 약하다고 추측함
Residual Networks
- 모든 shortcut은 identity mapping을 사용하고, 차원 증가를 위해 zero padding을 사용했기 때문에 파라미터 수는 증가하지 않음
- residual learning으로 34-layer이 18-layer보다 2.8% 우수한 성능을 보임 (낮은 training error, validation 성능이 높아짐) → degradation 문제 해결을 의미 (depth가 증가하더라도 높은 정확도를 얻을 수 있음)
- 34-layer의 top1 error는 3.5% 감소하였으며 residual learning이 extremely deep system에서 매우 효과적임을 의미함
- 18-layer ResNet과 Plain Net의 성능은 거의 유사했지만 18-layer ResNet이 더 빨리 수렴함
Identity vs Projection Shortcuts
Dimension 증가를 위해 Projection 사용 → 3가지 옵션
- A : Zero Padding을 통해 Dimension 증가
- B : Projection을 통해 Dimension 증가
- C : 모든 Shortcut을 Projection
- 모든 경우 Plain Network보다는 성능이 좋음
- B가 A보다 살짝 성능이 더 좋음 → A가 Residual Learning을 하지 않았기 때문
- C가 B보다 성능이 좋음 → Extra Parameter가 Projection Shortcut에 생겼기 때문
- 이 세 가지 모두 성능 악화 문제와는 큰 상관이 없음 → 속도와 모델 복잡도가 큰 C를 굳이 사용하지 않고 Identity Shortcut만을 사용
Deeper Bottleneck Architectures
- 모델을 더 깊게 만드려면 학습 시간이 오래 걸리기 때문에 Bottleneck 구조를 제안함
- 각 Residual Function마다 2개의 layer대신 3개의 layer를 사용함 (1x1, 3x3, 1x1 Conv로 이루어짐)
- 1x1 : Dimension을 줄였다가 키우는 역할 → 3x3 layer의 input과 output dimension을 작게 만들기 위함
- layer가 한개 더 많음에도 불구하고 time complexity는 비슷함
- parameter-free identity shortcut은 bottleneck 구조에서 중요 → 만약 projection shortcut이면 shortcut이 두 고차원에 연결되어 있기 때문에 시간 복잡도와 모델 사이즈가 두 배가 됨
- 실험 결과 152-layer까지는 34-layer보다 더 정확함
50-layer ResNet
- 34-layer ResNet의 2-layer block을 3-layer bottleneck block으로 대체
- Dimension Matching을 위해 옵션 B를 채택함
101-layer ResNet and 152-layer ResNet
- 더 많은 3-layer block을 사용해 구성
- depth가 증가함에도 불구하고 VGG16, 19모델보다 더 낮은 복잡성을 가졌으며, degradation 문제 없이 높은 정확도를 보임
- ResNet이 더 좋은 성능을 보임을 알 수 있음
- Ensemble Learning을 이용해 더 낮은 Error를 달성
728x90
'📜 논문 review' 카테고리의 다른 글
ImageNet Classification with Deep Convolutional Neural Networks 논문 리뷰 및 정리 (0) | 2023.04.24 |
---|
Comments