2. Learning Transferable Architectures for Scalable Image
Recognition
- https://arxiv.org/pdf/1707.07012.pdf
- Google Brain(Barret Zoph, Quoc V Le et al)
- Image Recognition에서, 다양한 Task/Dataset/Neural Network Size에서도
훌륭한 성능을 보이는 Architecture를 Machine Learning으로 만들수 있다!
- 인간이 만든 State-of-Art를 차근차근 뛰어넘어가고 있는중
- 심지어 연산량, Network Size에서도 더 효율 좋은 구조를 만들어냈다!
- 현재 이미 Tensorflow Object Detection API에 이 구조가 적용된듯
3. Comparison with State-of-Art
- ImageNet Challenge
- Top-1 Accuracy :
- (PolyNet) 81.5% vs 82.7%(AutoML)
- Top-5 Accuracy :
- (PolyNet) 95.8% vs 96.2%(AutoML)
- Mobile Top-1 Accuracy :
- (ShuffleNet) 70.9% vs 74.0%(AutoML)
- Mobile Top-5 Accuracy :
- (ShuffleNet) 89.8% vs 91.6%(AutoML)
4. Comparison with State-of-Art
- COCO Challenge(Segmentation & Detection)
- mAP :
- (ResNet-v2) 36.8% vs 43.1%(AutoML)
- Mobile mAP :
- (ShuffleNet) 24.5% vs 29.6%(AutoML)
Image Classification
=> 인간보다 낫다!
5. Method
- Neural Architecture Search(NAS) framework를 사용
- What is NAS?
- NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT
LEARNING(ICLR 2017 paper)
- 같은 저자, 같은 연구소
- https://arxiv.org/pdf/1611.01578.pdf
- 간단히 이야기해서 강화학습으로 CNN을 만드는 RNN을 학습시킴
6. Hyperparameter Optimization
- Neural Network = Hyperparameter + Model parameter (+ Structure)
- Model Parameter : 데이터에 직접적으로 곱해지거나 더해지는 값
- w1, w2, … : model parameter
- 데이터에 의해서 학습되는 값
- Backpropagation 등등등….
- Hyperparameter : Number of
Hidden layer, Hidden layer unit,
Etc
- Never changes
- Dataset과 목표는 동일
- Task를 잘 수행할수 있는
Hyperparameter를 찾는것이 목표
7. Previous method of Hyperparameter Optimization
- Bergstra, Benjio(2012 JMLR) : Grid한 Hyperparameter search보다
Random하게 찾는게 더 좋다
- Bergstra, Benjio(2011 NIPS) : SMBO, GP-Based Hyperparameter
optimization, Parzen Estimator등등 (너무 방대하여 다 이해하지는 못함)을
사용하여 DBN에서의 Hyperparameter optimization 진행
- (논문에서 주장하는)한계점 : Length, Structure, Connectivity등등을
조절하는것이 힘듦
- 이를 해결한 논문들도, general하거나 flexible한 방법론을 제공해주지 않음
8. NAS framework
- RNN을 사용해서 CNN을 만들고 그 accuracy를 reward로 삼아 RNN을 학습
- RNN output은 아랫 구조와 같이 사용
- Classifier Accuracy : 미분 불가능
- RNN model parameter를 업데이트 불가
- Policy Gradient (In RL)
- RNN을 조금 다른 관점으로 보자!
- RNN은 T개의 Sequential한 데이터를
만드는 NN -> T개의 action을 취하는
Controller
9. Policy Gradient
- 강화학습에 대한 자세한 내용 설명은 나중으로 미루고, 어떻게 미분 불가능한
Accuracy를 사용 RNN을 업데이트하는지가 논문에서 중요 포인트
- CNN accuracy를 R이라고 할때, RNN은 E[R]을 최대화하는게 목표
- 가장 직관적으로 이해하는 방법은 RNN parameter c
를 state으로 하여 E[R]을
Reward로 받는 Policy J가 존재한다고 가정. 그렇다면 식은 가
된다.
- 이때, Monte Carlo Policy Gradient방법중 하나인 REINFORCE 방법을
사용한다면 J의 Gradient는 가 된다.
- Expectation을 구하는것이 매우 힘드므로, 이 식을 Sampling관점으로
변형해서 본다면 가 된다 (m = Batch Size)
10. Q. RNN은 Time dependent하게 업데이트 되어야하지 않은가?
- 이 논문에서의 RNN은 하나의 Convolution unit만을 만드는것
- 실제로 몇개의 Convolution unit을 묶을것인가는 역설적이게도 또다른 종류의
Hyperparameter. 즉, 변형된 종류의 RNN으로 추측
-
11. Overview(AutoML method) - 1 (Each Convolution Cell)
- RNN의 처음 두개의 Output : 어떤 종류의
Hidden State를 선택할것인지 결정
- 그 다음 두개의 Output : Hidden State의
결과값에 어떤 Operation을 진행할지 결정
- 마지막 Output : Hidden State간의 Relation
- 이것을 총 B번(논문에서는 5번) 반복해서
하나의 Convolution Cell을 만듦
- 완전 랜덤으로 만들었던 이전 논문에 비해서,
선택 폭을 좁히고 hidden state간의 관계까지 추가한점은 훌륭하다 생각
12. Overview(AutoML method) - 2(Total Network Structure)
- ImageNet으로 처음부터 트레이닝하면 너무 비효율적
- 조금 더 단순한 구조로 CIFAR-10을 트레이닝하고,
그중에서 효과가 좋은 Cell로 ImageNet Result 분석
- 총 20000개의 Cell을 만들고, 그중 상위 250개를 사용해
ImageNet dataset을 분석
14. 이 논문에 대해 느낀점 : Google만이 할수 있는 논문
- 정확히는 Google급 되는 회사만이 할수 있는 논문
- NAS Framework를 처음 제안했던 논문은 K40 GPU 800개를 28일동안 돌림
가격 : 400만 * 800 = 32억
- 현재 논문 : P100 GPU 500개를 4일간 돌림
가격 : 800만 * 500 = 40억…
- GPU로만 총 80억 가까운 돈을 써서 가능성을 보여준 논문!
- 제가 가진 1070 GPU 1개로는 약 10만일정도 걸릴듯 하니,
총 300년정도만 더살면 재현가능할듯 합니다.
15. 논문에 대해 감탄했던점
- RNN에 대한 관점의 변화 - Sequential한 데이터를 만들어내는(처리하는)
관점에서, T개의 Action을 취하는 controller의 관점으로 바꾼점은 굉장히
감동적
- 약간 CNN쌓기 게임의 관점으로 바라본점이 굉장히 흥미로웠다
- 80억....
- Image Recognition쪽의 CNN도 일종의 Pattern을 관찰할수 있지 않을까?
16. 논문에 대해 아쉬웠던점
- AlexNet에서부터 발전되어왔던 Convolution channel의 소형화 및 기타등등을
인위적으로 가져와서, 순수 100프로 기계가 만든 architecture라고 보긴 힘들듯
함
- Hardware 의존도가 좀 높음. 80억....
17. 여담
- 논문의 저자 2명 Barret Zoph, Quoc V Le 두명은 최근 Swish라는 Activation
function을 만들어서 arxiv에 submit했으나, 최근에 그 논문을 변형하여
강화학습을 사용한 Activation Function의 자동 searching을 진행중입니다.
- 두 자동화 장인분이, 구글의 막대한 하드웨어(80억…)을 이용해서 성능
좋은것들을 많이 뽑아내면 그 안에서 무슨 규칙성이 발견될수 있지 않을까
하는 기대를 품어봅니다.