경량화 모델 찾기 : AutoML

Date:


기존 Deep Learning 과정

  • 최적의 모델과 Hyperparameter를 구하기 위한 끊임없는 반복의 과정

image

❗❓ 이런 단순 반복적인 작업을 자동적으로 할 수 없을까?

경량화 모델 찾기 : AutoML

  • 모델을 경량하기 위해 2가지 접근 방법이 있음
    1. 주어진 모델을 경량화 : Pruning, Tensor Decomposition
    2. 새로운 경량화 모델 찾기 : NAS, AutoML
  • AutoML은 Search를 통한 경량 모델을 찾는 기법

image

AutoML 문제 정의(HPO)

  • HPO : Hyperparameter Optimization
    • Loss를 최소화하는 Configuration $\lambda^{*}$를 탐색하는 문제 image
  • Search Space
    • Categorical : Optimizer(adam, SGD), Module(Conv, BottleNeck, InvertedResidual)
    • Continuous : Learning Rate, Regularize Parameter
    • Integer : Batch size, Epochs

Bayesian Optimization(BO)

image

  • Surrogate Function : $f(\lambda)$의 Regression model
  • Acquisition Function : 다음 확인할 Point 선정

Bayesian Optimization(BO) 과정 설명 - GPR

image

  • GPR : Gaussian Process Regression
  • Regression의 경우 주어진 Data로 에측하고 싶은 f에 가장 가깝게 근사시키는 것
  • 기존에 주어진 $(X,Y)$와 새롭게 주어진 $X_{\ast}$를 활용하여 $Y_{\ast}$ 추정
  • 단점은 High-dim(O(N^3)), Continuous, Discrete가 혼재된 경우 적용 어려움

추정 과정

  1. 함수들의 분포를 가정함(여기서는 Multivariate Gaussian Distribution)
    • $Y_{*} = f(x)$를 Random Variable로 보고 다른 Random Variable들도 모두 Multivariate Gaussian Distribution관계에 있다고 가정
    • $f(x)$는 Gaussian Process를 따름

⭐$Kernel$은 두 가지 벡터의 유사도를 나타내는 함수로 내적과 비슷한 의미를 가짐

Bayesian Optimization(BO) 과정 설명 - TPE

  • TPE : Tree-structured Parzen Estimator
  • 연산 : GPR는 GPR($p(f\vert\lambda)$)연산을 하지만, TPE는 $p(f\vert\lambda)$와 $p(\lambda)$를 계산함
  • 현재까지의 Observation들을 특정 Quantile(inverse CDF)로 구분
  • KDE(Kernel Density Estimation)으로 Good Observation 분포(p(g)), bad Observation의 분포 (p(b))를 각각 추정
  • p(g)/p(b)는 EI(Expected Improvement, Acquisition Function중 하나)에 비례하여 높은 값을 가지는 $\lambda$를 다음 Step으로 설정

image

한계점

  • 소요 시간이 크고 Scalability 등의 문제가 있음

image

극복하기 위한 노력

  • Hyperparameter Gradient Descent(탐색과 학습을 동시에 진행)
  • Meta-Learning(Auto “AutoML”)
  • Multi-Fidelity Optimization
    • Data의 Subset만을 활용
    • 적은 Epoch
    • RL을 활용한 적은 Trial
    • Image Downsampling
  • RandomAugmentation을 통한 시간 절약

⭐어느정도 Prior 개입, 적은 Search space, 대표성을 가지는 Subset 활용, early terminate(ASHA Scheduler, BOHB(Bayesian Optimiation & Hyperband) 등등 기법을 활용하여 좋은 결과를 얻을 수 있음

image

  • Search space : module block 7개, Hyperparameter고정, batch 128, epoch 200, SGD, Cosine annealing, Randaug 적용

📌reference


💡 수정 필요한 내용은 댓글이나 메일로 알려주시면 감사하겠습니다!💡 

댓글