안녕하세요, 이번 포스팅에서는 ICML2017에 공개된 논문 “A Closer Look at Memorization in Deep Networks”을 소개해드리겠습니다.  

본 논문은,  ICLR2017에서 Best Paper Award를 받은 “Understanding deep learning requires rethinking generalization”에 대한 continuation이라 생각하셔도 무방 하겠습니다. 

아마 Neural Network를 조금 공부해보신 분들은 흔히, network parameter 혹은 capacity가 배워야 하는 데이타셋에 비해 너무 크다면, Neural Net이 데이터셋 자체를 외워버려서 overfitting현상을 보게된다는 common belief가 있죠. 

하지만! 현존하는 Deep Neural Network 중 아주 많은 모델들이 필요 이상으로 parameter가 많다하여도(Deep & Wide), overfitting 하지 않고, good generalization 퍼포먼스를 보이는 현상을 자주 목격할수 있습니다.  이건 아마도 저희가 Neural Network learning에 관한 이해도가 낮아서 정확한 설명은 아직 어렵다는 생각이 듭니다만, 이번에 소개해드릴 논문이 그나마 조금 이해안되 가려웠던 부분들을 해소시켜드렸으면 합니다.

본 논문에서 의미하는 “memorize”는, “the behavior exhibited by DNNs trained on noise”라는 중요한 가정이 된 연구입니다. 

Motivation

Zhang의 논문, “understanding deep learning requires rethinking generalization”에서, Deep Neural Network들이, Random Noise를 memorize할수 있다는 결과물을 보여줬습니다. 본 논문의 저자들은, 이 memorization이 실제 데이터에서도 일어나고 있는 현상인지에 관하여 expand하고자 하는게 이번 목적입니다.

Contribution

본 논문은, 아래 3가지 Contribution을 합니다.

  • Real Data와 Random/Noise Data의 질적인 차이가 Deep Neural Network optimization할때 존재 한다
  • DNN은 패턴을 제일 우선으로 배운다.
  • 몇몇의 Regularization Technique들은, DNN이 real data를 배우는대에 큰 도움을 준다.

Experiments

이 논문의 모든 실험은, MNIST와 CIFAR10 데이터셋을 사용합니다.

MNIST는, 2 layer MLP를 이용해서 학습시키고, CIFAR10은, CNN을 이용하여 학습시킵니다.

Qualitative Differences of DNNs Trained on Random vs Real Data

먼저 소개드릴 실험들은 Neural Network가, random vs real 데이터에 학습 됬을시 어떤 질적인 차이점들이 있는지 소개해드리겠습니다. 

 

Easy examples as evidence of patterns in real data.

exp0.png

우선 randX: 100% noisy input.     randY: 100% noisy label을 뜻합니다.
이 실험이 보여주는것은, 각 input x(총 1000개가 존재함)마다, epoch1만큼만 train된 실험을 100번넘게 돌린후, 결과의 대한 P(correctness)를 average합니다. x축은, 이 1000개의 관한 결과를 sort 하여 나열 합니다.
Note:  P(correctness)는, training(val이 아닌!) accuracy라고 보셔도 무방합니다.
여기서 observer할수 있는 점은 ! 파란색선이 P(correctness)가 한쪽으로는 높고 다른 한쪽으로는 낮은걸 확인할수있는데요, 다시 말해 이건, CIFAR10데이터셋 안에, easy example과 hard example이 존재 한다는 것을 힌트합니다. 랜덤 데이터, 주황/초록은 반면에, 낮은 P(correctness)를 항상 유지합니다. 이게 ~10% 정도에서 유지되는 이유는 클라스가 10개고, random guessing을 한다면 아마 ~10%의 accuracy가 나오겠다는 것으로 추정됩니다. 즉슨, 랜덤 데이터의 difficulty는 항상 consistent 하다.
이 결과는, Neural Network가 실제 데이터를 볼때, 그냥 memorize를 하는게 아니라, 쉬운 패턴을 배우기 때문에 easy샘플이 데이터에 존재한다 라는 결론을 내릴수 있지 않을까 싶습니다.

 

