티스토리 뷰

반응형
 

Kaggle 시작이 막막하다면

kaggle의 사용법을 아주 잘 알려주는 책을 정리해보았다. https://goldenrabbit.co.kr/2022/05/10/%ec%ba%90%ea%b8%80-%ec%95%88%eb%82%b4%ec%84%9c-%ec%ba%90%ea%b8%80-%ec%9d%b4%eb%a0%87%ea%b2%8c-%ec%8b%9c%ec%9e%91%ed%95%98%ec%84%b8%ec%9a%94/ [

sikaro.tistory.com

 

전 시간에 이어서 이번엔 딥러닝 문제해결 프로세스이다.

 

딥러닝 문제해결 프로세스

 

문제(경진대회) 이해 - 배경, 목젹, 유형 등 / 평가지표 파악

탐색적 데이터 분석 - 데이터 구조 탐색 / 데이터 시각화(타깃값 분포, 데이터 수, 품질 등)

베이스라인 모델 - 환경 설정 / 데이터 준비 / 모델 훈련 및 성능 검증 / 결과 예측 및 제출

성능 개선 - 데이터 증강, 옵티마이저, 레이블 스무딩, 앙상블 등 개선 기법 / 성능 검증 / 결과 예측 및 제출

 

머신러닝과 비슷하지만 아무래도 데이터의 수와 품질이 확실히 영향을 미치는 것 같다.

주어진 데이터가 충분히 많은지, 품질이 너무 떨어지지는 않는지도 확인해야 한다.

 

*이는 train 할때 그래프의 점들을 모두 지나는 선이 있다면 분명 train data에서는 확실히 잘 되겠지만, 검증할 때 잘 안되는 것과 같다.

 

딥러닝에서는 데이터 자체를 가공해 성능을 올리는 비중이 머신러닝보다 크다. 또한 하나의 모델을 점진적으로 개선해 볼 수도 있고, 여러 가지 모델을 시도하거나 앙상블 할 수도 있다.

 

데이터 구조 탐색 - 학습하고 예측할 데이터가 이미지이므로, 다수의 이미지 파일과 약간의 메타데이터

데이터 시각화 - 타깃값 분포를 시각화하거나, 이미지 데이터를 출력해본다.

타깃값 분포를 통해 불균형 여부를 판단하고, 이미지 데이터 출력하여 앞으로 어떤 이미지를 훈련할지 확인.

 

데이터 수가 충분한지 살펴본다. 너무 적다면 적극적으로 증강해야 한다.

실전에서는 이미지 품질이 제각각인 경우가 많다. 주어진 이미지를 실제로 살펴보고 활용할 수 없는 수준의 데이터는 버리거나 재활용할 수 있는방안을 강구할 것.

추가적인 데이터는 적절히 시각화해 모델링을 어떻게 할지 인사이트를 얻을 수 있다.

 

 

환경 설정 - 결과를 재현할 수 있도록 시드값을 고정. 또한, 딥러닝 모델을 빠르게 훈련하도록 GPU 장비로 설정

데이터 준비 - 사용할 딥러닝 프레임워에 맞춰 데이터를 준비.

파이토치의 경우 전용 데이터셋 클래스와 데이터 로더를 생성. 이때 배치 크기 조절 가능 및 이미지 변환기로 데이터 증강도 가능.

 

모델 훈련 및 성능 검증 - 기본적인 딥러닝 파이프라인, 즉 뼈대를 만들어둬야 한다. 신경망 모델을 직접 설계할 수도 있고, 사전 훈련 모델을 불려와 사용할 수도 있습니다.

아울러, 모델 훈련 전에 손실 함수와 옵티마이저를 설정해야 합니다.

 

성능 개선 - 여러가지 기법 활용. 다양한 이미지 변환기를 통해 데이터 증강을 더 적극적으로 해보거나 옵티마저와 스케줄러를 새롭게 설정할 수 있다. 예측 단계에서 수행하는 테스트 단계 데이터 증강(TTA), 레이블 스무딩도 가능.

 

몇 가지 하이퍼 파라미더를 조정해보거나 모델끼리 앙상블해서 성능 끌어올림.

 

 

출처: [Must Have]머신러닝 딥러닝 문제해결 전략

 

반응형