The Lottery Ticket Hypothesis: Finding Sparse, Train able Neural Network와 후속 연구
Updated:
Lottery Ticket Hypothesis와 그 후속 연구 관련 글을 보고 정리했습니다. 공부한 링크는 아래와 같습니다.
https://velog.io/@bismute/The-Lottery-Ticket-Hypothesis%EC%99%80-%EA%B7%B8-%ED%9B%84%EC%86%8D-%EC%97%B0%EA%B5%AC%EB%93%A4-%EB%A6%AC%EB%B7%B0
The Lottery Ticket Hypothesis
- ICLR 2019의 Best Paper Award 수상
- 현재 딥러닝 모델은 데이터 수, 복잡성에 대해서도 훨씬 많은 파라미터 사용
- “The curse fo dimensionality”
- ‘더 많은 파라미터’, ‘더 복잡한 모델’은 데이터의 수가 적을수록 암기하기 때문에 문제 발생(overfitting)
- 하지만, Gradinet Descent는 자체적으로 어느정도 정규화 효과가 존재하며, 그 결과 빅데이터와 딥러닝의 조합이 훌륭한 feature extractor를 만드는 현존하는 최고의 방법(sota)라는 것이 알려짐
논문의 가설
- random 초기화된 dense neural network는 개별 학습할 때 동일한 iteration에서 원래 네트워크의 성능과 같은 subnetwork를 포함한다.
- 즉, 부분적인 네트워크를 잘 골라내면 기존의 큰 네트워크와 같은 성능을 낼 것이라는 주장!
- 이를 Lottery Ticket Hypothesis라고 함
- 찾는 여러 방법들 중 하나인 iterative Manitude Pruning을 통해 네트워크를 잘 찾는 방법을 제안
- Pruning : 가중치의 크기가 작은 것은 제거
- 제거해도 괜찮은가?
- 레이어를 시각화하면 sparse 구조 나타남(90%까지 앞축해도 성능은 1~2%차이)
그렇다면 어차피 가지치기하고 재학습을 해야하는데 가지치기를 먼저 하면 안되는건가?
- 경헙적으로 불가하였다. (실험해봤는데 실패했다는 뜻)
- 아웃 뉴런이 있어야 바르게 학습했다.
-
가지치기 이후 fine-tuing이 쉽지 않음
- 논문에서는 [reinit] 기법을 통해 해결하였음
-
무엇이 중요한지 저장된 mask는 학습된 네트워크를 기준으로 가져오되, 가중치는 학습하기전의 네트워크를 가져오면(reinit) fine-tuning 가능
-
이렇게 찾은 네트워크는 기존의 네트워크보다 같거나 좋은 성능을 학습 iteration에서 도달함
-
- 논문의 한계 : 가지치기를 위해 학습이 필요
- 논문의 의의 : winning ticket의 존재를 발견
후속 연구들..
다른 모델, optimizer, 과제, 데이터셋에서도 동작할까?
-
“The Lottery”에서는 vgg, resnet과 같은 고전 모델, SGD, Image Classification, CIFAR10에서 실험하였음
- 논문: “One ticket to win them all: generalizing lottery ticket initialization across dataset and optimizers”
- winning ticket이 Fashion MNIST, SVHN, CIFAR 10/100, ImageNet, Places365 등 다양한 데이터셋에서 찾아졌음
- SGD뿐만 아니라 Adam에서도 동작함을 확인
- 논문: “Playing the lottery with rewards and multiple languages: lottery tickets in RL and NLP”
- 강화 학습과 자연어 처리에서도 lottery ticket 현상이 나타남을 증명
어떻게 하면 학습을 덜 하거나 안하고 당첨될 수 있는가?
- 논문: “Drawing Early-Bird Tickets: Towards More Efficient Training of Deep Networks”
- 학습을 끝까지 할 필요 없이 큰 learning rate로 조금 학습시키고 mask를 가져와도 winning ticket을 찾을 수 있음
- 논문: “SNIP: Single-Shot Network Pruning Based On Connection Sensitivity”
- 데이터를 전체 다 볼 필요 없이 한번씩만 보고 mask를 가져와도 됨
- 논문: “Picking Winning Tickets Before Training by Preserving Gradient Flow”
- weight 말고도 gradient를 보면 더 정확한 mask를 가져올 수 있음
- 논문: “Pruning Neural Network without any data by iteratively conserving synaptic flow”
- 데이터를 안 보고도 처음부터 중요한 뉴런을 찾을 수 있음
왜 데이터를 보지도 않고 딥뉴럴넷에서 중요한 뉴런들을 찾을 수 있을까?
맨 마지막 논문(“Pruning Neural Network without any data by iteratively conserving synaptic flow”)에 대한 질문을 해봅시다.
-
“Network Pruning” 기법을 통해서 딥뉴럴넷이 무엇이 중요하다고 학습할 수 있고, 이를 통해 딥뉴럴넷을 더 깊게 이해할 수 있음
- 데이터를 보지 않고도 중요한 뉴런이 무엇인지 알아가는 과정에서 아래를 알 수 있음
- 1) 딥뉴럴넷이 무엇을 학습하고 있는지
- 2) 왜 어떤 뉴런은 초기화되자마자 중요하거나 중요하지 않은지
- 딥뉴럴넷이 초기 학습에서 배우는 것
- 딥뉴럴넷이 학습 초기에 현재 나에게 있는 뉴런과 시냅스 중 어느 것이 중요한지를 판단
- 초기에 이상한 data를 학습시키면 상당한 정확도 손실이 있는 반면, 초기 이후에 이상한 data가 있어도 안정적으로 학습
- 참고로 CNN은 초기에 형태와 같은 정보들을 학습하고 이후에 점점 detail한 부분 학습
- 레이어 붕괴(Layer Collapse)
- “Pruning Neural Network without any data by iteratively conserving synaptic flow”에서 제시한 문제점
- pruning의 문제점은 앞에서 길이 끊어져버리면, 뒤의 중요한 뉴런들이 정보를 받지 못하여 학습 자체가 불가
- 이 문제를 미리 방지할 수 있으면 이론상으로 압축 가능한 최대치 달성이 가능할 것이라고 저자들은 주장
결론
- “Lottery Ticket Hypothesis”는 딥뉴럴넷이 학습에 필수적이라고 믿어왔던 것들이 실제로는 그렇지 않다는 것을 보여줌
- 가설이 처음 나왔을 때, winning ticket을 찾는 일이 Iterative Magnitude Pruning처럼 값비싼 방법론이 필요했음
- 하지만, data를 보지 않고도 학습 가능한 작은 네트워크를 찾을 수 있음
Leave a comment