






머신러닝이나 데이터 분석을 수행하기 전에 데이터를 적절한 형태로 변환하는 과정을 말한다
원본 데이터는 종종 결측값이 있거나, 일관성이 없거나, 노이즈가 섞여 있는 등 여러 가지 문제를 가지고 있을 수 있다. 이러한 문제를 해결하고, 머신러닝 알고리즘이 더 효과적으로 학습할 수 있도록 데이터를 정제하는 것이 데이터 전처리의 목표이다
일반적으로 입력 데이터는 전처리를 해준다
가장 대표적인 전처리 과정은 "zero-mean"으로 만들고 "normalize" 하는 것이다
실제로는 이미지의 경우 전처리로 zero-centering 정도만 하고, normalization 하지는 않는다. 왜냐하면 이미지는 이미 각 차원 간에 스케일이 어느정도 맞춰져 있기 때문이다. 따라서 스케일이 다양한 여러 ML 문제와는 달리 이미지에서는 normalization을 엄청 잘 해줄 필요는 없다
일반적으로는 이미지를 다룰 때는 굳이 입력을 더 낮은 차원으로 projection 시키지 않는다
CNN에서는 원본 이미지 자체의 spatial 정보를 이용해서 이미지의 spatial structure를 얻을 수 있도록 한다
요약하자면 이미지를 다룰때는 기본적으로 zero-mean 으로 전처리를 해준다는 것이다
평균 값은 전체 Training data에서 계산한다
보통 입력 이미지의 사이즈를 서로 맞춰주는데 가령 32x32x3이고 네트워크에 들어가기 전에 평균값을 빼주게 된다
그리고 Test time의 이미지에도 Training time에 계산한 평균 값으로 빼주게 된다