현재도 사용하는 방식은 Residual shortcut connection에 관한 내용이다.

다 읽고 나서 드는 생각은 논문이 정말 읽기 쉽고 다양한 실험들을 포함하고 있어 정말 좋은 논문인 것 같다

 

1. introduction

  • 이 시대에 깊은 convolution network가 이미지 분류 문제를 리드하고 있었고 대부분의 논문에서 네트워크의 깊이가 정답률과 error에 매우 깊은 상관이 있다고 본다.
  • 그럼 여기서 물음이 "더 좋은 네트워크를 만드는 것이 레이어를 더 쌓는거보다 쉬운가?"가 된다 
  • 당연히 그냥 레이어를 더 쌓는것이 더 쉬운 해결책이 될 것이다. 
  • 하지만 그냥 레이어를 쌓기만 한다면 어느 시점에서 부터 training error가 증가하게 된다. - degradation problem
  • 또한 제대로 초기화되지 않은 네트워크는 vanishing/exploding gradients가 발생했고 제대로 초기화가 됐더라도 학습이 수렴함에 따라 정확도가 포화되는(saturated) 문제가 발생하였다 이 문제는 overfitting 때문이 아니다. 
  • 저자는 더 깊은 신경망을 학습시키기 위한 deep residual learning framework를 소개한다
  • 몇개의 쌓인 레이어가 다음 레이어에 직접적으로 연결되는 대신 residual mapping에 맞도록 명시적으로 연결한다 
  • 공식으로는 F(x) := h(x)-x 가 되고 이는 F(x) + x := H(x)가 된다 
  • 이 논문에서 identity mapping이라는 말이 많이 나오는데 이 뜻은 residual mapping시에 다른 작업을 하지 않고 단지 더한다는 의미이다 
  • 본 논문에서는 shortcut connection을 identity mapping으로 하였다 
  • Identity shortcut connection은 추가적인 파라미터가 필요하지 않아 complexity가 증가하지 않고 모든 네트워크에 end-to-end 학습이 가능하다 
  • 또한 기존의 문제인 정확도 포화 문제에서 네트워크의 깊이가 증가함에 따라 쉽게 정확도의 증가를 얻을 수 있었다 

2. Related work 

  • - Residual Representations
    • 과거 논문에서 벡터 양자화의 경우 원본 벡터를 인코딩 하는 것보다 residual 백터를 인코딩하는 것이 더 효과적으로 나왔다
    • 이런 solvers는 솔루션의 residual nature을 인식하지 못하는 solver보다 더 빠르게 수렴한다 
    • residual을 이용한다면 더 좋은 reformulation과 더 쉬운 preconditioning 최적화를 보인다 
  • - Shortcut connection
    • 많은 실험과 이론이 있었고 오래 연구되어온 분야이다 
    • 이전의 실험에서는 MLP에서 네트워크 입력과 출력에 linear layer를 추가하는 것도 있었다

  • 또한 Vanishing/Exploding gradients를 피하기 위해 auxiliary classifier를 추가하기도 하였다 -(Inception network) 
    • 기존의 논문들은 shortcut connection에 의해 구현된 레이어 응답, gradients, propagated errors를 centering 하는 방법을 제안했다 
    • 저자의 작업과 비슷한 시기에 highway networks라는 shortcut connections와 gating function을 사용하는 것이 제안됐는데 이 gate(highway)들은 데이터에 의존하고 파라미터를 가지고 있다. 그에 반해 identity shortcuts는 추가적인 파라미터가 없고 gated shortcut이 0으로 근사될 때 highway networks는 non-residual function이 될 수 있지만 저자의 공식은 항상 residual function을 학습하게 된다 정대 closed 되지 않고 모든 정보는 항상 전달된다 
      - 아래의 그림을 보면 처음 값이 음수 일 때 H(x)가 ReLu라고 가정한다면 음수는 0이되어 해당 노드는 더이상 값을 전파하지 않는다 - 하지만 residual을 뒤에서 합쳐주게 되면 residual의 정보가 넘어가 0이 되지 않는다 
      하지만 0이 처음부터 입력으로 들어왔다면 해당 노드는 0으로 계속 유지된다 하지만 같은 계층의 다른 노드의 값이 0이 아니라면 해당 노드에서 전파된 값으로 인해 노드는 close 되지 않는다

