728x90
뭔가 속시원하게 이해하기 어려웠던 논문
열린 결말 같은 결론..
내 언어로 풀어서 이해하면 자칫 오개념이 될 것 같았던 논문..
새벽 세 시에 리뷰해봅니다...
Abstract
- DNN이 매우 큼에도 불구하고 성공적인 DNN은 train과 test의 성능 차이가 매우 작다.
- 이 말은 일반화 오류가 작다고 표현
- 일반화: 보지 않은 새로운 data에서도 잘 작동하는 것
⇒ 일반화 오류가 작다는 건 모델이 단순히 크기만 커서가 아니라 그 안에 존재하는 모델의 feature와 학습하는 방법이 성능 차이를 줄이는데에 기여한다!
- 위와 같은 접근법, 전통적인 접근법 (feature 학습이나 정규화)는 large NN의 일반화 성능을 충분히 설명하지 못한다는 걸 실험적으로 보여줌
- sota ResNet for image classification을 훈련할 때 train data label을 무작위로 변경 or 실제이미지 대신 random noise를 사용하더라도 모델이 완벽히 학습하더라
- → 네트워크가 의미없는 정보도 학습할 수 있을 정도의 표현력을 가지고 있음을 시사
- 그니까 data를 그냥 암기했다는 거지
- 정규화를 적용해도 크게 변하지 않았음
- 깊이가 2 인 간단한 conv의 경우에도 parameter 수가 data point 수를 초과하면 이론적으로 완벽한 표현력을 가질 수 있음
- → 데이터를 완전히 암기한다?
→ 즉! large NN이 왜 잘 작동하는지는 정규화나 모델의 특성으로는 설명할 수 없으며
일반화 성능이 더 복잡한 요소들에 의해 결정된다
일반화에 대한 새로운 접근이 필요하다!
Introduction
- deep artificial NN은 trainable parameter > sample data
- 그럼에도 train, test error 차이가 작다
- 일반화를 잘 못하는 모델 아키텍처를 고안할 수 있음
- 그럼 일반화를 잘 수행하는지의 여부를 구분할 수 있는 요소는 무엇일까?
- 뭐 많은 여러가지 측정 방법을 제안해왔었음
- VC 차원, 라데마허 복잡도, uniform stability .. 등
Our contributions
- randomization tests
- standard architectures에서 데이터의 진짜 라벨 대신 무작위 라벨로 교체
- ⇒ DNN은 random labels도 쉽게 맞출 수 있다! → train error ~~ 0
- NN이 data를 모두 암기했음을 의미
- but, test error는 train label과 상관관계가 없기에 random chance를 넘지 못 함
- 일반화 성능이 아예 상실
- 이는 statistical learning 관점에서 다음을 시사
- NN의 effective capacity는 전체 dataset을 암기하는데 충분함
- random label로도 최적화는 easy함, 시간이 조금 걸릴 뿐
- randomizing label은 data transformation에 불과함
- image를 random pixels로 대체 → training error 0
- CNN이 spatial한 특징이 있음에도 random noise를 학습할 수 있음을 의미
- The role of explicit regularization
- weight decay, dropout, data augmentation 과 같은 명시적 정규화들이 generation error를 충분히 설명하지 못함을 보여줌
- 흠 model의 test error를 개선하는 역할인 parameter tuning으로 보일 뿐 정규화가 없는 경우에도 일반화 성능은 나쁘지 않음
- Finite sample expressivity
- Two layer + ReLU가 2n+d의 parameter를 가지고 d차원에서 n 크기의 샘플의 모든 label을 표현할 수 있음을 증명
- 깊이 k인 네트워크는 각 layer가 O(n/k) 개의 parameter만 가지도록 구성할 수 있음
- 깊이를 늘리면 네트워크 폭?을 줄일 수 있다
- 전체 도메인에서의 함수 표현력 대신 유한한 데이터의 라벨링 표현력에 초첨을 맞추자
- 깊이랑 파라미터 수가 적더라도 데이터 크기에 비례하면 모든 labeling을 학습할 수 있다!
- The role of implicit regularization
- SGD: stochastic gradient descent가 implicit regularization 역할을 함
- 항상 small norm에 수렴
- SGD도 모든 아키텍처의 일반화 성능 차이를 설명하지 못 함
- SGD: stochastic gradient descent가 implicit regularization 역할을 함
- → 명시적이지 않고 알고리즘 자체가 자연스럽게 정규화 현상을 가져오는 것
Effective capacity of Neural Networks
- 실험의 목표는 NN이 실제로 학습할 수 있는 capacity가 얼마나 되는가?를 알기 위함
- 신경망이 얼마나 복잡한 패턴을 학습할 수 있는지 이해하기 위해
- randomization 기법을 사용
- 방법
- train on true data (일반적인 data)
- train on Randomized labels
- 레이블을 랜덤하게 섞음 → input data와 정답 사이에 아무런 관계가 없음
- feature 학습은 불가 → 일반적으로 제대로된 학습이 불가능함
- 예상 결과 vs 실제 결과
- Randomized labels 의 경우 학습이 불가해야함
- but
- 해당 경우도 거의 완벽하게 외워버림 →
- 즉 학습이 여전히 진행되었으며 결론적으로 train loss가 낮음
- NN의 엄청난 capacity가 있음을 의미
- 실험에서 제기하는 문제점?
- 일반화에 대한 개념을 다시 생각해볼 필요가 있다
- 기존에는 보지 않은 데이터에도 일반화할 것이라고 생각
- 근데 아무 의미없는 랜덤 패턴도 쉽게 학습한다면 일반화 성능이라는 것이 보장될 수 없을 것
- 딥러닝 모델이 단순히 패턴을 학습하는 것이 아니라 완전히 랜덤된 데이터도 외울 수 있을 정도의 capacity를 가지고 있어
- 즉, 기존의 vc차원, rademacher 복잡도와 같은 이론?도 적절하지 않을 수 있다!
- 일반화에 대한 개념을 다시 생각해볼 필요가 있다
- 그래프해석
- (a) learning curves
- true label은 빠르게 학습되며 loss 감소
- random label은 가장 느리게 loss 감소
- 무의미한 패턴도 외우려고 함
- 그래서 learning rate 스케줄을 바꿀 필요가 없음
- 일단 암기가 시작되면 빠르게 수렴함
- suffled pixels. random pixels, gaussian noise 는 loss가 나름 빠르게 감소
- 그냥 이상한 패턴이라도 만들어내면 되니까 학습할까? 고민하지않고 냅다 외움
- (b) Convergence Slowdown
- label이 랜덤해질수록 학습 속도가 느려진다
- 하지만 여전히 학습이 진행되긴 함
- 복잡한 모델일수록 random label을 외우는 속도가 상대적으로 느려지지만 결국 외움
- inception > AlexNet, MLP
- label이 랜덤해질수록 학습 속도가 느려진다
- (c) Generalization Error Growth
- label이 random해질수록 test error 증가
- AlexNet이나 MLP는 Inception 보다 빨리 일반화 성능이 나빠짐
- random label이 학습하는 것은 가능하지만 일반화는 전혀 되지 않는다!
- 본 데이터는 잘 학습할지라도 새로운 데이터는 엉망
The Role of Regularization
정규화가 과적합을 방지하는데 어떤 역할을 할까 에 대한 논의
- 정규화는 보통 데이터가 적고 파라미터가 많은 상황에서 overfit 되지 않도록 도와줌
- data augmentation, weight decay, dropout 을 비교 실험
- Inception V3는 Data augmentation, weight decay를 사용해도 random set을 잘 맞춤
- AlexNet의 경우 weight decay만으로는 random set에 잘 수렴하지 못함
- 딥러닝에서 정규화가 반드시 필요하지 않거나, 모델에 따라 그 필요성과 효과는 다를 수 있다!
- (a) Inception on ImageNet
- early stopping은 다른 정규화 기법이 없을 때 일반화를 개선하는데 어떤 잠재적 효과가 있을 수 있다
- (b) Inception on CIFAR10
- early stopping은 CIFAR10에서 반드시 유용하지만은 않음
- BN은 train 과정을 아정화시키고 일반화 성능을 향상시킨다
- 모든 정규화 기법을 끈다면?
- top-1 acc가 18%는 하락한다..
- 정규화가 모델 성능을 높이는데는 중요함
- 근데 데이터 증강이 더 중요하다?
- 얘만 켰을 때 top-1 acc를 달성
- top-1 acc가 18%는 하락한다..
⇒ 정규화 중요하긴 한데, 모델 아키텍처나 data augmentation 과 같은 다른 요소에 의해서 크게 영향을 받을 수 있음!
Conclusion
- effective capacity를 정의했음
- 딥러닝 모델은 train data를 암기할 수 있을 만큼 충분히 복잡하다
- 모델의 파라미터 수나 차원으로 모델의 복잡도를 평가하며 그것으로 일반화 능력을 설명하는데는 한계가 있다
- 최적화가 잘 이루어져도 그것이 반드시 모델이 일반화가 잘 한다는 것을 보장하진 않는다
- 최적화가 쉬운 이유가 일반화 원인과는 다를 수 있다!
내가 생각하는 이 논문의 contribution
다른 논문과는 다르게 method를 제시하거나 모델의 새로운 아키텍처를 제시하는 논문이 아니다.
그냥 일반적인 생각에 대해 문제 제기를 하는 논문.
그치만 generalization 이라는 딥러닝에서 특정 분야가아닌 모든 분야에서 다루는 부분에 대한 새로운 접근 방식을 제시했다는 점에서 의미가 있었다고 생각한다.