(3강) 작은 모델, 좋은 파라미터 찾기: AutoML 이론

newbie·2021년 11월 22일

강의 소개
AutoML이 발전하다 보면 언젠가는 사람이 모델을 만들일이 없는 날이 올 수도 있습니다.
여러분들은 AutoML 하면 어떤 것이 떠오르시나요? 모델을 찾는 모델? 자원이 풍부해야만 적용할 수 있는 것?
왠지 모르게 멀게만 느껴지시지는 않는지요? 생각보다 AutoML은 어렵지 않게 적용할 수 있습니다.

이번 시간에는 AutoML에 대해 전반적인 소개를 해드리겠습니다.

Further Reading


Overview

Conventional DL Training Pipeline

  • 일반적인 데이터 엔지니어링 프로세스에서 DL의 training pipeline은 아래와 같이, 모델 architecture 선정 및 하이퍼 파라미터 튜닝과, 학습 및 평가가 사람에 의해서 진행됨

Objective of AutoML

  • AutoML은 사람에 의해서 실행되던 과정을 빼내어 진정한 end-to-end learning을 구축하는 것이 목표
  • 즉, 주어진 Train 및 Validation dataset과 해당 알고리즘에 대한 loss를 최소화 하는 하이퍼 파라미터를 자동으로 최적화하는 것이 목표

Properties of configurations in DL

  • DL model Configuration(Architecture, Hyperparameter)의 특징
    • 주요 타입 구분
      • Categorical : optimizer(Adam, SGD,...), Module(Conv, BottleNeck, InvertedResidual,...)
      • Continuous : LR, regularizer param,...
      • Integer : batch_size, epochs,...
    • Contitional(★★) : 한 configuration에 따라 search space가 달라짐
      • e.g) 어떤 optimizer를 사용할 지에 따라 해당 optimizer에서 조절할 하이퍼파라미터 차이에 따른 search space가 달라짐.

모델 경량화 관점에서의 AutoML

  • (주어진) 모델 경량화 vs (새로운) 경량 모델
  • (주어진) 모델 경량화 : 기존 가지고 있는 모델을 경량화 하는 기법
    • Pruning, Tensor decomposition, 단 어느 정도 후처리가 필요함
  • (새로운) 경량 모델 : Search를 통해 경량 모델을 찾는 기법
    • NAS(Neural Architecture Search), AutoML(Automated machine Learning)

Basic Concept

AutoML Pipeline

  • 일반적인 AutoML Pipeline
    • Configuration 설정 -> 모델 학습(Black box) -> 목적 함수 평가(Accuracy, Speed, Size 등 f(lamda) 설정) -> **objective를 maximize(AutoML의 역할)
  • AutoML Pipeline 예시 : Bayesian Optimization(BO)
    • Blackbox Optimization은 두 가지 stage로 나뉨
    • Update surrogate function(최적 λ를 예측하는 함수 업데이트) - Update Acqusition Function(최적값을 찾는데 있어서 가장 유용할 만한 다음 후보(λ)를 찾는 함수를 업데이트)

Bayesian Optimization with Gaussian Process Regression(GPR)

  • 점선 : 우리가 알 수 없는, object fn의 함수 개형
  • 검은 실선과 보라색 범위 : surrogate fn의 output
  1. λ(그림에서, evaluate한 f값)을 샘플링
  2. 해당 sample으로 DL 모델을 학습
  3. Objective 계산(그림에서, x에 해당하는 y값, point)
  4. Surrogate model(surrogate fn) 업데이트
  5. Acqusition fn 업데이트 -> 해당 결과를 기반으로 다음 λ(==x,configuration)를 결정하는 1번 과정을 진행
  • 이 과정을 거쳐서 surrogate fn을 더욱 정밀하게 만들고, 다음 acqusition fn으로 또 최적화 할 부분을 찾는 등의 반복적인 과정을 거침

  • Gaussian Process Regression의 장점은, Uncertainty를 모델링 할 수 있음

    • 알고 있는 point 사이를 예측할 경우, posterior mean이라고 불리는 예측값은 실제 범위(보라색 영역) 사이에 존재할 것이라는 불확실성을 veriance로 표현할 수 있는데, variance를 줄여줄 수 있음
  • 일반적인 Regression task는 데이터를 가장 가깝게 fitting하는 함수 F를 찾는 것이 목표

    • Training Data : X,Y Test Data : X*, Y*라고 할 때, Y를 잘 설명하는 f를 찾는 것
  • 여기서, GPR은 "우리가 알고자 하는 특정 위치 Y*값은 이미 알고 있는 X,Y,X*와 (positive or negative하게) 연관이 있지 않을까" 라는 모티베이션에서 모델링을 수행할 것.

    • 여기서 연관에 대한 표현은 kernel 함수 K로 함
  • GPR에서는 f(x)를 함수들의 분포인 Random variable로 보고, r.v.들이 Mutlvariate Gaussian distribution 관계에 있다고 가정
    = 함수들의 분포를 정의, 이 분포가 MGD를 따른다고 가정
    = 함수 f가 Gassian process

  • 아래 수식을 예로 들어서, f는 우리가 알고 있는 50개의 값이고 f*는 모르는 1개의 값이라고 할 때, 51-dimension의 vector

  • 해당 가우시안 분포에서 covariance는 51x51이 되고, 표현 matrix K는 (X,X)는 50x50, (X,X*)은 50x1 등읜 structure를 가짐

  • 즉 알고자 하는 값과, 아는 값의 관계를 MGD를 따른다고 가정

    • Gaussian Identities(Gaussian의 marginal, conditional도 Gaussian)

