(3강) 작은 모델, 좋은 파라미터 찾기: AutoML 이론
Last updated
Last updated
AutoML에 대한 전반적인 소개
[Further Reading ]
AutoML에 대한 현실적인 접근에 대해 고민해보기
데이터의 추가나 변수 삭제에 따라 Re-Tuning하는 작업을 사람이 반복적으로 하게 된다.
주요 타입 구분
Categorical
ex) optimizer:[Adam, SGD, AdamW], module: [Conv, BottleNeck,...]
Continuous
ex) learning rate, regularizer param, ...
Integer
ex) Batch size, epochs, ...
Conditional(🌟): 한 configuration에 따라 search space가 달라질 수 있음
Optimizer의 sample(e.g. SGD, Adam 등등)에 따라서 optimizer parameter의 종류, search space도 달라짐 (e.g,optimizer에 따른 learning rate range 차이, SGD:momentum, Adam:alpha, beta1, beta2, ..등등)
Module의 sample(e.g.VanillaConv, BottleNeck, Inverted Residual 등등)에 따라서 해당 module의 parameter의 종류, search space도 달라짐
모델 경량화의 접근 두가지
기존 가지고 있는 모델을 경량화하는 기법
Pruning, Tensor decomposition, ...
추가적은 후처리가 필요하다. 일반적으로 하기 어려울 수 있다.
Search를 통하여 경량 모델을 찾는 방법
NAS(Neural Architecture Search), AutoML(Automated Machine Learning)...
Blackbox optimization; objective를 최대화하는 값을 찾는 것.
다음에는 어떤 를 찾아볼까를 반복하는 방식
Surrogate Function: 를 예측하는 모델 (regression model)
Acquisition Function: 다음엔 어느 를 찾아보면 좋을지?
(그림의 x)를 Sample(observation)
해당 sample(configuration)로 DL 모델을 학습
objective를 계산 (우측 point)
Surrogate model update (그림의 실선, 파란 영역)
ex) GP model, posterior mean, posterior variance(uncertainty)
Acquisition Function update (그림의 초록 영역)
ex) Expected Improvement, Upper Confidence Bounds
일반적인 Regression task: “Estimate the function f fits the data the most closely”
Set of train data: set of test data:
우리가 알고자하는 특정위치의 값은 우리가 알고있는 들과(positive건, negative건) 연관이 있지 않을까? → 값으로부터 를 추정, 연관에 대한 표현은 Kernel함수 로!
f(x)를 “Possible output of the function f at input x”인 “Random variable”로 보고, 각 r.v.들이 Multivariate Gaussian distribution 관계에 있다고 가정
= 함수들의 분포를 정의하고, 이 분포가 Multivariate Gaussian distribution을 따른다 가정
= 함수 f가 Gaussian process를 따른다
알고자 하는 값(test) 와 아는 값(train) 의 관계를 정의
+ Gaussian Identities(Gaussian의 marqinal, conditional도 Gaussian)
https://distill.pub/2019/visual-exploration-gaussian-processes/
Objective 값을 예측하는 모델
지금까지 관측된 가 있을 때, 새로운 에 대한 objective 는 얼마일까?
Objective를 estimate하는 surrogate model을 학습, 다음 좋은 를 선택하는 기중으로 사용
대표적은 Surrogate model로는 Gaussian Process Regression(GPR) Model(Mean: 예측 f값, Var: uncertainty)
Surrogate model의 output으로부터, 다음시도를 해보면 좋을 를 계산하는 함수
Exploration(불확실한 지점) vs Exploitation(알고있는 가장 좋은 곳)의 trade off
Acqusition function의 max 지점을 다음 iteration에서 trial
EX) Upper Confidence Bound (UCB)
GP의 약점:
High-dim()
Conditional, cont/disc 파라미터들의 혼재시 적용이 어려움
TPE: GPR()과 다르게 와 를 계산
TPE를 통한 다음 step의 계산 방법
현재까지의 observation들을 특정 quantile(inverse CDF)로 구분
ex) 전체중 75% bad, 25% good, 위의 빨간, 파란
KDE(Kernel density estimation)으로 good observations 분포(p(g)), bad observation의 분포 (p(b))를 각각 추정
greater의 분포, lower의 분포
p(g)/p(b)은 EL(Expected Improvement, acquisiition function 중 하나)에 비례하므로([6]), 높은 값을 가지는 를 다음 step으로 설
Likelihood를 Quantile로 구분되는 두 함수로 정의
l(x)(좋았던 관측 분포), g(x)(안좋았던 관측 분포) 로 부터 l(x)/g(x)가 가장 높은 지점을 탐색한다?
l(x)가 높은 쪽을 선호하되, g(x)가 낮은곳도 , 즉, 안좋은지 알 수 없는 것도 찾아 보자는 의미이다.
AutoML의 한계점과 현실적인 접근 방법에 대해 알아보기
학습에 소요되는 시간과 리소스가 너무 크다...
DL에서의 AutoML은 scalability 이슈가 더욱 대두됨
주요 키워드
Hyperparameter Gradient Descent(탐색과 학습을 동시에)
Meta-learning(Auto "AutoML")
Multi-fidelity optimization
Data의 subset만을 활용
적은 epoch
RL을 활용한 적은 trial
Image Downsampling 등등
충분히 절충하면서 사용이 가능하다!
어느정도의 prior를 개입, 적은 search space를 잡고,
적지만, 대표성을 띄는 좋은 subset 데이터를 정하고 (+ n-fold Cross validation 등)
학습과정의 profile을 보고 early terminate 하는 기법 적용
(ASHA Scheduler, BOHB (Bayesian Optimization & Hyperband))
이론적인 부분으로 확 와닿지는 않지만 다음 강의를 듣고, 다시한번 들어봐야할 필요성을 느꼈다..