TIL
  • Main
  • TIL : ML
    • AI News
      • AI-powered coding, free of charge with Colab
    • Paper
      • Retrieval-augmented generation for knowledge-intensive nlp tasks
        • reference 정리
      • Sequence to Sequence
    • Generative AI
      • LLM
        • 기본 개념
    • Boostcamp
      • Daily Report
        • 2021
          • 09
            • week4
            • week5
          • 10
            • week1
            • week2
            • week3
            • week4
          • 11
            • week1
            • week2
            • week3
            • week4
            • week5
          • 12
            • week1
            • week2
            • week3
      • Final Project
        • 프로젝트 기획
          • 🌟최종 프로젝트 기획
          • 최종 프로젝트 Version
          • 아이디어 수집
          • 욕설, 혐오발언 감지
          • 라이브 커머스 레포팅 프로젝트
        • 프로젝트 진행
          • week1
          • week2
          • week3
      • Competition
        • 1. [NLP] 문장 내 개체간 관계 추출
          • Day1 (9.27, 월)
          • Day2-3 (9.28~29, 화~수)
          • Day4 (9.30, 목)
          • Day5 (10.1, 금)
          • Day6~7 (10.2~3, 토~일)
          • Day8 (10.4, 월)
          • Day9 (10.5, 화)
          • Day10 (10.6, 수)
          • Day 11 (10.7 목)
        • 2. [NLP] MRC 프로젝트
          • Day1 (10.25, 월)
          • Day2 (10.26, 화)
          • Day3 (10.27, 수)
          • Day4-5 (10.28-29, 목-금)
          • Day6 (11.1, 월)
          • Day7 (11.2, 화)
          • Day8 (11.3, 수)
          • Day9 (11.4, 목)
        • 🔨3. [NLP] 데이터 제작
          • Day1
        • 🔨4. [공통] 모델 경량화
      • [U Stage] - DL basic
        • (01강) 딥러닝 기본 용어 설명 - Historical Review
        • (02강) 뉴럴 네트워크 - MLP (Multi-Layer Perceptron)
        • (03강) Optimization
        • 🔨(04강) Convolution은 무엇인가?
        • 🔨(05강) Modern CNN - 1x1 convolution의 중요성
        • 🔨(06강) Computer Vision Applications
        • (07강) Sequential Models - RNN
        • (08강) Sequential Models - Transformer
        • Page 2
      • [U Stage] - PyTorch
        • (01강) Introduction to PyTorch
        • (02강) PyTorch Basics
        • (03강) PyTorch 프로젝트 구조 이해하기
        • (04강) AutoGrad & Optimizer
        • (05강) Dataset & Dataloader
        • (06강) 모델 불러오기
        • (07강) Monitoring tools for PyTorch
        • (08강) Multi-GPU 학습
        • (09강) Hyperparameter Tuning
        • (10강) PyTorch Troubleshooting
      • [U Stage] - NLP
        • (01강) Introduction to NLP, Bag-of-Words
        • (02강) Word Embedding
        • (03강) Recurrent Neural Network and Language Modeling
        • (04강) LSTM and GRU
        • (05강) Sequence to Sequence with Attention
        • (06강) Beam Search and BLEU score
        • (07-08강) Transformer
        • (09강) Self-supervised Pre-training Models
      • [P Stage] - KLUE
        • (1강) 인공지능과 자연어 처리
        • (2강) 자연어의 전처리
        • (3강) BERT 언어모델 소개
        • (4강) 한국어 BERT 언어 모델 학습
        • (5강) BERT 기반 단일 문장 분류 모델 학습
        • (6강) BERT 기반 두 문장 관계 분류 모델 학습
        • (7강) BERT 언어모델 기반의 문장 토큰 분류
        • 오피스아워 (9.30, 목)
        • (8강) GPT 언어 모델
        • (9강) GPT 언어모델 기반의 자연어 생성
        • (10강) 최신 자연어처리 연구
      • [P Stage] - MRC
        • Before Study
        • (1강) MRC Intro & Python Basics
        • (2강) Extraction-based MRC
        • (3강) Generation-based MRC
        • (4강) Passage Retrieval - Sparse Embedding
        • (5강) Passage Retrieval - Dense Embedding
        • 오피스아워
        • (6강) Scaling up with FAISS
        • (7강) Linking MRC and Retrieval
        • (8강) Reducing Training Bias
        • (9강) Closed-book QA with T5
        • (10강) QA with Phrase Retrieval
        • 마스터클래스
      • [P Stage] - 데이터제작(NLP)
        • (1강) 데이터 제작의 A to Z
        • (2강) 자연어처리 데이터 기초
        • (3강) 자연어처리 데이터 소개 1
        • (4강) 자연어처리 데이터 소개 2
        • (5강) 원시 데이터의 수집과 가공
        • 오피스아워 (11.10, 수)
        • (6강) 데이터 구축 작업 설계
        • (7강) 데이터 구축 가이드라인 작성 기초
        • (8강) 관계 추출 과제의 이해
        • (9강) 관계 추출 관련 논문 읽기
        • (10강) 관계 추출 데이터 구축 실습
      • [P Stage] - 모델 최적화
        • (1강) 최적화 소개 및 강의 개요
        • (2강) 대회 및 데이터셋 소개
        • (3강) 작은 모델, 좋은 파라미터 찾기: AutoML 이론
        • 🔨(4강) 작은 모델, 좋은 파라미터 찾기: AutoML 실습
        • (5강) 작은 모델, 좋은 파라미터 찾기: Data Augmentation & AutoML 결과 분석
        • 🔨오피스아워 -Baseline 코드에 모듈 작성하기(신종선 멘토님)
      • [P Stage] - Product Serving
        • Part 1: Product Serving 개론
          • 1.1 강의 진행 방식
          • 1.2 MLOps 개론
          • 1.3 Model Serving
          • 1.4 머신러닝 프로젝트 라이프 사이클
        • Part 2: 프로토타입부터 점진적으로 개선하기
          • 2.1 프로토타이핑 - Notebook 베이스(Voila)
          • 2.2 프로토타이핑 - 웹 서비스 형태(Streamlit)
          • 2.3 Linux & Shell Command
          • 2.4 Cloud
          • 2.5 Github Action을 활용한 CI/CD
        • Part 3: 더 완성화된 제품으로
          • 3.1.1 FastAPI
          • 3.1.2 Fast API
          • 3.1.3 Fast API
          • 3.2 Docker
          • 3.3 Logging
          • 3.4 MLFlow
        • Part 4: 심화 소재
          • 4.1 BentoML
          • 4.2 Airflow
          • 4.3 머신러닝 디자인 패턴
          • 4.4 앞으로 더 공부하면 좋을 내용
      • 특강
        • (특강) 김상훈 - 캐글 그랜드마스터의 노하우 대방출
        • (특강) 이활석 - 서비스 향 AI 모델 개발하기
        • (특강) 구종만 - AI + ML과 Quant Trading
        • (특강) 문지형 - 내가 만든 AI 모델은 합법일까, 불법일까
        • (특강) 이준엽 - Full Stack ML Engineer
        • (특강) 박은정 - AI 시대의 커리어 빌딩
        • (특강) 오혜연 - AI Ethics
    • Competition
      • (DACON)한국어 문장 관계 분류 경진대회
        • Day1(2.14, 월)
        • Day2(2.15, 화)
        • Day3(2.16, 수)
        • Day4(2.17, 목)
      • 2021 인공지능 데이터 활용 경진대회
        • 역량평가
          • Day1 (9.28, 화)
          • Day2 (9.29, 수)
          • Day3 (9.30, 목)
        • 예선
          • Data 분석
          • NSML
          • What We Have Done?
    • ETC
      • 인터뷰 대비
        • Computer Science
        • ML/DL
      • Poetry로 dependency 관리
        • window에서 설치하기
      • code block
      • 공부할 것 임시보관
      • Transformer to T5
      • Hugging Face Tutorial
        • Ch1. Transformer models
        • Ch2. Using Transformers
        • Ch3. Fine-tuning a model with the Trainer API
      • KLUE
      • Pandas
  • TIL : Ops
    • AWS
      • SageMaker
  • TIL : Computer (CS)
    • Error
      • TextEncodeInput must be Union[TextInputSequence, Tuple[InputSequence, InputSequence]]
    • Algorithm
      • Theory
      • Programmers
        • 기능개발
    • ETC
      • Github 커밋 히스토리 삭제
