### data preparation ###
*종류
- Cleaning
1. Missing values
: 데이터 샘플이 충분한 경우, 결측값의 샘플 제거
: feature의 평균값으로 값을 채울 수 있지만, 결과에 noise가 있을 수 있으므로 조심해야 한다.
2. outliers
: 보통 특이점이 얼마 없지만, 결과에 큰 영향을 미치므로 특이점을 제거하는 것이 좋다
3. nominal values(symbolic data)
: symbolic value를 number로 변환한다.
: 값을 정렬할 수 없는 경우, 값 집합의 수만큼 feature를 분할한다.
: 예를 들어 Is green?에 대한 대답의 값 집합은 yes, no이므로, 1, 0으로 변환할 수 있다.
- Preprocessing : Data transformation, Dimension reduction
* preprocessing 하는 이유는?
- data를 비교할 수 있는 범위로 유지하기 위해서
** example : x1=(0,1), x2=(0,2), x3=(1000, 10000)일 때
x={x1,x2,x3}이면, x3가 결과를 지배할 것임!
1. Zero-centering (Mean substraction)
: preprocessing에서 가장 흔히 쓰는 형태
: Data의 각 feature마다 평균을 빼는 방법
: 모든 dimension에 걸쳐 데이터가 (0,0) 주변으로 군집하게 만드는 방법
: 특히 이미지 처리에서, 편의상 모든 픽셀에서 단일 value를 빼거나, 3-color 채널 개별적으로 빼는 것이 일반적일 수 있음
2. Normalization
: data dimension들을 거의 같은 scale을 가지도록 정규화
: 선형 정규화 :0~1 범위로 feature value를 매핑하는 방법
: z-정규화 : feature값의 평균을 빼고, 그 결과를 표준 편차로 나누는 방법
3. PCA and Whitening
: less-used.
: not used with Convolutional Networks.
- Principal Component Analysis (PCA)
: dimensionality reduction 또는 correlation reduction을 위한 방법
: 데이터의 공분산 행렬의 eigenvalue 분해 또는 데이터 행렬의 특이값 분해의 계산이 포함됨
: 일반적으로 각 attribute에 대한 mean-centering 이후에 쓰임
: mean-centering된 eigen vector에서, principal component들을 dimension만큼 찾고, 각 데이터를 principal component를 사용하여 표현
: data의 dimension 수만큼, principal component를 찾을 수 있음
: correlation reduction은 모든 principal components를 찾음
: dimension reduction은 현재 dimension보다 적은 수를 선택할 수 있음 (select from the top and drop remains.)
- Whitening
: data를 eigen기저에 두고, 모든 dimension을 eigen값으로 나누어서 scale을 정규화
: 이 방법의 기하학적 해석은, 입력 데이터가 다변량 가우시안일 경우, whitened data는 평균이 0이고, 항등 공분산 행렬인 가우시안이 된다는 것이다.
** 일반적인 함정(common pitfall)
- 모든 preprocessing 통계는, 오로지 training data에 의해서만 계산되고, 그 이후 validation data에 적용해야 한다.
- 평균을 전체 데이터 세트의 이미지에서 빼고, 데이터를 훈련/검증/테스트로 분할하는 것은 잘못되었다. 훈련 데이터에 대해서만 평균을 구해야 한다!
* Data preprocessing for images.
1. Cropping : 가로 세로 비율을 일정하게 만들기 위해 사용
2. Image Scaling : 원하는 pixel만큼 이미지의 가로 세로를 조정
3. Normalizing image inputs
: data의 정규화는 각 입력 파라미터가 서로 비슷한 데이터 분포를 가지도록 함
: 네트워크를 훈련시키는 동안, convergence를 더 빠르게 함
: data 정규화는 각 픽셀에서 평균값을 뺀 후, 표준 편차로 나누는 방법
: image 입력은 픽셀이 양수여야 하므로, 정규화된 데이터를 0~1, 또는 0~255의 범위에서 스케일링
4. Data augmentation
: Scaling, rotation, flip, and other affine 변환