본문 바로가기

부스트캠프 AI Tech 3기/프로젝트 : P-stage

[Day22] 이미지분류 2. Image Classification & EDA

Pipeline중 Data Analysis와 관련된 EDA에 대해서 이야기한다.

 

EDA (Exploratory Data Analysis)

:탐색적 데이터 분석

:데이터를 이해하기 위한 노력

처음 데이터를 보게 되면 반드시 하게 된다. 데이터의 정보, 의미를 바로 알 수 없기 때문에 그런 호기심을 해결해 나가는 과정이다.

 

아주 대표적이고 잘 한 EDA 예시

 

EDA To Prediction(DieTanic)

Explore and run machine learning code with Kaggle Notebooks | Using data from Titanic - Machine Learning from Disaster

www.kaggle.com

하지만 뭐부터 분석을 시작해야 할 지 감을 잡기 어려울 수 있다. 이미지 데이터는 분석할 만한 요소가 많지 않기도 하다. 딱 떨어지는 정답이 있는 것이 아니기 때문에 이게 맞는지 애매할 수도 있다. 처음보는 사람이 완벽한 EDA를 하기는 쉽지 않다.

 

다시 처음으로 돌아가, EDA의 목적에 대해 생각해보면, 내가 이 데이터를 보고 들었던 의문점들을 해결하고 대충 예측해 본 것들을 확인하는 것이다. python은 도구일 뿐이고, 익숙하지 않으면 일일히 사진과 데이터를 하나씩 보면서 그 목적을 이뤄낼 수도 있는 것이다.

 

모델 학습을 해봤는데 잘 안되면 EDA로 다시 돌아갈 수도 있고, 새로운 요소를 분석할 필요가 있을 수 있다. 그렇게 EDA는 반복적으로 하게 된다. 내가 궁금한 것이 제일 중요하고, 모델학습과 배포를 하는 것의 주체는 나이기 때문에 EDA의 주체도 내가 되어야 한다.

 

Image classification

Image

: 시각적 인식을 표현한 인공물

컴퓨터가 이해하는 방식을 이해해야지 이미지를 넣은 모델이 어떻게 이해하는지 우리가 알 수 있을 것이다.

이미지의 최소단위는 pixel로 화소라고 부르기도 한다. 그 화소에 들어갈 색이 red, green, blue가 얼마나 섞였는지를 표현하는 값으로 표현되어 있고 많은 화소들이 모여서 이미지가 된다.

이미지 shape에서 h와 w는 실제이미지의 가로세로 사이즈를 의미하고 channel마다 각각 red, green, blue중 하나씩을 의미하게 된다. 하지만 가끔 방식에 따라 channel이 4개일 수도 있다.

 

uint8이라는 타입으로 0~255의 값들이 표현되어 있는다. uint8은 unsigned int 8은 정수인 양수를 뜻하고 0~255를 표현할 수 있다. 

 

이미지 뿐만 아니라 음성,text 등 엄청 다양한 input형식이 있을 수 있다. input의 형태를 이해해야지 모델이 이해하는 방식을 이해할 수 있을 것이다. 

 

Image Classification Model

image를 모델에 넣었고, 모델은 categorical한 class를 output으로 내뱉는 것.

이미지를 어떻게 가공해서 넣을까, float/int, size, 밝기, flip 등을 고민할 수 있다.

 

Baseline

baseline이 너무 명확하게 주어지면 스스로 학습이 잘 되지 않을 수 있기 때문에, 처음부터 정답을 주지는 않고, 강의에서 언급한 내용이 넣어져 있다. 스스로 미션을 해보고, 예시정답코드랑 비교해보면서 생각하지 못했던 부분들을 발견해볼 수 있다.

강의가 거듭될 수록 베이스라인도 점점 강화된다.

  1. 강의를 본다
  2. 내용 적용,스스로 코드 작성
  3. 예시 코드와 비교

의 과정으로 해보자!

검색하거나 남의 코드를 참고해도 좋다.