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. Introduction
  • 1.1. Augmentation이란?
  • 2. Image Augmentation
  • 2.1. 어떤 Task에 어떤 Augmentation을 적용해야할까?
  • 3. Rand Augmentation 코드
  • 4. AutoML 구동 및 결과 분석
  • 4.1. 가상의 시나리오
  • 5. Discussion

Was this helpful?

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

(5강) 작은 모델, 좋은 파라미터 찾기: Data Augmentation & AutoML 결과 분석

Previous🔨(4강) 작은 모델, 좋은 파라미터 찾기: AutoML 실습Next🔨오피스아워 -Baseline 코드에 모듈 작성하기(신종선 멘토님)

Last updated 3 years ago

Was this helpful?

  • Data Augmentation

  • rand augmentation에 대해서

  • AutoML파트의 wrap-up으로 쉬운 예제를 활용해서 AutoML이 원하는 모델을 찾아가는 흐름에 대해 실험

[Further Reading]

1. Introduction

1.1. Augmentation이란?

부족한 데이터를 추가로 생성하기 위한 증강 방법. 이미지의 경우 좌우반전, 회전 등을 활용해서 증강할 수 있으며, NLP 측면에서는 EDA, AEDA 등의 방법으로 데이터 증강을 할 수 있다.

데이터 증강을 통해 얻을 수 있는 효과는 imbalance된 데이터 셋이나 적은 양의 데이터 셋에 활용할 수 있다는 것이 있습니다.

AutoML에서의 Augmentation이란?

경량화 관점에서는 연결되진 않지만, 성능향상에 필수적인 요소이다 보니 해당 강의에 추가되었다. 또한 Augmentation 기법을 하나의 AutoML의 Parameter로 사용될 수 있다.

경량화 측면에서 핵심적인 내용은 아니지만, 성능향상에 주요 기술이라고 한다. 각각의 Augmentation기법과 관련해서는 이미 이미지 분류 강의에서 배웠으니 간단하게 넘어가기로 한다.

그 동안 프로젝트를 진행하면서 Augmentation이 그렇게 크게 성능향상을 주진 못했었는데... 데이터 양이 한정되어서이지 않을까 싶다.

2. Image Augmentation

2.1. 어떤 Task에 어떤 Augmentation을 적용해야할까?

예를 들어 숫자 인식 데이터 (MNIST) 같은 경우 회전을 시킨다면, 6과 9를 구분할 수 없을 것이다! 이처럼 데이터에 적합한 Augmentation을 하기 위해 AutoAugment가 생겨났다.

AutoAugment: AutoML로 augmentation policy를 찾자

  • 데이터의 특징을 잘 나타내는 policy를 찾는것을 목표로 한다.

  • 총 5개의 sub policy, 각 sub policy는 2개의 augmentation type, 각 probability와 magnitude를 가진다.

    • 2개의 augmentation 조합을 찾고 각각에 대해서 이를 적용할지 여부에 대한 확률과 magnitude 값을 구한다.

❗ 위 그림을 보면 sub-policy 1~5로 증강하여 학습하게 되면 성능이 잘나오더라라고 찾게 된다는 것이다. 이런 5개의 sub-policy를 구하는 과정은 아래와 같다.

  • 단, 성능이 향상되지만 리소스가 정말 많이든다.... (하긴 그걸 다 해보려면....)

🎇 RandAugment

파라미터를 비약적으로 줄임으로써 (augmentation 한번에 몇개 적용할지, magnitude는 몇으로 할지?) 를 고려하지 않고, magnitude값을 고정함으로써 search space를 줄임 (RandAug: 10^2, AutoAug: 10^32)

보다시피 성능에 큰 차이가 없다는 것을 알 수 있다.

3. Rand Augmentation 코드

(스페셜 미션과 Baseline 코드를 통해 정리)

4. AutoML 구동 및 결과 분석

4.1. 가상의 시나리오

가용가능한 자원(GPU, CPU) 수 파악, 가능한 소요시간 등등을 고려해야할 것.

예를 들어, 하나의 Flow를 경험해보자.

1. 요청 접수

  • PC 1대(CPU:8core, GPU: V-100 1대)

  • cifar 10 classification task에 파라미터는 적고, 성능좋은 모델

  • 24시간 내로 완성

2. 상황에 대한 파악

  • Objective는?

    Multi objective 문제(minimize param, maximize accuracy)

  • task 수행에 걸리는 시간은?

    1회에 2~4시간

  • 주어진 리소스에서 몇개의 세션이 구동가능할지

    2~3개 정도

일반적으로 100~200회의 task수행이 되어야 유의미한 결과를 도출할 수 있다고 알고 있다면, 주어진 기한으로 시도할 수 있는 횟수는 24회로 제한되어있다. (기한 / 학습시간 * 세션갯수, 24시간 / 3시간*3개)

3. 시간을 줄여야하는 문제

  • Sample을 뽑아서 모델링해도 될지

  • 주요 파라미터만 search space에서 활용

4. 직접 시도해보기 (결국...정답은 없다 해보는 수밖에)

  • 데이터를 축소한다.

  • search space에서 중요하지 않다고 판단되는 hyperparameter는 고정한다

    batch:128, epoch:200, SGD(+Momentum), Cosine Annealing[11], Raduaug 적용(N:2, M:15)

5. 결과 확인하기

5. Discussion

  • AutoML로 데이터셋, task에 특화된 모델을 찾는 것이 가능

  • 현실적인 제약(시간, 리소스 등)들을 해소하기 위한 엔지니어링은 사람의 손길이 필요

AutoAugment: Learning Augmentation Policies from Data
Automl 리포트 예시
[Paper]
AutoAugment: Learning Augmentation Policies from Data
[Paper] RandAugment: Practical automated data augmentation with a reduced search space