3. Deep Residual Learning 

  • - Residual learning 
    • 여러 비선형 레이어가 복잡한 함수를 점근적으로 근사할 수 있다고 가정하면 H(Hypothesis)가 점근적으로 residual fucntion을 근사화할 수 있다 
    • F(x) := H(x) - x  -> F(x) + x := H(x) 다음 공식이 성립하고 이 공식은 학습의 용이함이 다를 수 있다 
    • 기존의 네트워크가 깊어지면서 성능이 감소되는 문제는 solvers가 많은 비선형 레이어에 의해 identity mapping을 근사하기 어렵다는 것을 의미하는 것으로 보인다 만약 identity mapping이 최적이라면 solvers는 identity mapping에 가까워지기 위해 단순히 많은 비선형 레이어의 가중치를 0이 되도록 할 수 있다 
    • Perturbation Theory : 해석적으로 풀 수 없는 문제의 해를 매우 작다고 여길 수 있는 매개변수들의 테일러 급수로 나타내는 이론, 파라미터들이 매우 작으므로 급수의 유한개의 항을 계산하여 근사적인 해를 얻을 수 있다 
    • 최적의 함수가 zero mapping 보다 identity mapping에 가깝다면 solver가 새로운 함수를 학습하는 것보다 identity mapping을 reference 하여 perturbation을 찾는 것이 더 쉬울 수 있다 

 

  • - Identity mapping by Shortcuts 
    • Shortcuts을 사용할 때는 일반 네트워크와 더해지는 부분을 제외한다면 complexity는 똑같다
    • 여기서 F와 x 의 차원은 반드시 같아야 하기 때문에 linear projection을 이용할 수 있다 (padding, 1x1 conv)
    • Residual function을 다양한 방법으로 적용할 수 있지만 이 논문에서는 2개 또는 3개 층에서만 Shortcut을 진행한다. 
    • 단 하나의 레이어에서 Shortcut을 이용한다면 이는 linear layer와 유사하기 때문에 y = W_1x + x의 이점은 관찰되지 않았다 

