[논문 리뷰] Deep Residual Learning for Image Recognition
https://arxiv.org/pdf/1512.03385v1
오늘은 Deep Residual Learning for Image Recognition에서 마이크로소프트팀이 소개한 ResNet에 대해 다뤄보려 한다. ResNet은 수학적으로 어려운 개념이 적용되었다기보다는 "잔차"라는, 방법론적으로 신박한 개념이 도입됨을 소개하는 논문이다. 첫 주인 이번주 스터디는 논문을 읽고 1회독을 하는 것을 목적으로 하고, 그 다음주에는 이 논문에서 제시하고 있는 아이디어를 스터디원과 함께 구현해보려고 한다.
1. Introduction
심층 신경망은 추상화에 대한 고/중/저 수준의 특징을 분류기와 함께 multi-layer 형식으로 통합한다
각 추상화 단계는 쌓은 layer의 수에 따라 더욱 높아질 수 있으며, 즉, 높은 추상화 특징은 high layer에서 파악할 수 있다는 것이다.
최근 연구 결과에 따르면 네트워크의 깊이는 매우 중요하며, 실제로 많은 모델들이 깊은 네트워크를 통해 좋은 성능을 보임
depth의 개념이 중요해지면서, layer을 더 쌓는 만큼 더 쉽게 네트워크를 학습시킬 수 있는지 의문이 생기기 시작
→ 즉, 성능을 높이기 위해서 layer의 층을 늘리면 되는가?
특히 이 중에서 layer의 층을 늘릴수록 vanishing / exploding gradient 현상이 큰 방해요소였음
다행히 SGD를 적용한 10개의 layer까지는 normalization 기법과 batch normalization과 같은 intermediate normalization layer을 사용했을 경우, 문제가 없었다고 함
그러나 층이 10개보다 깊은 심층 신경망의 경우,
성능이 최고 수준에 도달할 때 degradation 문제가 발생하였고, 이는 네트워크의 깊이가 깊어짐에 따라 정확도가 포화하고, 급속하게 이후로는 감소하는 것을 의미한다.
이러한 degradation 문제의 원인은 오버피팅이 아니라, 그저 layer의 수가 더 추가되었기 때문인데, test error만이 아니라 training error도 함께 높아졌기 때문에 이와 같이 layer 수를 원인으로 찾을 수 있다
하지만 깊은 모델에서도 제한된 상황에서는 최적화될 수 있는 방법이 존재한다.
추가된 레이어가 identity mapping이고, 추가되지 않은 다른 레이어들은 더 얕은 모델에서 학습된 layer을 사용하는 것이다.
이와 같이 제한된 상황에서의 깊은 모델은 얕은 모델보다 더 낮은 training error을 가져야 한다.
기존 네트워크는 입력 x를 받고 layer을 거쳐 H(x)를 출력하는데, 이는 입력값 x를 타깃값 y로 mapping하는 함수 H(x)를 얻는 것이 목적이다.
여기서 Residual Learning은 H(x)가 아닌, 출력과 입력의 차인 H(x) -x 를 얻도록 목표를 수정한다.
따라서 Residual Function인 F(x) = H(x) - x 를 최소화하여야 하고, 이는 출력과 입력의 차를 줄인다는 의미가 된다. → 수렴해야하므로 출력과 입력의 차이를 줄여
여기서 x는 도중에 바꾸지 못하는 입력값이므로 F(x)가 0이 되는 것이 최적의 해이고, 0 = H(x) - x, H(x) = x가 된다.
즉, H(x) 를 x로 mapping하는 것이 학습의 목표가 된다는 것이다.
이전에는 unreferenced mapping인 H(x)를 학습시켜야 한다는 점 때문에 어려움이 있었음 (알지 못하는 최적의 값으로 H(x)를 근사시켜야 하기 때문에)
이제는 H(x) = x 라는 최적의 목표값이 사전에 preconditioning으로 제공되기 때문에 F(x)의 학습이 더 쉬워진다는 것이다
결과적으로 H(x) = F(x) + x 이므로 네트워크 구조 또한 크게 변경을 할 필요가 없음
단순히 입력에서 출력으로 바로 연결되는 shortcut만 추가하면 되기 때문
또한, 입력과 같은 x가 그대로 출력에 연결되기 때문에 파라미터 수에 영향이 없으며, 덧셈이 늘어나는 것만 제외하면 shortcut 연결을 통한 연산량의 증가가 없다.
무엇보다도 곱셈 연산에서 덧셈 연산으로 변형되어 몇 개의 layer을 건너뛰는 효과가 있었는데, 이 덕에 forward와 backward path가 단순해지는 효과가 있었으며, gradient의 소멸 문제를 해결할 수 있었다.
https://m.blog.naver.com/siniphia/221387516366
ResNet은 depth가 매우 깊어도 최적화가 쉬웠지만, 일반적인 CNN model인 plain net은 depth가 증가하면 training error도 함께 증가한 반면에, ResNet은 매우 깊은 구조 덕에 높은 정확도를 쉽게 얻을 수 있었고, 그 결과는 이전의 다른 네트워크보다 월등했다.
또한 ImageNet, CIFAR-10 모두에서 훌륭한 성능을 보였고, 여러 ResNet 모델을 ensemble 했을 때, 에러는 3.75%에 불과하였다.
2. Related work
이 섹션에서는 ResNet 모델의 대표적인 2가지 개념인 Residual Representations와 Shortcut Connections의 다른 모델에 적용된 사례에 대해 간략히 설명하고 있다.
VLAD와 Fisher Vector은 이미지 검색 및 분류를 위한 얕은 표현
벡터 양자화에서 residual vector 를 인코딩하는 것은 original vector 를 인코딩하는 것보다 더 효과적으로 나타남
여기서 벡터 양자화란 특징 벡터 x를 클래스 벡터 y로 매핑하는 것을 의미한다.
![]() |
![]() |
low level 비전 및 컴퓨터 그래픽 문제에서는 편미분 방정식을 풀기 위해 멀티 그리드 방식을 많이 사용해왔는데, 이 방식은 시스템을 여러 scale의 하위 문제로 재구성하는 것이다. 이때 각 하위 문제는 더 큰 scale과 더 작은 scale 간의 residual을 담당한다.
여기서 멀티 그리드 방식 대신에 두 scale 간의 residual 벡터를 가리키는 변수에 의존하는 방식이 있는데, 이를 계층 기반 pre-conditioning이라고 한다. 이 방식은 해의 residual 특성에 대해 다루지 않는 기존 방식보다 훨씬 빨리 수렴하는 특징이 있다. 즉, 합리적인 문제 재구성과 전제 조건(pre-conditioning)은 최적화를 더 간단하게 수행해준다는 것을 의미한다.
여기서도 Shortcut connection을 구성하기 위해 시도되었던 다양한 사례들에 대해 소개하고 있다.
그중에서 ResNet의 Shortcut connection은 다른 방식들과는 달리, parameter가 전혀 추가되지 않으며, 0으로 수렴하지 않기에 절대 닫힐 일이 없어 항상 모든 정보가 통과된다고 한다. 따라서 지속적으로 residual function을 학습하는 것이 가능하다고 한다.
3. Deep Residual Learning
실제로는 Identity mapping이 최적일 가능성이 낮다고 한다. 하지만, ResNet에서 제안하는 재구성 방식은 문제에 pre-conditioning을 추가하는데 도움을 준다. 따라서 pre-conditioning으로 인해 Optimal function이 zero mapping보다 identity mapping에 더 가깝다면, solver가 identity mapping을 참조하여 작은 변화를 학습하는 것이 새로운 function을 학습하는 것보다 더 쉬울 것이라고 마이크로소프트팀은 주장한다.
## preconditioning
**프리컨디셔닝(preconditioning)**은 수치 해석 및 최적화 분야에서 문제를 더 쉽게 풀 수 있도록 변환하는 기법을 의미합니다. 이는 반복적 해법(iterative solver)의 효율성과 수렴성을 개선하기 위해 문제의 성질, 특히 조건수(condition number)를 변경하는 방식입니다. 조건수는 입력 변화에 대한 함수 출력의 민감도를 나타내는 지표입니다.
- 항등 함수(Identity Mapping) 기반:
- ResNet에서는 잔차 연결(residual connections)을 사용하여 항등 함수를 학습의 시작점으로 설정합니다.
- 만약 네트워크가 학습해야 할 최적의 함수가 0 함수보다 항등 함수에 더 가까운 경우, 항등 함수를 기준으로 작은 변화(perturbations)를 찾는 것이 새로운 함수를 처음부터 학습하는 것보다 더 쉽습니다
4.2 Identity Mapping by Shortcuts
Shortcut connection은 파라미터나 연산 복잡성을 추가하지 않는다. 이때, F + x 연산을 위해 x와 F의 차원이 같아야 하는데, 이들이 서로 다를 경우 linear projection인 Ws 를 곱하여 차원을 같게 만들 수 있다. 여기서 Ws 는 차원을 매칭 시켜줄 때에만 사용한다.
4.3 Network Architectures
Plain Network
baseline 모델로 사용한 plain net은 VGGNet에서 영감을 받았다. 즉, convolutional layers filter의 사이즈가 3 x 3이고, 다음 2가지 규칙에 기반하여 설계하였다.
1. Output feature map의 size가 같은 layer들은 모두 같은 수의 conv filter를 사용한다.
2. Output feature map의 size가 반으로 줄어들면 time complexity를 동일하게 유지하기 위해 필터 수를 2배로 늘려준다.
추가로, 만약 downsampling을 수행한다면 pooling을 사용하는 것이 아니라 stride가 2인 conv filter를 사용한다. 마지막으로, 모델 끝단에 GAP (Global Average Pooling Layer) 를 사용하고, 사이즈가 1,000인 FC layer(완전연결 레이어) 와 Softmax를 사용한다. 결과적으로 전체 layer 수는 34인데 이는 VGGNet보다 적은 필터와 복잡성을 가진다. (VGGNet은 4,096 사이즈 FC layer가 2개 추가된다)
** 이미지의 사이즈를 줄이는 것을 Downsampling이라고 함 (반대는 Upsampling)
|
모델 구현은 다음과 같이 진행한다.
1. 짧은 쪽이 [256, 480] 사이가 되도록 random 하게 resize 수행
2. horizontal flip 부분적으로 적용 및 per-pixel mean을 빼준다
3. 224 x 224 사이즈로 random 하게 crop 수행
4. standard color augmentation 적용
5. z에 Batch Normalization 적용
6. He 초기화 방법으로 가중치 초기화
7. Optimizer : SGD (mini-batch size : 256)
8. Learning rate : 0.1에서 시작 (학습이 정체될 때 10씩 나눠준다)
9. Weight decay : 0.0001
10. Momentum : 0.9
11. 60 X 10^4 반복 수행
12. dropout 미사용
이후, 테스트 단계에서는 10-cross validation 방식을 적용하고, multiple scale을 적용해 짧은 쪽이 {224, 256, 384, 480, 640} 중 하나가 되도록 resize 한 후, 평균 score을 산출한다.
논문 리뷰에 참고한 사이트는 다음과 같다
ResNet (Deep Residual Learning for Image Recognition) 논문 리뷰
논문 제목 : Deep Residual Learning for Image Recognition 오늘은 Deep Residual Learning for Image Recognition에서 마이크로소프트팀이 소개한 ResNet에 대해 다뤄보려 한다. ResNet은 수학적으로 어려운 개념이 적용되었
phil-baek.tistory.com
ResNet (Shortcut Connection과 Identity Mapping) [설명/요약/정리]
등장 배경 레이어가 많아져, 인공신경망이 더 깊어질 수록 gradient vanishing/exploding 문제가 커집니다. 이전의 다른 방법들로 이 문제를 해결했다고 생각했지만, 수십개의 레이어를 가진 모델에서는
lv99.tistory.com
기존 네트워크의 한계일반적으로, 신경망은 입력 xx를 받아 여러 계층(layer)을 거쳐 출력 H(x)H(x)를 생성합니다. 여기서 네트워크의 목적은 입력 xx를 타깃 출력 yy로 매핑하는 함수 H(x)H(x)를 학습하는 것입니다.하지만, 네트워크의 깊이가 깊어질수록 학습이 어려워지는데, 이는 주로 다음과 같은 이유 때문입니다:
Residual Learning의 접근 방식Residual Learning은 이러한 문제를 해결하기 위해 도입된 방법으로, 기존의 H(x)H(x)를 직접 학습하는 대신 **잔차(residual)**를 학습하는 것입니다. Residual Learning의 주요 아이디어는 다음과 같습니다:
왜 Residual Function을 학습하는가?
ResNet 구조의 특징
--------------- Residual Learning에서 항등 함수(identity mapping)가 수렴으로 이어지는 이유는 다음과 같습니다: 1. 초기 조건으로서의 항등 함수
2. 학습 초기 단계에서의 유리함
3. 잔차 학습의 용이성
4. 효과적인 정보 흐름
결론항등 함수는 Residual Learning에서 자연스러운 초기 상태를 제공하며, 학습 초기 단계에서 안정적이고 빠른 수렴을 가능하게 합니다. 모델이 잔차를 학습하는 방식 덕분에 복잡한 매핑을 학습하기 전, 비교적 쉽게 목표로 수렴할 수 있는 경로를 제공합니다. 이러한 특성은 깊은 네트워크에서도 성능이 향상되는 데 중요한 역할을 합니다. |