Powered by GitBook
On this page
  • 1. Overview
  • 1.1. Conventional DL Training Pipeline
  • 1.2. Objective of AutoML
  • 1.3. Properties of configurations in DL
  • 1.4. 모델경량화 관점에서의 AutoML
  • 2. Basic Concept
  • 2.1. AutoML Pipeline
  • 2.2. Bayesian Optimization(with Gaussian Process Regression)
  • 3. Further Studies

Was this helpful?

  1. TIL : ML
  2. Boostcamp
  3. [P Stage] - 모델 최적화

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

Previous(2강) 대회 및 데이터셋 소개Next🔨(4강) 작은 모델, 좋은 파라미터 찾기: AutoML 실습

Last updated 3 years ago

Was this helpful?

  • AutoML에 대한 전반적인 소개

[Further Reading ]

AutoML에 대한 현실적인 접근에 대해 고민해보기

1. Overview

1.1. Conventional DL Training Pipeline

데이터의 추가나 변수 삭제에 따라 Re-Tuning하는 작업을 사람이 반복적으로 하게 된다.

1.2. Objective of AutoML

AutoML(HPO: Hyperparameter Optimization)의 문제 정의

1.3. Properties of configurations in DL

DL model Configuration(Architecture, Hyperparameter)의 특징

  • 주요 타입 구분

    • 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도 달라짐