Experiment on difference in loss sensitivity in Real vs Random data.

두번째 실험은, 1000개 데이터의 대한 loss sensitivity를 비교하여, Gini coefficient로 measure한 method입니다.exp1.png잠시 definition을 짚고 가자면,

sensitivity:  g^t_x = || dL_t/ dx ||_1  즉, time step t일때의 gradient 인거죠. 
loss sensitivity: \hat{g}_x = \frac{1}{T}\sum_{t=1...T}g^t_x 즉, 1…T인 time step 까지의 대한 average입니다. 

Gini coefficient는, 현재 주어진 value들 중들의 관한 inequality measure입니다. 0에 가까울수록, equal한 value들이 많다는 의미이고, 1에 가까울 수록, unequal하다는 뜻입니다. 

다시 위 실험의 결과를 본다면, Real 데이터에서, gini coefficient가 SGD 스텝이 많아질수록 높아집니다. 그 뜻은, loss sensitivity가 다양하게 존재한다는 의미이고, random 데이터안에서는, loss sensitivity가 다양하지 않다는걸 보여주고 있죠.

결론적으로, random data와  real data는 다른 learning dynamic을 보여주고 있다는 또 하나의 증거로서 memorization을 하고 있지 않다 라고 주장해볼수 있겠습니다. 

 

Effect of capacity on validation performances

이번 실험은, 현모델의 capacity가 validation performance에 어떤 영향을 미치는지를 한번 시험해 봅니다. Screen Shot 2017-08-17 at 7.44.57 PM.png

우선, Noise가 없는 데이타는 가장 validation accuracy의 plateau가 빠릅니다. 하지만, Noise가 많아질수록, 더욱 많은 Capacity가 필요하여, plateau를 하는 시점이 늦어지는 현상을 볼수 있습니다(논문에서, 왼쪽과 오른쪽 그래프가 정확히 어떤 실험을 뜻하는지 명시가 안되있네요..). 이 현상 자체로도, real data는, noise data와 다른 Training을 보여주는걸 보아선, memorization을 하는 방향으로 학습하지 않고 있다 할수 있습니다.

추가적으로, Traditional Learning theory에선, capacity에 한계점을 두어야만, 레귤러 패턴을 배울수 있다하지만, 이번 실험의 결과는 contradicting한 결과를 보여줍니다. Regular 패턴이 없는 노이즈데이터 대비 실제 데이터를 줄임과 동시에 capacity를 늘렸을 때에도, Regular 패턴을 배울수 있다라는것을 확인할수 있습니다. 

 

Effect of capacity and dataset size on training time.

이번 실험은, capacity + dataset size와 트레이닝 타임과의 관계를 보기위한 실험입니다.

exp3

우선, y축에 time to convergence는, 몇 epoch이 100% training accuracy까지 달성하는데 필요한지의 대한 normalized measure입니다. 
왼쪽에 있는 그래프를 먼저 보신다면, Noise의 비율이 높을때, hidden unit number가 증가한다면, time to convergence가 더욱 높아지는 현상을 확인 할수 있습니다. Memorize를 해야할 비중이 높아지기 때문에 더 많은 capacity를 요구 하고, 그것에 대한 time to convergence return이 비교적 좋습니다.

오른쪽의 그래프를 보시면 아시겠지만, 데이터가 많아지면 많아질수록, input-output mapping을 도와주기 때문에, convergence가 빨라진다는 결과를  Noise가 있든 없든 볼수 있습니다. 하지만, memorization이 더욱 요구되는 노이즈들은, time to convergence가 real data에 비해 더욱 높습니다.

이 또한, real data와 noise data의 다른점으로, 본 논문의 memorization의 정의를 또 한번 고려했을시에, real data는 memorization을 하고 있지 않다, 라는 힌트가 될수도 있겠습니다. 

 

DNNs learn patterns first

패턴을 먼저 배운다는 것을 보여주기 위해선, 우선 네트워크가 배우는 hypothesis가 얼마나 점점 복잡해지는 지를 수치화 할 필요가 있습니다. 

