[4주차] 8.25 수

William JO·2021년 8월 27일
0

📕(강의) - Model

  • a model is an informative representation of a system.

Pytorch

  • 특징 : Low-level, Pythonic, Flexibility

  • Pytorch model의 모든 layer는 nn.Module class를 따른다.

Pretrained Model

ImageNet

  • ImageNet이라는 대용량의 dataset의 출현 후 Computer Vision 분야에서 획기적인 모델 알고리즘의 개발이 활성화되며 급속도로 발전하였다.

Pretrained Model의 배경

  • 모델 일반화를 위해 매번 수 많은 이미지를 학습시키는 것은 까다롭고 비효율적
  • 미리 학습된 좋은 성능이 검증되어 있는 모델을 사용하면 시간적으로 매우 효율적
  • 대용량 dataset에 미리 학습된 모델. 저명한 사람들이 많은 실험을 통해 만들어낸 모델을 잘 활용할 수 있어야 한다; 미리 학습된 좋은 성능이 검증된 모델을 사용하면 시간적으로 매우 효율적(torchvision, timm 등)
  • weights, biases 등의 parameters 들이 저장되어 있다.

Transfer Learning

  • CNN base model architecture (simple)

  • ImageNet Pretraining

  • Pretrained된 모델에서 설정했던 문제현재 문제와의 유사성을 고려해보자.
    → 문제의 밀접도를 고려하여 추가 작업을 해야한다.

  • CNN backbone의 역할 : input image의 feature를 추출하여 embedding vector를 return한다.

  • CNN classifier의 역할 : 추출된 embedding vector를 높은 확률의 target class에 mapping

Case

  1. 문제를 해결하기 위한 학습 데이터가 충분한 경우
    • High Similarity
      • input domain이 유사하다면 굳이 parameter update를 시킬 이유가 없다.
        -> feature extraction : frozen backbone, classifier만 바꿔서 학습
    • Low Similarity
      - heuristically speaking, 유사도가 작은 dataset일지라도 pretrained weights를 버리는 것이 아니라 유지하며 pretrained model CNN backbone까지 학습 시 수렴속도 및 성능이 올라갈 확률이 높은 것을 경험했다.
      -> fine tunning : backbone freezing layer depth 설정 및 학습


  2. 학습 데이터가 충분하지 않은 경우 (최.악.)
    • High Similarity
      • 다행스럽게도 input domain이 유사하다면 feature extraction 그대로 진행 후 classifier target class에 맞게 변경
    • Low Similarity
      • heuristically speaking, 해봤자 overfitting or underfitting 될 확률이 매우 높다.

0개의 댓글

관련 채용 정보