피쳐 정규화 (Feature Normalization) 의 목적
피쳐 정규화는 피쳐에 대한 정규화 처리로 서로 다른 지표들을 비교할 수 있도록 한다.
예를 들어 몸무게와 키가 건강에 미치는 영향에 대해서 분석한다고 할 때,
몸무게는 50~100kg 사이의 범주에, 키는 160~180cm 사이의 범주에 일반적으로 있게 될텐데, 이때 분석 결과는 수치 범위가 넓은 체중 피쳐에 편향될 가능성이 높다.
또한 두 값의 평균, 분산, min, max가 제각각이라면 두 피쳐에 대한 비교가 어렵고 모델의 학습 성능이 떨어질 확률이 높은 것.
수치형 데이터에 피쳐 정규화를 하면, 모든 피쳐를 대략 비슷한 수치 구간으로 이동시킬 수 있고, 피쳐끼리의 비교가 가능해진다.
피쳐 정규화의 종류
1) 선형함수 정규화 Min-Max Scaling
Min-Max 스케일링은 데이터에 대해 선형변환하여, 데이터를 동일한 비율로 확대 및 축소, 모든 결과값이 [0,1] 사이에 오도록 만든다.
$$ X_{norm} = \frac{X-X_{min}}{X_{max} - X_{min}} $$
2) 표준 정규화 Z-score Normalization
Z-score 정규화는 모든 데이터에 대해서 평균이 0이고 표준편차가 1인 분포로 만든다.
$$z = \frac{x-\mu }{\sigma }$$
피쳐 정규화의 중요성
수치형 데이터를 정규화 해야 하는 가장 중요한 이유중 하나는 경사하강법을 효율적으로 수행 할 수 있다는 점이다.
정규화되지 않은 데이터에서는 경사하강법은 스케일이 큰 피쳐 위주로 업데이트 될 것이고,
알고리즘도 지그재그 형태의 학습 곡선을 그리면서 불필요한 step들을 더 오래 거치게 될 것이다.
반면 정규화된 데이터에서라면, 아래 오른쪽 그림에서와 같이 손실함수가 더 원형을 띌 것이고,
학습률이 동일하다는 가정 하에서 더 빠르게 최적해에 근접, 즉 최소 손실 지점을 찾을 수 있을 것이다.
'ML study' 카테고리의 다른 글
[네이버AI class] 3주차 (4) 딥러닝 학습 원리 (0) | 2024.05.20 |
---|---|
[네이버AI class] 3주차 (3) - 경사하강법 (1) | 2024.05.20 |
[네이버AI class] 3주차 (2) - 행렬 (0) | 2024.05.17 |
[네이버AI class] 3주차 (1) - 벡터 (0) | 2024.05.16 |
[네이버AI class] 1주차 - 개발 환경 설정, Pandas, Numpy (0) | 2024.05.05 |