5. Problem
- Focus only on accuracy
- CNN: e.g. MNIST, ImageNet
- RNN: e.g. Penn Treebank
5
6. Problem
- Focus only on accuracy
- CNN: e.g. MNIST, ImageNet
- RNN: e.g. Penn Treebank
Intuition
- Incorporate latency information
6
7. Problem
- Focus only on accuracy
- CNN: e.g. MNIST, ImageNet
- RNN: e.g. Penn Treebank
- On mobile, latency is considered
via inaccurate proxy
- e.g. FLOPS, MACs
Intuition
- Incorporate latency information
7
● FLOPS: FLoating point OPerations per Second
● MACs: the number of Multiply-Accumulates
11. Problem
- Focus only on accuracy
- CNN: e.g. MNIST, ImageNet
- RNN: e.g. Penn Treebank
- On mobile, latency is considered
via inaccurate proxy
- e.g. FLOPS, MACs
Intuition
- Incorporate latency information
- Directly measure real-world
latency on a mobile device
- e.g. Google Pixel 2
11
● FLOPS: FLoating point OPerations per Second
● MACs: the number of Multiply-Accumulates
20. Experiments
- Classification: ImageNet
- Detection: COCO
- Training
- Sample architectures from controller RNN
- Train candidates on ImageNet with fewer epochs
- Evaludate the model on 50K validations sets, and use it as RL reward
- + Measure the latency on Google Pixel 2
20
논문 제목 소개
모바일 환경에 맞는 네트워크를 자동으로 찾아주겠다.
저자들 소개=mobilenet v2 저자
AutoML이란?
단순하게 말하면 머신러닝을 자동으로 해주는 모든 것
현재는 네트워크 아키텍처를 찾아주는 연구가 대세
우리들의 경험
딥러닝 = 데이터 + GPU로 대두되는 계산력
하지만 전문가 노하우가 대부분 필요하다
논문이 재현 잘 안되는 이유
제프딘의 의견
전문가 노하우를 더 많은 계산력으로 대체해보자
구글이 요즘 밀고 있음
관련 논문
구글이 리드하고 있다
PR에서도 NAS, ENAS 논문 리뷰를 했다.
아키텍처, optimizer 전부 다 함
자세한건 저 링크 참고
기본 구조 설명
기본적으로 무식하게 다 뽑고 그중에서 좋은거 찾으면 됨.
무식하게 뽑는게 너무 많으니까 좀 더 스마트하게 샘플링하는 컨트롤러를 설계
RNN + RL 기반
이런 방식으로 NAS에서 증명
automl의 단점
매번 최고 성능의 네트워크를 뽑아내지만 정확도에만 관심이 있다. 요즘엔 학습 속도도 따지지만
우린는 모바일 환경
정확도 + 연산속도가 같이 중요하다
그렇다면 연산 속도를 타겟하는 automl을 설계하자
그런데 리서치 분야에서 쓰이는 연산 속도라는 것이 애매모호하다.
flops, macs
애초에 객관적으로 비교하기 어려운 메트릭
가장 유명한 모바일 네트워크 mnv2
mac vs latency
mac이 작을수록 latency 즉, 속도도 빠르다
하지만 비율이 동일하지는 않다.
지금까지의 문제는 현실적인 문제라 방법 찾기가 정말 어렵다.
그렇다면 내가 원하는 현실 디바이스에서 나오는 속도를 벤치마크로 사용하자.
nas 다시 설명
컨트롤러: 네트워크 샘플러
mnist, imagenet으로 샘플링된 네트워크 학습
정확도를 리워드로 반영해서 policy gradient 방식으로 rnn 업데이트
이와중에 latency도 같이 고려하려면, 단순하게는
latency의 upper bound를 정하고 그 안에 해당하는 네트워크만 가지고 acc를 최대화시킨다.
저자들이 고민해보니까 최적점에 도달하기 어려움
정확도와 레이턴시를 통합한 리워드 설계
정확도가 높을수록 어드벤티지
속도가 느릴수록, 값이 클수록 페널티(w가 음수기 때문에)
w에 해당하는 값도 하이퍼파라미터 -> automl이지만 사람 손이 타긴함.
우리가 원하는 latency냐 아니냐에 따라서 페널티 강도가 다름
그림으로 보면
기존 nas, enas 논문 방식에서 빨간색 박스가 추가된 형태
그렇다면 latency에 대한 페널티를 어떻게 주는게 좋은지?
첫번째 경우
느린 경우에 대한 페널티만 있음
두번째 경우
알파, 베타 모두 -0.07인데
모바일넷 저자들의 경험상 latency가 두 배 느려지만 acc가 5% 하락하는 걸 바탕으로 정함
알파, 베타마저 정할 수 잇을까?
automl에서도 큰 그림은 그려줘야함.
학습 속도 문제 해결
search space 디자인은 auotml의 큰 관심사
학습 속도 관점
좋은 네트워크 샘플링 관점
여기도 모바일 넷 경험이 들어감 + 모바일넷 알면 논문 이해하기 쉬움
크게 7 블럭을 정하고 그 안에 들어가는 layer를 정의함.
한 블럭 안에서 레이어는 같은 형태로 여러번 반복
각 레이어는 오른쪽에 보이는 ops로 rnn 컨트롤러가 샘플링해줌
enas도 블럭과 비슷한 개념의 셀이 있음
하지만 그 셀이 눈으로 보기에도 엄청 복잡해보임.
많은 서치를 하기 어려움
실험은 크게 2가지
실제로 구글이 오피셜하게 리포에 올리는것도 이 두가지
완전 전략적으로 보임
automl 트레이닝은 짚을 부분
이미지넷 데이터로 아주 약간만 트레이닝하고 정확도 반영
파란색이 mnasnet의 결과물
당연히 좋음
빨간색 박스는 가장 기본 구성
classificastion에서 속도가 같을때
mnas 정확도가 2% 더 좋음
정확도가 같을떄
1.5배 빠름
mnasnet이 뽑은 네트워크
3x3 depthwise separable, 1x1 씀
skip connection 씀
inverted residual block 씀
고의적인 의도가 있긴함
특이점
5x5를 많이 쓴다.
automl의 추세
우리가 알기로
3x3 2개가 5x5와 receptive field가 동일한데 연산량이 더 적다
그런데 depthwise separable에서는 특정 조건에서 5x5가 빠르다.
더 재미있는 분석
d는 mobilenet v2
f는 mobilenet v1
인데 하나로만 구성해을때 속도나 정확도면에서 종합 구성보다 안좋음
논문 결과랑 동일하지는 않지만
v2보다 좋은 성능을 보여주는 건 맞음
동일한 학습 조건에서
detection에서도 당연히 빠르고 좋음
요약: 모바일 환경을 위한 nas
latency를 고려한 reward 설계
실제 디바이스에서 latency 구함
제프딘의 말대로 이미 구글에서 cloud ml 서비스를 제공중
내부에서는 automl로 만든게 짱짱짱이라고 얘기함
우리는 뭐 먹고 사나!