close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

논문제목 : Deep Network with Stochastic Depth

발표자 : 전혁준님

 

Abstract

     Painpoint:

          Richness 증가 —> Deep Network —> Traning 어려움(훈련의 어려움: gradient vanishing problem, test error 증가)

     Stochastic Depth(모순적인 훈련이 가능):

          training --> short network(expectation)

          testing --> deep network

          단산한 구현이지만, powerful하다.

     Residual Net으로 stochastic 구현

          training time이 감소

          Depth을 증가(1,200 Layers)해도 testing 에러 감소(4.91% CIFAR-10)

       

Introduction

Vanishing Gradient:

  1. 잘 알려진 Issue(깊은 layers)
  2. 반복적으로 small weight을 곱한여, 비효율적으로 gradient가 작아진다.
  3. 해결방법: cafe initialization, hidden layer supervision, batch normalization

Diminishing feature reuse:

  1. random initialized weight matrix을 반복적으로 하여, feature가 사라진다. 그래서 의미있는 gradient direction을 만들기가 어렵다.
  2. 해결방법: feature를 그냥 넘긴다.

Long training time:

  1. depth가 깊어질 수록 forward/backward의 경로가 선형적으로 증가. 152-layers ResNet 도 몇 주 소비 (state-of-the-art GPUs)

내부적인 딜레마:

  1. short network의 훈련 시간의 효율성, but 부족한 정보 표현력.
  2. deep network(VGG)는 표현력은 좋다, but 많은 시간이 필요.

Deep network with stochastic depth

  1. training - small (expected) depth -> training time 감소
  2. testing - large depth -> testing error 개선
  3. surprisingly effective in practice
  4. stochastic depth -> ensemble of network of different depths

 

Background

  1. Vanishing gradient and diminishing feature Problem:

    1. 이전: Greedy layer-wise training, better initialization schemes.
    2. 최근:

      1. Batch Normalization: mean & variance of hidden layers (mini-batch), gradient vanishing
      2. Skip connections: Highway Networks, information highways

Residual Networks(ResNets): Highway Network by shortcutting (mostly) with identity function.

  1. 단순성: feature을 그냥 넘겨(통과), 상의 layer의 input feature를 재사용함.
  2. 효과: training 효율을 개선
  3. 개발동기: depth가 증가할 수록, traninig error가 증가
    * 일반 상식에서 어긋남: depth가 증가할 수록 model 복잡도 높아지면서 fitting이 잘되다가 최종 overfitting이 나는 것임

    1. Degradation problem:

      1. overfitting이 발생하지 않음에도 불구하고, shallower network보다 성능이 나쁘다(quality drops). 
      2. 보통 최적화가 잘 작동하지 않는 다고 설명함.
      3. Deep network는 이론상 새로이 추가된 layer의 identity mapping함수를 학습할 수 있어서, shallower network보다는 성능이 더 좋아야 한다.
      4. Identity mapping 문제: 실제로는 optimizer는 identity(or near-identity) mapping을 학습하는데 어려움이 있다.
      5. Residual mapping은 이 identity mapping 문제를 더 쉽게 완화할 수 있다.
    2. 많은 layer를 통과하면서, gradient와 training signal의 소별로 network의 function approimation이 나쁘게 된다.
    3. 솔루션: skip connections (network사이를 건너 뛴다):
      Hl = ReLU(fl(Hl−1) + id(Hl−1))

Dropout: 확률적으로 hidden node/connection을 죽이는 것.

  1. 일반적인 regularization method for neural networks
  2. co-adaptation(hidden nodes이 collaborating)을 효과 감소(개발적으로 유용한 feature를 훈련대신 dropout을 사용)
  3. Ensemble of network효과: 지수적으로 많은 small networks의 훈련과 동일
  4. Batch Normalization과 Dropout의 같은 사용은 문제가 있다는 보고

 

 

Deep Networks with Stochastic Depth

기본원리: traning 시에는 depth가 감소(mini-batch당 무작위로 전체 layer을 생략(skip)한다, skip connections) 

Survival probability:

  1. p_l hyper-parameter,
  2. Linear decay rule: 
  3. p_l(layer l의 survival probability)과 p_L(p_L은 마지막 layer의 survival probability) 은 다르다.

 Expected network depth:

  1. 1 - p_l 확률로 bypass를 한다면, network depth가 줄어든 효과를 작용
    .
  2. L은 ResBlocks의 개수
  3. E(tilt_L) = (3L-1)/4 or E(tilt_L) = 3L/4 ex) 110 layers L=54 —> E(tilt_L) = 40.
  4. Depth의 감소 효과 —> vanishing gradient & information loss problem을 완화 시켜준다.

Training Time Savings:

  1. ResBlobk에서 bypass는 fowrad-backward시에 gradient update와 계산을 줄여준다.
  2. Linear decay rule이면 대략 25% 정도 절약된다.
  3. Uniform이면 더 좋은 효과를 얻을 수 있다. p_L = 0.2이면, test 성능은 비슷하고 constant depth보다 40%빠르다. 

