성능을 향상시키면서 더 딥한 layer를 가진 모델 구현 - 152 layers
→ VGG에 비해 8배 더 deep한 모델, but still lower complexity
기존의 network는 깊이가 모델 성능에 큰 영향을 준다는 것을 알 수 있었음
→ 하지만 깊어질 수 록, overfitting, vanishing gradients, 연산량 증가
따라서 깊은 network일 수록 학습시키기가 까다로움
layer를 계속하여 쌓는 데, Vanishing/ Exploding Gradient 가 문제였다.
물론 SDG(strochastic gradient descent)를 적용한 10개의 layer까지는 normalization을 적용했을 때 커버 가능이었다.
하지만 deeper network에서는 Degradation 문제가 발생하게 된다.
이는 오버피팅 때문이 아니라, layer가 깊어졌기 때문에 test/training error가 높아졌기 때문이다.
(이런 degradation은 모든 system이 동일한 방식으로 최적화 되지 않는 다는 것 의미)
얕은 모델과, 그 모델에 더 많은 레이어를 쌓은 deeper 모델에서
deeper 모델이 최적화 될 수 있는 방법으로,
더 쌓은 레이어는 identity mapping이고, 다른 레이어는 얕은 모델에서 학습된 레이어를 사용하는 것이 있다.
기존 네트워크 (Unreferenced mapping)
입력 x를 받고 layer를 거쳐서 H(x) 출력
입력값 x를 타겟값 y로 mapping하는 함수 H(x)를 찾는 것이 목적
ResNet의 Residual learning
H(x)를 찾는게 아닌, 출력과 입력의 차인 H(x) - x를 얻는게 목표
F(x) = H(x) - x 를 최소화하는 것이 목적
⇒ X는 입력이기에 바꾸지 못하는 값이므로, F(x)가 0이 되는 것이 최적의 해
즉, layer를 거쳤을 때 출력과 입력의 차이를 줄이는 것에 의미
결과적으로 H(x)를 X로 mapping하는 것이 목표
⇒ 기존 네트워크는 알지 못하는 y를 향해 최적의 값 H(x)를 찾아야 해서 어려움이 있었음,
Residual learing에서는 최적의 목표인 H(x) = x가 pre-conditioning으로 제공되기에 F(x) 학습이 수월해짐
Residual 학습 구조는 기존의 구조에서 크게 변경할게 없었다.
단순히 입력에서 출력으로 연결되는 Shortcut 만 추가하면 됨.
추가 파라미터 없음(입력 x가 그대로 연결되기 때문)
입력 x를 F(x)에 더하는 연산을 제외하면, 기존의 구조와 연산량 차이가 없음
무엇보다 기존의 곱셈 연산에서, 덧셈 연산으로 변경이 되었기에 몇 개의 layer를 건너뛰는 효과가 존재했다.
→ Forword/Backword path가 단순화됨, gradient vanishing 문제 해결
덕분에 ResNet은 깊은 레이어여도 최적화가 쉬워졌다.
깊은 레이어 덕분에 기존의 다른 모델에 비해 높은 정확도를 얻을 수 있었다.
Residual Representations와 Shortcut connection이 다른 모델에 적용된 사례
Vector quantization에서, 기존의 vector를 인코딩하는 것보다, residual vector를 인코딩하는 것이 훨씬 효과적
(Vector quantization : 특징 벡터 X를 클래스 Y 벡터로 mapping하는 것)
low level 비전 , 컴퓨터 그래픽에서, 편미분을 풀기 위해서는
system을 multiple scales의 하위 문제로 재구성하는 Multigrid Method를 사용
(각각의 하위 문제는 복잡, 세부적인 scale에 residual solution)
Multigrid를 대체하는 hierarchical basis pre-conditioning은 두 scales 간에 residual vector를 나타내는 변수에 의존
solution의 residual을 다루지 않는 기존의 방식보다 빨리 수렴
→ good reformulation, preconditioning은 최적화를 더 간단하게 해준다
highway network는 Resnet의 shortcut 과 다르게 파라미터가 추가되지 않음
Resnet의 shortcut은 절대 닫힐 일이 없어(0으로 수렴 하지 않기에) 모든 정보가 항상 통과된다.
따라서 지속적인 residual func을 학습하는 것이 가능
3. Deep Residual learning
실제로는, identity mapping은 최적이지 않지만, ResNet의 reformulation은 문제를 preconditioning하는데 도움이 된다.
만약 Optimal func이 zero mapping보다 identity mapping에 가깝다면,
Solver가 identity mapping을 참조하여 작은 변화를 학습하는 것이 새로운 func을 학습하는 것보다 쉽다.
3.2 Identity Mapping by Shortcuts
Shortcut connection은 추가 파라미터나 연산복잡성이 없다.
F + x를 연산하기 위해서는 F와 x의 차원이 동일해야 가능하다.
만약 다를 경우, linear projection W_s을 곱하여 차원을 일치시켜준다.
3.3 Network Architectures
baseline모델은 VGGNet을 기반으로 conv layer는 3x3 필터 사용
Output Feature map의 사이즈가 같은 layer들은 같은 수의 필터 사용
Output Feature map의 사이즈가 반이 되면, time complexity를 유지하기 위해 필터의 수를 두배로 늘려주었다.
Downsampling 시에, pooling을 사용하지 않고, stride가 2인 conv 필터 사용
network 끝에, global everage pooling 사용, 1000 size FC layer, softmax 사용
Plain network에 shortcut을 추가하여 구성.
input과 output의 차원이 동일하다면, identity Shortcut을 바로 사용.(실선)
zero padding을 하여 차원을 늘려주거나
projection shortcut을 사용한다.(1 x 1 convolution)
이 때, shortcut이 Feature map을 2 size 씩 넘기 때문에, stride를 2로 설정한다
짧은 쪽이 [256, 480] 사이가 되도록 random 하게 resize 수행
224 x 224 사이즈로 random crop
horizontal flip 부분적으로 적용 및 per-pixel mean을 빼준다
standard color augmentation 적용
매 conv이후, activating 이전 Batch Normalization 적용
Optimizer : SGD (mini-batch size : 256)
Learning rate : 0.1에서 시작 (학습이 정체될 때 10씩 나눠준다)
이후, 테스트 단계에서는 10-cross validation 방식을 적용하고, multiple scale을 적용해 짧은 쪽이 {224, 256, 384, 480, 640} 중 하나가 되도록 resize 한 후, 평균 score을 산출한다.
4.1 ImageNet Classification
18 layer(얕은) 모델에 비해, 34 layer(깊은) 모델에서 더 높은 Vaildation error가 나왔다.
학습시에, Training/ vaildation error를 비교했을 때,
34 layer에서 training error가 더 높았기에, Degradation problem을 확인했다.
이런 최적화 문제는 Vanishing gradient 때문에 발생하는 것이 아니라고 판단.
plain 모델은 BN이 적용되어, 순전파에서 0이 아닌 signal을 가지고 있다.
역전파에서도 gradient가 healthy norm을 보였음
→ 따라서 순전파/ 역전파에서 signal은 사라지지 않았다.
⇒ deep plain model은 exponentially low convergence rate를 가지기에 training error의 감소에 좋지 못한 영향을 끼쳤을 것이라 추측.
18 layer 및 34 layer ResNet을 plain 모델과 비교
모든 Shortcut은 identity mapping을 사용하고, 차원을 키우기 위해 zero padding을 사용 → 파라미터 수는 증가하지 않음
residual learning으로 인해 plain과 상황이 달라짐
34 layer ResNet이 18 layer ResNet보다 2.8% 정도의 성능이 뛰어남.
34 layer ResNet에서 상당히 낮은 training error → validation 성능 높아짐
⇒ degradation 문제가 잘 해결 & depth가 증가하더라도 좋은 정확도를 얻을 수 있음
34 layer ResNet의 top 1 error는 3.5%가량 감소
⇒ residual learning이 extremely deep system에서 매우 효과적
18 layer ResNet과 plain net을 비교했을 때 성능이 거의 유사하지만,
⇒ 모델이 엄청 깊지 않는 경우에도 ResNet이 더 빨리 수렴
Identity vs Projection Shortcut
앞서 비교한 ResNet 모델은 identity shortcut에서 zero padding으로 parameter 를 사용하지 않은 경우인 것과는 다른
size를 맞추기 위해 추가 파라미터가 있는 Projection Shortcurt을 사용한 경우를 확인해보자
dimension matching시에 zero-padding shortcut만 사용한 경우. (parameter-free)
dimension을 키워줄 때에만 projection shortcut을 사용한 경우.
모든 shortcut으로 projection shortcut을 사용한 경우.
세가지 옵션 모두 Plain 모델 보단 상당히 좋은 성능 가짐.
2 > 1 : zero-padded 차원이 residual learning을 수행하지 않기 때문
3 > 2 : projection shortcut에 의해 파라미터가 추가되었기 때문
세 옵션의 성능차가 작았던 건, projection shortcut이 degradation문제를 해결하는 것에 필수적이진 않다는 것을 나타낸다.
따라서 memory/time complexity와 모델 사이즈를 줄이기 위해, 본 논문에서는 옵션 3을 사용하지 않았다.
특히 identity shortcut은 bottleneck 구조의 복잡성을 높이지 않기에 중요하다.
Deeper Bottleneck Architectures
감당가능한 training time을 고려하기 위해, building block을 bottleneck design으로 수정함
각각의 residual function인 F는 2-layer stack 구조에서 3-layer stack 구조로 바뀜
1 x 1, 3 x 3, 1 x 1 conv로 구성
1 x 1 : dimension을 줄이거나 늘리는 데 사용
parameter-free 한 identity shortcut은 bottleneck 구조에서 특히 중요함
만약 identity shortcut이 projection shortcut으로 대체되면,
shortcut이 2개의 high-dimensional 출력과 연결됨에 따라,
time complexity와 model size가 2배로 늘어난다.
따라서 identity shortcut은 bottleneck design을 더 효율적인 모델로 만든다.
34-layer ResNet의 2-layer block을 3-layer bottleneck block으로 대체하여 50-layer ResNet을 구성했다. (dimension matching을 위해 2번째 옵션 사용)
101-layer and 152-layer ResNets
depth가 상당히 증가함에도, VGG-16 / 19 모델보다 낮은 복잡성을 가짐
50/101/152 layer ResNet은 34-layer plain 모델에 비해 top 1 error가 상당히 적은 것을 볼 수 있다.
또한 degradation문제가 발생하지 않은 것을 확인 할 수 있어, 우리는 더 깊은 모델을 통해 상당히 좋은 정확도를 얻을 수 있었다.
Comparisons with State-of-the-art Methods
과거 싱글 모델의 best 결과와 비교 했을 때,
152 Resnet은 single model top-5 validation error가 4.49%로 가장 적었다.
ResNet의 single 모델 (앙상블 적용 안 한 모델) 은 앙상블이 적용된 이전의 다른 모델을 능가했다.
앙상블을 적용했을 경우, 무려 top-5 error 3.57%를 달성할 수 있었다.
4.2 CIFAR-10 and Analysis
ResNet의 response가 plain net보다 상대적으로 많이 낮게 나왔음
→ residual function이 non-residual function보다 일반적으로 0에 가까울 것임 → depth가 깊어짐에 따라 response가 작아지는 것은,
각 layer가 학습 시 signal이 변화하는 정도가 작다는 것을 의미한다
Exploring Over 1000 layers
1202개 레이어 모델의 경우 110 레이어 모델과 유사한 Training error가 보인다.
이는 overfitting으로 인한 결과로 보인다.
성능을 향상시키면서 더 딥한 layer를 가진 모델 구현 - 152 layers
→ VGG에 비해 8배 더 deep한 모델, but still lower complexity
기존의 network는 깊이가 모델 성능에 큰 영향을 준다는 것을 알 수 있었음
→ 하지만 깊어질 수 록, overfitting, vanishing gradients, 연산량 증가
따라서 깊은 network일 수록 학습시키기가 까다로움
layer를 계속하여 쌓는 데, Vanishing/ Exploding Gradient 가 문제였다.
물론 SDG(strochastic gradient descent)를 적용한 10개의 layer까지는 normalization을 적용했을 때 커버 가능이었다.
하지만 deeper network에서는 Degradation 문제가 발생하게 된다.
이는 오버피팅 때문이 아니라, layer가 깊어졌기 때문에 test/training error가 높아졌기 때문이다.
(이런 degradation은 모든 system이 동일한 방식으로 최적화 되지 않는 다는 것 의미)
댓글 영역