Sokolic et al이 쓴 논문 중, Robust large margin deep neural network에서 이런 theory를 제시 합니다. “The number of different regions into which an input space is partitioned reflects the complexity of the learned hypothesis”. 즉, input space가 얼마나 dense하게 나누어져 있는지 본다면, 모델이 얼마나 complex한 hypothesis를 배웠는지 알수 있다 합니다. 

본 논문에서는, 이 density를 Critical Sample Ratio라는 것으로 측정합니다.

데이터 포인트 중, 부근에 하나라도 adversarial sample이 존재한다면, critical sample이라고 합니다. 
여기서 Critical Sample Ratio는, \frac{Total Number of critical samples}{Total number of Data}으로 정의합니다. 

Critical Sample Ratio가 높은 모델은 complex한 hypothesis를 배웠다 가정하고, 그 반대는 비교적 simple한 hypothesis를 배웠다 가정합니다. 

Adversarial sample이 부근에 있는 데이타가 많다는 의미는, decision boundary가 밀접한 데이터들이 많다는 의미이고, 그뜻은 또 모델이 complex한 hypothesis를 배웠다는 의미로 짐작됩니다. exp4.png

이 실험은, training도중, validation set에서 critical sample이 얼마나 존재하는지를 측정합니다. 바로 salient한 결과는, critical sample이 noise data에 train됬을때 월등히 많이 존재한다는 것 입니다. Critical Sample Ratio가 또 서서히 올라가서, stabilize하는 패턴을 보면, Neural Net이 우선 쉬운 패턴부터 배우고, 점점 어려운 패턴을 배워나간다는 증거로 볼수도 있겠습니다. 

 

Effect of Regularization on Learning

마지막 실험으론, Regularization이 어떤식으로 random label이 존재할때, real data에서의 performance를 유지시킬수 있는지에 관해 연구를 보았습니다. Screen Shot 2017-08-18 at 5.43.10 PM.png

y축은 모델이 real 샘플로만 구성되있는 validation 셋에서의 성능을 측정을 보여주고, x축은 모델이 training할때 random label만의 performance를 보여줍니다. 
즉, 가장 좋은 regularizer는, 모델의 training performance가 어디에 위치해 있던 높은 validation performance를 보여주면 되는 것이고, 이번 실험에서 보여준 최고의 regularizer는 dropout 이나, dropout + adversarial로 보여집니다. 

 

Conclusion

저자들은 Zhang의 결과, noise에서 train되는 현상을 memorization이라 정의한다면, real data가 training할때 noise와 비슷한 dynamic을 보여준다면,  memorization을 하고 있을수 있다는 가정을 하고 여러 실험을 돌려보았스빈다, 아직까지 real data는 최소한 모델 학습 초기단계에는 memorization이 존재하지 않는다는 것을 볼수 있었습니다. 
Neural Network는 noise에 fit할수 있다는 것을 알고 있다는 전제하에, 정확히 왜 real data에는 서는 generalizable solution을 보여줄수 있는지는 아직도 미지수입니다. 
모든 실험들이 강한 evidence를 보여진다고 하기엔 힘들지만, 결론은, memorization + generalization은, Neural Network의 architecture와, optimization procedure를 어떻게 setting하냐에 바뀔수 있다는 해석을 해볼수 있겠습니다.
이런식의 연구들을 해주는 모두에게 너무 감사하고 진정한 Deep Learning발전에 필히중요한 topic이 아닌가 싶습니다. 저 또한 머지않은 미래에 데이터와 Neural Network training에대한 관계성을 연구한 주제를 다뤄주면 좋겠네요 ! 

References

A Closer Look at Memorization in Deep Learning, Arpit et al 2017, ICML2017

Understanding Deep Learning requires rethinking Generalization, Zhang et al 2016, ICLR2017.

Robust large margin deep neural networks, Sokolic et al, 2016, arXiv.

Posted by:Chris Dongjoo Kim

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s