(1강) Competition with AI Stages!
P stage
Competition Details
Competition 당시 많은 사람들이 쉽게 간과하는 것이 Overview이다. Overview는 그 도메인에 대한 지식과, 대회의 배경이나 목적이 있는 것이기 때문에 반드시 읽기를 권장한다. Overview를 읽고, 문제를 정의하는 습관을 들이자.
(2강) Image Classification & EDA
EDA
EDA란 데이터를 이해하기 위한 노력이다. 막막하게 느껴질 때에는 내가 무엇이 궁금한지 생각해보자. 내가 궁금한 정보를 파악할 수 있는 방향으로 찾아나가는 것이 EDA가 될 것이다.
Image Classification
Image를 Input으로 받아서, Model을 통해 해당 Image에 대한 Class를 출력하는 Task이다. Image Data를 처리해서 학습시키고, 결과를 만들어 내기 위해 Baseline을 만들어 갈 것이다.
Reference
쇼핑 데이터 EDA, Melanoma Classification EDA
Project
오늘의 목표 및 진척상황
- EDA를 통해 Data 분포 확인
- Pipeline 및 Skeleton Code 설계
- Prediction 결과물 출력 및 제출
직면했던 문제와 학습한 내용
- Data Labeling
보통의 Competition과 달리, Data를 통해 직접 Label을 구성해야 했다. 처음엔 간단하게, Directory Path에 동일한 File명을 추가하는 방법을 사용했다. 나중에 알고보니 확장자가 다른 경우가 있어서 오류가 생겼고, 원인을 찾느라 고생했다. 이 문제를 해결하기 위해서
pathlib
Library를 찾아 공부하게 되었고, 덕분에 Directory 내의 File의 경로를 손쉽게 얻을 수 있었다.# pathlib 사용 예시 from pathlib import Path path = Path('data/train') img_paths = [str(p) for p in list(path.glob('*/*')) if '._' not in str(p)]
- 개발 환경
cv2
실행 간 오류를 해결했다. (!apt-get install libgl1-mesa-glx -y
)tqdm
실행 간 오류를 해결했다. (!pip install ipywidgets
)
- EDA 시 Data Handling
조건에 따른 파생변수 추가 및 Graph 구성 등에 어려움이 있었지만,
pandas
Library를 다시 학습하여 EDA를 수행할 수 있었다. Data의 편향 정도를 파악할 수 있었고, 층화추출의 필요성을 느꼈다.
- Skeleton Code
Base Line 없이 Logic을 따라서 Code를 구성해나갔다. Dataset과 DataLoader에서 많은 에러가 생겼다. Data의 변환 등을 추적하는데 많은 시간을 쏟았다. 덕분에 Train Data 전체의
img_path
를 구성했고, 각 Image에 따른 Label을 One-Hot Vector 형태로 구성했다. 일관성 있는 학습을 위해 Fold Index가 변하지 않도록 구성했고, 모델의 학습 및 최종 예측까지 수행하는 뼈대를 완성했다.
- Model Training
Code 상의 오류로 CrossEntropyLoss를 사용하지 못하고 있다. PyTorch의 Version 문제인지, Silu를 사용하지 못하고 있다. 이 부분은 즉시 개선할 사항이다. 이외에도, 현재 Accuracy가 매우 낮은 것으로 보아 Data Labeling 등에 문제가 있는 것으로 판단됨.
추가로 진행 할 사항
- Cross Entropy Loss 사용 시 One Hot Encoding의 필수 여부 확인
- PyTorch Version 및 Silu 사용 방법 강구
- Data 분포에 따른 층화추출 방법 강구 (Stratified K Fold 등)
- Augmentation 적용
- TTA 적용
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[P1] Day 43 (0) | 2021.04.11 |
---|---|
[P1] Day 42 (0) | 2021.03.31 |
[U] Day 40 - Lightweight V (0) | 2021.03.28 |
[U] Day 39 - Lightweight IV (0) | 2021.03.28 |
[U] Day 38 - Lightwieght III (0) | 2021.03.28 |
Uploaded by Notion2Tistory v1.1.0