AI
-
Pstage - Image ClassificationAI/5주차 2021. 9. 3. 10:28
현재 문제점 class imbalance가 심하다 validation accuracy와 제출 시 accuracy가 차이가 많이 난다 모델이 잘 예측하지 못하는 구간이 존재한다 (나이의 경계값) 데이터셋을 분석한 결과 비슷한 class에 배경이 비슷한 경우가 있다 class들이 상호 배타적이지 않다. 문제 원인 분석 class imbalance의 경우 기본적으로 주어지는 dataset이 원인 data leakage 발생: 학습할 때 사용되는 인물이 validation에 존재하여 validation이 제 역할을 수행하지 못한다 / overfitting 데이터가 부족 / 사람이 하기도 어려운 task 모델에게 원치 않는 feature를 학습 시킬 수 있다. class간 연관성이 있다. 해결 방안 1. clas..
-
5. Ensemble & Hyperparameter Optimization & ExperimentAI/4주차 2021. 8. 27. 18:05
Model Averaging soft voting이 더 좋을 확률이 있다. TTA (Test Time Augmentation) 테스트 이미지를 augmentation 후 모델 추론, 출력된 여러 결과를 앙상블한다. 앙상블 기법에는 성능-효율 trade off가 존재한다. Hyperparameter Tuning Grid Search Random Search Bayseian Optimization (성능 좋음) https://brunch.co.kr/@tristanmhhd/19 Bayesian Optimization Hyperparameter tuning | Optimization Optimization은 어떤 임의의 함수 f(x)의 값을 가장 크게(또는 작게)하는 해를 구하는 것이다. 이 f(x)는 머신러닝..
-
4. Training & InferenceAI/4주차 2021. 8. 27. 18:05
Loss Loss도 nn.Module에 포함된다. loss.backward()를 통해 gradient 가 update된다. Focal Loss: Class Imbalance 문제가 있는 경우, 맞춘 확률이 높은 Class는 조금의 loss를, 맞춘 확률이 낮은 Class는 loss를 크게 부여 Label Smoothing Loss: class target label을 one-hot으로 표현하는 것이 아닌, soft 하게 표현해서 일반화 성능을 높임 ex) [0,1 0, 0] -> [0.2, 0.7, 0.05, 0.05] Metric 모델을 평가하기 위한 지표. 데이터에 따라서 잘 선택하는 것이 필요. Class Imbalance가 큰 경우 F1-Score, 아니면 Accuracy Pytorch Light..
-
3. ModelAI/4주차 2021. 8. 26. 16:44
Pytorch low level, pythonic, flexibility Modules pytorch의 모든 레이어는 nn.Module 클래스를 따른다 nn.module family: nn.module을 상속받은 모든 클래스의 공통점 -> forward() 함수를 가진다, parameter https://pytorch.org/docs/stable/generated/torch.nn.Module.html Module — PyTorch 1.9.0 documentation Shortcuts pytorch.org Pretrained Model 일반적으로 모델을 처음부터 학습시키는 것은 비효율적. 따라서 좋은 품질, 데이터로 미리 학습한 모델을 내 목적에 맞게 다듬어서 사용하는 pretrain 모델을 이용하는 방식..
-
2. Data FeedingAI/4주차 2021. 8. 26. 15:57
데이터 사이언스에서는 전처리 과정이 중요하다. 경진대회용 데이터는 품질이 양호하다. 전처리 방법은 도메인, 데이터 형식에 따라 다양한 case가 존재한다. 다양한 data augmentation 기법과, 이를 위한 albumentation 라이브러리가 있다. https://github.com/albumentations-team/albumentations GitHub - albumentations-team/albumentations: Fast image augmentation library and an easy-to-use wrapper around other libraries. Fast image augmentation library and an easy-to-use wrapper around other..
-
1. Competition & SeabornAI/4주차 2021. 8. 26. 15:39
1. Overview 숙지하기 Problem Definition: 내가 풀어야 할 문제, input output 파악 등 2. Data Description 데이터의 형태와 의미를 파악하기 EDA (Exploratory Data Analysis) Seaborn은 Matplotlib 기반 통계 시각화 라이브러리. Matplotlib으로 커스텀 가능 깔끔하고 쉬운 문법 pip install seaborn==0.11 import seaborn as sns 5가지 기본적인 API 제공 Categorical Distribution Relational Regression Matrix Categorical countplot이 대표적이며 범주를 이산적으로 카운팅하여 막대그래프를 그림 x, y, data, hue, pa..
-
4. Parallel & Hyperparameter Tuning & TroubleshootingAI/3주차 2021. 8. 20. 17:48
Model Parallel & Data Parallel 모델 나누기 / 데이터 나누기 모델 병렬화는 병목, 파이프라인의 어려움으로 인해 어렵다 데이터 병렬화는 데이터를 나눠 GPU에 할당하고, 결과를 평균낸다. mimibatch 수식과 유사하지만, 여러 GPU에서 병렬적으로 실행 DataParallel - 데이터를 분배한 후 평균을 취함. GPU 사용 불균형 문제 발생(한곳에서 평균을 내주기 때문에), Batch 사이즈 감소 DistributedDataParallel 각 CPU마다 프로세스를 생성하여 개별 GPU에 할당(개별적으로 평균 계산) PIN memory: DRAM에 데이터를 바로 올림 Hyperparameter Tuning 모델이 학습하지 않는 값을 사람이 지정 (lr, 모델의 크기, optim..
-
3. 시각화에서 텍스트 / Loading & Monitoring with PytorchAI/3주차 2021. 8. 19. 17:20
Title: 가장 큰 주제 Label: 축 Tick Label: 축에 눈금을 사용 Legend: 범례 Annotation: 이 외 시각화에 대한 설명 model.save() 학습의 결과를 저장 모델의 형태와 파라미터를 저장 중간 과정 저장을 통해 최선의 결과모델 선택 결과의 재연성 state_dict: 모델의 파라미터를 ordered dict 형태로 저장 torch.save(model.state_dict(), os.path.join(PATH, "model.pth")) checkpoints 학습의 중간 결과를 저장 epoch, loss, metric을 지속적으로 확인 저장 학습을 중단하였다가 다시 진행하기 위해 필요 Freezing pretrain 된 모델의 파라미터 일부를 고정 다양한 freezing 기..