Surrogate Model(Function): f(λ)의 regression model

  • Objective f(λ) 값을 예측하는 모델
    • 지금까지 관측된 f(λ)들이 있을 때, 새로운 λ*에 대한 objective f(λ*)은 얼마일 지 예측)
  • objective를 estimate하는 surrogate model을 학습, 다음 좋은 λ를 선택하는 기준으로 사용
  • 대표적인 Surrogate model로는 GPR(Gaussian Process Regression) Model
    • Mean : 예측 f값, Var : uncertainty

Acqusition Model(Function) : 다음 어디를 trial하면 좋을까

  • Surrogate model의 output으로부터 다음 시도해보면 좋은 λ를 계산하는 함수
  • Exploration(불확실한 지점) vs Exploitation(알고있는 가장 좋은 곳) 의 trade off
  • 즉, 알고있는 영역과 불확실 영역 사이의 적절한 balance를 맞춰줌
  • Acqusition function의 max지점을 다음 iteration에서 trial
  • Ex) Upper Confidence Bound(UCB) : αt=μt1+κσt1\alpha_t = {\mu_{t-1} + \kappa\sigma_{t-1}}
    • μt1\mu_{t-1} : posterior mean(Exploitation) 관점에서 가장 좋은 지점
    • κσt1\kappa\sigma_{t-1} : posterior variance(Exploration) 관점에서 variance가 가장 큰 지점
    • κ\kappa : 두 값 사이에서 적절한 밸런스를 맞춰주는 파라미터

Bayesian Optimization with Tree-structured Parzen Estimaotr(TPE)

  • GP의 약점
    • 연산을 수행 시 inverse-matrix를 계산해야 하기에 high time complexity(O(N**3))
    • Conditional(★★), cont/disc 파라미터들이 혼재 시 적용이 어려움
      • 이 부분이 가장 큰 문제여서, 최근엔 GPE보단 TPE를 많이 사용함
  • TPE : GPR이 P(f|λ, posterior distribution)을 계산하는 것과 달리, p(λ|f, likelihood)와 p(λ, prior)를 계산
  • TPE를 통한 step의 λ 계산 방법
      1. 현재까지의 observation들을 특정 quantile(inverse CDF(누적확률분포))로 구분
      • e.g) 전체 75%는 bad로, 25%는 good으로 지정
    • KDE(Kernel density estimation)으로 good observations 분포(p(g)), bad observation의 분포(p(b))를 각각 추정
    • p(g)/p(b)은 EI(Expectied improvement, acquisition fn 중 하나)에 비례하므로 높은 값을 가지는 λ를 다음 step으로 설정

Further Studies

한계점 및 연구 키워드

  • 가장 큰 문제는, 대부분에 task에대해서 한 iteration에도 많은 시간이 걸림
  • DL에서의 AutoML은 scalability 이슈가 더욱 대두됨
  • 연구 분야의 주요 키워드
    • Hyperparameter Gradient Descent(탐색과 학습을 동시에)
    • Meta-learning (Auto "AutoML") : 좋은 λ를 찾는 모델을 만드는 모델(?)
    • Multi-fidelity optimization
      • Data의 subset만을 활용
      • 적은 epoch
      • RL(Reinforcement Learning)을 활용한 적은 trial
      • image Downsampling 등

현실적인 접근

  • 앞선 연구 분야에서 크리티컬한 이슈들이 있지만, 절충해서 사용할만큼 충분 가치가 있음
  • 어느 정도 prior를 개입하고, 적은 search space를 잡고, 적지만 대표성을 띄는 좋은 subset 데이터를 정하고(+ n-fold Cross validation)
  • 학습 과정에서 profile을 보고 early terminate 하는 기법 적용
    • ASHA Scheduler BOHB(Bayesian Optimization & Hyperband)
profile
DL, NLP Engineer to be....

0개의 댓글