[부스트캠프 AI Tech 5기] Week 6 정리 및 회고

araseo·2023년 4월 29일
0
post-thumbnail

Week6 강의 요약

Competition with AI Stages

  • competition 진행 흐름
    (1) Domain Understanding
    (2) Data Analysis
    (3) Data Processing
    (4) Modeling
    (5) Training

EDA (Exploratory Data Analysis)

  • 탐색적 데이터 분석의 줄임말로, 데이터를 이해하기 위한 방법

Image Classification

  • Image data에 대하여 올바른 class로 예측하는 task

Dataset

Generalization

  • Train / Valid : 전체의 dataset을 Train Set과 Test Set으로 나눌 뿐만 아니라, Train Set에 대해서도 Actual Train Set과 Validation Set으로 나눌 필요가 있음
  • Data Augmentation : torchvision.transforms 혹은 Albumentations 모듈을 이용하여 이용 가능
    • Albumentation이 더 빠르고 다양하다는 장점이 있음

Data Generation

  • Dataset : Vanilla Data를 Dataset으로 변환해 주는 역할
from torch.utils.data import Dataset

# torch.utils.data의 Dataset class를 상속
class CustomDataset(Dataset):

    # CustomDataset 클래스가 처음 선언되었을 때 호출되는 함수
    def __init__(self):
        pass
    
    # index 위치의 data를 리턴
    def __getitem__(self,index):
        pass
    
    # CustomDataset 아이템의 전체 길이를 리턴
    def __len__(self):
        return None
  • DataLoader : 만든 Dataset을 효율적으로 사용할 수 있도록 도와주는 역할
train_loader = torch.utils.data.DataLoader(
    train_set,
    batch_size = batch_size,
    num_workers = num_workers,
    drop_last = True,
    )

Model1 - Model with Pytorch

  • Pytorch 모델의 모든 레이어는 nn.Module 클래스를 따름
    • 모든 nn.Module은 forward() 함수를 가짐
    • 내가 정의한 모델의 forward()를 실행하면, 모델의 forward에 정의된 모듈들 각각의 forward()도 실행됨
import torch.nn as nn
import torch.nn.funtional as F

class CustomModel(nn.Module):
    def __init__(self):
        super(CustomModel, self).__init__()
        self.conv1 = nn.Conv2d(1,20,5)
        self.conv2 = nn.Conv2d(20,20,5)
    
    # 모델이 호출되었을 때 실행되는 함수
    def forward(self, x):
        x = F.relu(self.conv1(x))
        x = F.relu(self.conv2(x))
        return x

Model2 - Pretrained Model

Pretrained Model

  • 좋은 품질의 많은 데이터로 미리 학습한 모델을 fine-tuning 혹은 transfer learning 하는 것이 훨씬 효율적임

Transfer learning

  • Case 1. 문제를 해결하기 위한 학습 데이터가 충분한 경우
SimilarityCNN BackboneClassifier
HighFreezeTrainable
LowTrainableTrainable
  • Case 2. 문제를 해결하기 위한 학습 데이터가 충분하지 않은 경우
SimilarityCNN BackboneClassifier
HighFreezeTrainable
Low--

마스터 클래스 - 김태진 마스터(Doodlin ML Engineer)

  • 현재보다 더 나은 자신이 되는 것을 목표로 삼자.
  • 같은 데이터, task라도 바라보는 관점에 따라 문제 해결의 방향은 달라질 수 있다.
  • 유연한 사고는 작은 단위의 지식들의 이해를 바탕으로 한다.
  • 이것만은 꼭 기억하자!
    (1) 지식의 주인이 된다는 것 : 출처에 상관없이, 내가 원하고, 선택하고, 마무리할 수 있는 용기를 가지자
    (2) 초조해하지 말자

한 주 요약

강의 양은 지난주들보다는 적은 편이라 부담은 적었다. 적은 강의 내용들임에도 competition에서 꼭 필요한 부분들을 모두 담고 있었기에 competition을 진행할 때 강의에서 공부한 내용들을 많이 활용할 수 있었다. competition이 처음이라 걱정도 서툰 부분도 많았던 것 같지만, 이번 주를 포함하여 그동안 배운 내용을 실제로 적용해 볼 수 있어서 굉장히 재밌고 신기했다.

profile
AI를 공부하고 있는 학생입니다:)

0개의 댓글