Implicit Model Ensenble:

  1. L레이어일 경우, 2^L개의 possible network 조합이 발생
  2. mini-batch에대하여 training일 경우, 2^L개중에 하나를 sample하고 update한다.
  3. testing일 경우, 2^L개의 모든 network의 평균을 낸다.

Stochastic Depth during Testing:

  1. Network의 큰 변화를 줄 필요가 없다.

 

Result

Benchmark:

     CIFAR-10, CIFAR-100, SVHN을 대상으로 함.

     CIFAR-100 - 100-layers ResNet(He et al.), 18개의 ResNet으로 구성(3개의 group, 16, 32, 64)

 

 

 

 

Training with a 1202-layer ResNet:

CIFAR-10 - overfitting이 발생한다. test error 7.93%로 110-layer network보다 최악이다(기존 연구, He et al[8]).

300 epoch에서 실험, learning rate 0.01("warm-up"), 0.1로 재설정후, 150와 225 epoch에서 10으로 나누어줌.

stochastic depth network에서 성능이 좋다.

 

Analytic Experiements

Vanishing gradients: CIFAR-10 dataset 분석

     Fig 3.과 관련하여 커브를 관찰하는 것이 좋다.

 

Hyper-parameter sensitivity:

  1.  survival probability p_L,

    1. L=54를 대상으로 하였음.
    2. Linear decay and uniform assignment rules on CIFAR-10 data set
  2. 해석:

    1. p_L을 적당히 잡으면, baseline보다 성능이 좋다.
    2. linear decay rule이 uniform consistently보다 성능이 좋다.
    3. linear decay rule이 상대적으로 robust하다.
    4. testing의 정확도를 희생하지 않으면서 training 시간을 줄일 수 있다.

       

Conclusion

  1. stochastic depth기반한 deep network 기법을 소개
  2. Very deep neural network에서 효율적이고 효과적으로 훈련을 한다.
  3. Stochastic depth로 depth가 증가하면서 발생하는 overfitting이나 approximation 실패를 완화한다.
  4. 정확도를 희생하지 않으면서 훈련 시간을 감소할 수 있다.

 

REFERENCES

[8] He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385 (2015)

 

논문 원문: 

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 논문 발표 리스트 음파선생 2018.01.26 6040
공지 게시판 자료 복구의 건 음파선생 2017.09.11 443
84 [자율주행장난감]_160817_RL_DQN 모두의연구소 2017.07.11 52
83 [논문반/논문세미나] Inside-Outside Net : Detecting Objct in Context with Skip Pooling and Recurrent Neural Networks 모두의연구소 2017.07.11 71
82 [논문반/논문세미나] Inception trilogy 2, 3 [1] file 모두의연구소 2017.07.11 532
81 [논문반/논문세미나] FaceNet_A Unified Embedding for Face Recognition and Clustering 모두의연구소 2017.07.11 483
80 [중급반/논문세미나] Learning to Respond with Deep Neural Networks for Retrieval-Based Human-Computer Conversation System file 모두의연구소 2017.07.11 3181
79 [자율주행 장난감] 자율주행 차량이나 ADAS 관련 Database 링크 모음 모두의연구소 2017.07.11 938
78 [중급반/논문세미나] SSD : Single Shot MultiBox Detector [3] 모두의연구소 2017.07.11 7231
77 CNN practical - MATLAB으로 자세히 설명하는 CNN 모두의연구소 2017.07.11 1121
76 [중급반/논문세미나]Deep Learning을 이용한 Emotion Recognition 기법들 소개 모두의연구소 2017.07.11 626
» [중급반] Deep Network with Stochastic Depth [1] 모두의연구소 2017.07.11 1835
74 [중급반] Towards Good Practices for Very Deep Two-Stream ConvNets 모두의연구소 2017.07.11 42
73 [Edu2] First Contact With Tensorflow Chp 3~4 자료 공유 모두의연구소 2017.07.11 44
72 [중급반] Deep Metric Learning Using TripletNet Network file 모두의연구소 2017.07.11 3242
71 [중급반] cs224d, Lecture 8. Recurrent Neural Network 모두의연구소 2017.07.11 134
70 [중급반] 20160613 Delving Deeper into Convolutional Networks for Learning Video Representations (이일구 발표) file 모두의연구소 2017.07.11 87
69 [자율주행 장난감] 160928 모두의연구소 2017.07.11 240
68 [영상인식팀] 관상 프로젝트 제작 과정 정리 모두의연구소 2017.07.11 936
67 [자율주행 장난감] 160921 모두의연구소 2017.07.11 106
66 [영상인식팀] 2016.8.24 11회 모임 [1] 모두의연구소 2017.07.11 143
65 [EDU3기] 9/9일 연구노트 (여덟번째 모임) 모두의연구소 2017.07.11 92