1.4. 모델경량화 관점에서의 AutoML

(주어진) 모델을 경량화하자 vs (새로운) 경량 모델을 찾자

  • 모델 경량화의 접근 두가지

  • 기존 가지고 있는 모델을 경량화하는 기법

    • Pruning, Tensor decomposition, ...

    • 추가적은 후처리가 필요하다. 일반적으로 하기 어려울 수 있다.

  • Search를 통하여 경량 모델을 찾는 방법

    • NAS(Neural Architecture Search), AutoML(Automated Machine Learning)...

2. Basic Concept

2.1. AutoML Pipeline

  • Blackbox optimization; objective를 최대화하는 값을 찾는 것.

  • 다음에는 어떤 λ\lambdaλ를 찾아볼까를 반복하는 방식

Bayesian Optimization(BO)

  • Surrogate Function: f(λ)f(\lambda)f(λ)를 예측하는 모델 (regression model)

  • Acquisition Function: 다음엔 어느 λ\lambdaλ를 찾아보면 좋을지?

2.2. Bayesian Optimization(with Gaussian Process Regression)

  • λ\lambdaλ(그림의 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

Gaussian Process Regression 의 설명

  • 일반적인 Regression task: “Estimate the function f fits the data the most closely”

    Set of train data: (X,Y)(X,Y)(X,Y)set of test data: (X∗,Y∗),Y≈f(X)+e(X_*, Y_*), Y \approx f(X) + e(X∗​,Y∗​),Y≈f(X)+e​

  • 우리가 알고자하는 특정위치의 Y∗Y_*Y∗​값은 우리가 알고있는 X,Y,X∗X, Y, X_*X,Y,X∗​들과(positive건, negative건) 연관이 있지 않을까? → X,Y,X∗X, Y, X_*X,Y,X∗​값으로부터 Y∗Y_*Y∗​를 추정, 연관에 대한 표현은 Kernel함수 KKK로!

  • 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) f∗≈Y∗f_* \approx Y_*f∗​≈Y∗​​와 아는 값(train) f≈Yf \approx Yf≈Y​의 관계를 정의

  • + Gaussian Identities(Gaussian의 marqinal, conditional도 Gaussian)

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

  • Objective f(λ)f(\lambda)f(λ)값을 예측하는 모델

    지금까지 관측된 f(λ)f(\lambda)f(λ)가 있을 때, 새로운 λ∗\lambda^*λ∗에 대한 objective f(λ∗)f(\lambda^*)f(λ∗)는 얼마일까?

  • Objective를 estimate하는 surrogate model을 학습, 다음 좋은 λ\lambdaλ를 선택하는 기중으로 사용

  • 대표적은 Surrogate model로는 Gaussian Process Regression(GPR) Model(Mean: 예측 f값, Var: uncertainty)

Acquisition Function: 다음은 어디를 trial 하면 좋을까?

  • Surrogate model의 output으로부터, 다음시도를 해보면 좋을 λ\lambdaλ를 계산하는 함수

  • Exploration(불확실한 지점) vs Exploitation(알고있는 가장 좋은 곳)의 trade off

  • Acqusition function의 max 지점을 다음 iteration에서 trial

  • EX) Upper Confidence Bound (UCB)

With Tree-structured Parzen Estimator(TPE)[6]

  • GP의 약점:

    • High-dim(O(N3)O(N^3)O(N3))

    • Conditional, cont/disc 파라미터들의 혼재시 적용이 어려움

  • TPE: GPR(p(f∣λ)p(f\mid\lambda)p(f∣λ))과 다르게 p(λ∣f)p(\lambda \mid f)p(λ∣f)와 p(λ)p(\lambda)p(λ)를 계산

  • TPE를 통한 다음 step의 λ\lambdaλ 계산 방법

    • 현재까지의 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]), 높은 값을 가지는 λ\lambdaλ를 다음 step으로 설

EI 증명

  • Likelihood를 Quantile로 구분되는 두 함수로 정의

  • l(x)(좋았던 관측 분포), g(x)(안좋았던 관측 분포) 로 부터 l(x)/g(x)가 가장 높은 지점을 탐색한다?

  • l(x)가 높은 쪽을 선호하되, g(x)가 낮은곳도 , 즉, 안좋은지 알 수 없는 것도 찾아 보자는 의미이다.

3. Further Studies

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))

이론적인 부분으로 확 와닿지는 않지만 다음 강의를 듣고, 다시한번 들어봐야할 필요성을 느꼈다..

https://distill.pub/2019/visual-exploration-gaussian-processes/
[Optional][Gaussian process 참고자료] Bayesian Deep Learning; 최성준 교수님
[Optional] A Visual Exploration of Gaussian Processes
Towards automating machine learning - Dr Thorben Jensen
[Paper] Algorithms for Hyper-Parameter Optimization