4. Network Architectures

  • - Plain network를 학습시킬 때는 두가지를 따랐다
    • 1. Output feature map의 size는 같다. 레이어는 같은 수의 필터를 갖는다 
    • 2. Feature map의 size가 절반으로 줄면 레이어당 복잡도를 유지하기 위하여 필터의 수가 두 배로 늘어난다
  • - Residual Network
  •  Plain network에서 shortcut connection을 추가하였다 
  •  Input과 output의 사이즈가 같다면 directly 연결하였고 dimensions가 다르다면 두 가지 옵션을 고려하였다 
    • 1. Shortcut이 여전히 identity mapping이라면 추가로 zero padding을 추가하여 diemnsions를 증가시켰고 이러한 방법은 추가적인 파라미터를 필요로 하지 않는다 
    • 2. 1x1 convolution을 사용하여 dimentions을 맞추었다 두 방법 모두 stride는 2로 수행된다 
  • - Implementaion
    • 256, 480 사이즈 이미지에서 랜덤하게 sampled 하였고 수평 반전, 픽셀 평균 빼기, color augmentation을 사용하였고 각 convolution과 activation 사이에 batch normalization을 사용하였다 
    • SGD를 사용하였고 mini batch size는 256 
      learning rate는 0.1 error가 변하지 않으면 10으로 나누었다 
      600000 iterations를 진행 
      weight decay는 0.0001
      momentur은 0.9 
      dropout은 사용하지 않음 
    • testing에서는 기존과 같이 10개의 crop에서 테스트 하고 fully-convolution form을 사용 결과 scores를 average 함
    • 18-layer의 plain/residual nets를 비교하였을 때 성공적으로 training error를 줄였고 정확도는 비슷하지만 18-layer ResNet이 더 빠르게 수렴하는 것을 보면 이는 최적화를 용이하게 한다는 것을 볼 수 있다 

  • Compare with zero-pad between projection 
    • A : zero padding 
    • B : 차원 증가시킬 때에만 projection 사용
    • C : 모두 projection 사용
    • A의 경우 다른 것보다 성능이 별로였는데 이유는 0으로 채워진 차원이 실제로 residual learning을 하지 않기 때문이라고 본다 
    • C의 경우 B보다 약간 좋은데 이것은 추가된 파라미터 때문이고 A/B/C 간의 차이는 projection shortcuts이 degradation problem을 해결하는데 필수적이지는 않다는 것을 나타낸다 
    • B/C의 경우 파라미터 증가에 따라 모델 사이즈와 복잡도, 메모리 사용량이 증가한다 

  • Deeper bottleneck Architectures 
    • 깊은 네트워크를 학습시키는 것은 트레이닝 시간에 대한 우려가 있다 
    • 그래서 깊은 네트워크를 학습시킬 때는 bottleneck design을 사용하였다 
    • 모든 residual fucntion을 3 layer마다 사용하였고 이 3개의 레이어는 1x1, 3x3, 1x1 convolution이다 
    • 1x1 conv는 차원을 늘리고 줄이는 데 사용되었고 3x3 레이어는 더 작은 입력/출력 차원으로 병목을 남긴다. 이 디자인은 비슷한 시간 복잡도를 갖는다 
    • Figure 5에서 identity connection은 bottleneck 구조에서 특히 중요한데 아래 그림에서 identity shortcuts을 projection shortcut으로 변경하면 shortcut은 두 개의 고차원으로 연결되므로 시간 복잡도와 모델 크기가 두배로 증가함을 알 수 있다 따라서 bottleneck architecture를 위한 설계는 projection shortcut보다 identity shortcuts이 더 효율적인 모델로 볼 수 있다 

  • 50-layer ResNet 
    • 기존 34-layer Resnet에서 3-layer bottleneck block으로 변경하였고 3.8 billion FLOPSs를 가진다
    • 3-layer bottleneck blocks을 사용하여 depth가 매우 증가하여 152개의 레이어를 쌓아도 VGG-16/19보다 더 작은 complexity를 가지고 더 정확하다 또한 기존의 네트워크의 깊이가 깊어짐에 따라 정확도가 감소하는 문제도 관측되지 않았다 

  • Analysis of Layer Responses
    • 각 3x3 laayer에서 BN뒤 non-linearity에 들어가기 전 레이어의 표준편차를 보았다
    • ResNet은 plainNet보다 더 작은 응답 강도(response strength)를 보여줬다 
    • 또한 ResNet-20,56,110간의 비교를 보면 더 깊은 ResNet이 더 작은 크기의 응답을 가짐을 알 수 있다
    • 레이어가 많을수록 ResNet의 레이어는 신호를 덜 수정하는 경향이 있다

  • Exploring Over 1000 Layers 
    • 1202-layer를 사용해도 최적화에 어려움은 없는 것을 보였지만 110-layer보다 더 낮은 결과를 보면 여전히 문제는 존재한다 
    • 두 네트워크가 비슷한 training error를 보이지만 정확도가 더 낮은 것을 보면 이것은 overfitting 때문이라고 보인다
    • 부족한 데이터셋으로 인해 불필요하게 레이어가 커졌다고 보인다 
    • maxout이나 dropout 같은 강력한 정규화 방식이 있지만 저자는 테스트를 진행하지 않았고 아마 효과가 있을 것이라고 생각한다 나온다

+ Recent posts