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
class CustomDataset(Dataset):
def __init__(self):
pass
def __getitem__(self,index):
pass
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. 문제를 해결하기 위한 학습 데이터가 충분한 경우
Similarity | CNN Backbone | Classifier |
---|
High | Freeze | Trainable |
Low | Trainable | Trainable |
- Case 2. 문제를 해결하기 위한 학습 데이터가 충분하지 않은 경우
Similarity | CNN Backbone | Classifier |
---|
High | Freeze | Trainable |
Low | - | - |
마스터 클래스 - 김태진 마스터(Doodlin ML Engineer)
- 현재보다 더 나은 자신이 되는 것을 목표로 삼자.
- 같은 데이터, task라도 바라보는 관점에 따라 문제 해결의 방향은 달라질 수 있다.
- 유연한 사고는 작은 단위의 지식들의 이해를 바탕으로 한다.
- 이것만은 꼭 기억하자!
(1) 지식의 주인이 된다는 것 : 출처에 상관없이, 내가 원하고, 선택하고, 마무리할 수 있는 용기를 가지자
(2) 초조해하지 말자
한 주 요약
강의 양은 지난주들보다는 적은 편이라 부담은 적었다. 적은 강의 내용들임에도 competition에서 꼭 필요한 부분들을 모두 담고 있었기에 competition을 진행할 때 강의에서 공부한 내용들을 많이 활용할 수 있었다. competition이 처음이라 걱정도 서툰 부분도 많았던 것 같지만, 이번 주를 포함하여 그동안 배운 내용을 실제로 적용해 볼 수 있어서 굉장히 재밌고 신기했다.