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
  • 2. Optimization과 관련된 용어
  • 2.1. Generalization
  • 2.2. Underfitting vs Overfitting
  • 2.3. Cross-Validation
  • 2.4. Bias and Variance
  • 2.5. Bootstrapping
  • 2.6. Bagging vs. Boosting
  • 3. Practical Gradient Descent Methods
  • 3.1. Gradient Descent methods
  • 4. Regularization
  • 4.1. Early stopping
  • 4.2. Parameter Norm Penalty
  • 4.3. Data Augmentation
  • 4.4. Noise Robustness
  • 4.5. Label Smoothing
  • 4.6. Dropout
  • 4.7. Batch Normalization

Was this helpful?

  1. TIL : ML
  2. Boostcamp
  3. [U Stage] - DL basic

(03강) Optimization

Previous(02강) 뉴럴 네트워크 - MLP (Multi-Layer Perceptron)Next🔨(04강) Convolution은 무엇인가?

Last updated 3 years ago

Was this helpful?

  • 최적화와 관련된 주요한 용어와 다양한 Gradient Descent 기법에 대해 학습

  • Generalization, Overfitting, Cross-validation 등 용어의 의미 학습

  • 기존 SGD(Stochastic Gradient Descent)가 더 잘 학습될 수 있도록 하는 다양한 기법

  • Gradient Descent 기법에 따른 성능의 변화

Further Questions

  • 올바르게(?) cross-validation을 하기 위해서는 어떻 방법들이 존재할까요?

  • Time series의 경우 일반적인 k-fold cv를 사용해도 될까요?

Further Reading

1. Introduction

Gradient Descent

반복된 미분을 통해 극소값을 찾아나가는 방법

2. Optimization과 관련된 용어

2.1. Generalization

학습이 진행됨에 따라 학습데이터가 아닌 실제 데이터에 대해서 성능이 떨어지게 되는 지점이 발생한다. 여기서 Generatlization이란, 학습데이터에 대한 결과와 실제 데이터에 대한 결과가 얼마나 유사하게 학습되었는지를 의미한다.

2.2. Underfitting vs Overfitting

  • Overfitting : 학습데이터에는 잘 맞지만 실제 데이터는 잘 못맞추는 경우

  • Underfitting : 너무 간단한 네트워크나 학습횟수가 너무 적어 학습데이터도 잘 못맞추는 경우

2.3. Cross-Validation

위와 같은 Overfitting 되는 문제를 해소하기 위한 방법으로 train data를 fold k개로 나누고 각 1~k번째 data set을 validation으로 하여 7번의 학습을 진행하는 방법

  • 위 방법을 사용함으로써 특정 validation set에 데이터가 쏠리는 현상에 대한 문제를 해소할 수 있다.

  • stratified cross validation은 Label의 분포도 균등하게 하는 방법이다.

2.4. Bias and Variance

  • Variance : 출력의 일관성 정도

  • Bias : 평균적으로 봤을 때 정확도 여부

2.5. Bootstrapping

학습 데이터를 나누고, 이를 가지고 여러 모델을 만들어서 사용한다.

예를 들어 학습데이터가 100개가 있을때, 이를 모두 사용해서 학습을 하는 것이 아니라 여러개의 데이터(subset)셋으로 나누고 이를 가지고 여러 모델과 metric을 만들어서 사용하는 방법

2.6. Bagging vs. Boosting

  • Bagging (Bootstrapping aggregating)

    • Multiple models are being trained with bootstrapping.

    • ex) Base classifiers are fitted on random subset where individual predictions are aggregated(voting or averaging)

    • 앙상블의 개념과 비슷하다고 생각된다.

  • Boosting

    • It focuses on those specific training samples that are hard to classify

    • A Strong model is built by combining weak learners in sequence where each learner learns from the mistakes of the previous weak learner

    • n층 모델을 만드는 개념 같이 생각하면 좋을 듯

3. Practical Gradient Descent Methods

3.1. Gradient Descent methods

  • Stochastic gradient descent

    • Update with the gradient computed from a single sample.

  • Mini-batch gradient descent

    • Update with the gradient computed from a subset of data.

  • Batch gradient descent

    • Update with the gradient computed from the whole data.

Batch-size

학습을 함에 있어서 한번에 학습시킬 양을 정하는 Batch-size가 단순히 속도와 성능에 따라 정하게 된다고 생각할 수 있지만, 성능에도 영향을 끼치기 마련이다.

일반적으로 배치의 크기가 작을수록 실제 데이터에서의 성능이 보장되기 마련이다.

  • Stochastic gradient descent

    • Learning rate을 적절히 선택하기가 어렵다.

  • Momentum

    • 흐르던 방향에 대한 정보를 어느정도 가지고 가자는 아이디어

  • Nesterov accelerated gradient

    • 한번 이동한 후에 그 다음 값에 대한 예측을 하여 방향을 유지하는 방식

    • Momentum이 로컬 미니멈으로 수렴하지 못하거나 오래걸리는 문제를 해결해 준다.

  • Adagrad

    • 각 파라미터 별로 변화의 정도를 저장하여 그만큼 가중치를 두고 weight를 업데이트 하는 방식

    • 진행됨에 따라 학습이 점점 잘 안되는 현상이 발생한다.

  • Adadelta

    • Adagrad가 가지는 문제를 해소하고자 함

    • learning rate이 없다. 잘 사용되지 않는다.

  • RMSprop

  • Adam

    • RMSprop와 Momentum을 함께 사용

4. Regularization

Generalization이 잘 되도록 하는 기법

4.1. Early stopping

  • 과적합이 되는 시점에 멈추는 것

4.2. Parameter Norm Penalty

  • 부드러운 파라미터로 만들자 (파라미터의 크기를 작게하자)

4.3. Data Augmentation

  • 데이터의 수가 많으면 잘된다. 나중에 배울 PLM을 봐도 많은 데이터를 활용하는 것 만으로도 성능이 좋아지는 것을 알 수 있다.

4.4. Noise Robustness

4.5. Label Smoothing

  • 데이터 2개를 섞고, 합쳐서 Label을 확률값으로 부여하는 것

4.6. Dropout

4.7. Batch Normalization

TimeseriesCV
RAdam github
AdamP github