Feature에 대해서 정규화(Normalization)을 진행하는 이유는?
📌 머신러닝 모델의 학습 과정에서 특정 feature에 편향되는 것을 방지하기 위함이 있다.
어떤 사람의 건강지수를 예측하는 모델을 만든다고 가정했을 때 신체와 관련된 다양한 Feature 선정이 이루어질 것이다. 그 중 키와 몸무게만을 학습 Feature로 사용했다고 가정해보자
만일 주어진 데이터에서 키는 미터(m) 단위를 사용하고, 몸무게는 킬로그램(kg) 단위를 사용한다면
데이터가 대략 아래와 같이 주어질 것이다.
키(m) | 몸무게(kg) |
---|---|
1.5 | 42 |
1.7 | 86 |
1.6 | 55 |
여기서 키와 몸무게의 범위에 주목해야 한다. 키는 대략적으로 1.5~1.8의 범위를 갖는다면 몸무게는 40~80의 범위를 가질 것으로 예상할 수 있다. 이게 학습에서 무슨 문제가 되는 걸까?
위 모델의 가설함수 $h(w)$ 를 $w_1x_1+w_2x_2+b$ 으로 보고 $x_1$을 키, $x_2$를 몸무게라고 정하자
이 식에 첫번째 데이터인 1.5m와 42kg을 $x$값을 각각에 대입해보면
1.5$w_1$+42$w_2$+$b$ = $y$ 식을 세울 수 있고 모델학습 과정에서는 $y$값을 최대한 수렴하는 $w$값들을 찾기 위해 노력할 것이고 그렇게 적절한 $w_1$과 $w_2$ 값을 찾았다고 하자. (상수 $b$는 가중치들에 비해 영향력이 약하므로 무시한다.)
그 다음에는 1.7$w_1$+78$w_2$+$b$ = $y$ 식을 가지고 학습을 진행할 텐데 이 때 앞서 구했던 $w_1$과 $w_2$를 대입한 결과인 예측값 $\hat{y}$ 과 실제값 $y$ 사이의 편차가 분명 크게 났을 것이다. 왜냐하면 기존의 가중치는 첫 번째 식 1.5$w_1$+42$w_2$+$b$ = $y$를 최대한 만족하는 가중치였으므로 동일한 가중치를 가지고 두 번째 식에 대입할 경우 큰 편차가 발생할 수 밖에 없었을 것이다. (지극히 단순한 모델이 아니고서야 그럴 것이다.)
모델은 두 번째 식을 통해 또 다시 가중치 학습을 진행할 것이다. 그리고 이 과정을 거듭할수록 키값에 비해 들쑥날쑥하는 몸무게값에 잘 대응하는 $w_2$를 찾는 것이 실제값 $y$ 근사치를 만족하는 관건이 되므로 더욱 세밀하게 $w_2$ 값을 조정하려 들 것이다.
왜냐하면 키값의 가중치인 $w_1$의 업데이트(학습)를 1에서 2로 진행한다 하더라도 $y$ 근사치에 주는 영향이 1.5 → 3, 1.7 → 3.4, 1.6 → 3.2으로 매우 낮지만 몸무게 값은 가중치 $w_2$가 1에서 2로 변하는 것만 해도 42에서 84가 되기 때문이다.
결론적으로 모델은 $w_2$에 집중할 수 밖에 없게 되고, 실제로 키가 건강지수에 높은 영향을 미치는 feature일지도 모름에도 무시하고, 몸무게가 건강지수를 결정하는 가장 중요한 feature로 받아들이는 편향된 모델이 될 것이다.
모든 feature를 동등하게 바라보도록 하기 위해서
Min-Max Scaling, Z-score Normalization 등을 각 feature마다 수행한다.
Min-Max Scaling 은 각 feature를 0~1 사이의 값으로 바꾸고, Z-score Normalization는 평균이 0이고 표준편차가 1인 정규분포 상에 투영시킨다.
결국 각 feature 값의 범위를 낮은 수준에 머물게 하는 것이다. 학습 시 모델이 겪을 값의 변화 폭(?)이 feature 정규화 전과 비교했을 때 상대적으로 동일 선상에 놓이게 되므로 특정 feature가 부당하게 편향되는 현상을 어느정도 막을 수 있다.
또한 추가적으로 정규화를 통해 모델의 각 가중치 업데이트 속도도 동일해 지고, 전체적으로 모든 가중치가 최적값(최적해)를 찾는 시간이 단축된다. 학습률이 동일하다는 가정하에서, 각 feature값의 크기는 고스란히 가중치 업데이트에 영향을 주게되어, 최적값에 수렴하기 위한 Step별 보폭에 영향을 주게된다. 그래서 정규화를 거치지 않으면 각 가중치의 보폭이 달라지므로 최적값에 수렴하는 각자의 위치에 도달하는 과정에서 어떤 가중치는 미리 가서 다른 가중치들이 도달하기를 기다려야 할 것이다.
정규화를 통해 보폭을 최대한 맞춘다면 모두 비슷한 시기에 도착하므로 결론적으로 학습 속도 향상에 영향을 주게 되는 것이다.
정리
위 과정에서 우리는 L1, L2 정규화를 무시했다. L1, L2 역시 가중치를 다루므로 위 정규화 과정을 통해 1차적으로 전처리된 후에 반영되어야 존재 이유가 제대로 발동된다. 참고로 L1, L2 정규화는 Normalization과 같이 같은 ‘정규화' 라는 이름으로 불리지만 역할이 다르므로 헷깔려서는 안된다.
또한 모든 모델에서 Feature 정규화를 진행해야 하는 것은 아니다. 선형 회귀, 로지스틱, 서포트 벡터 머신, 뉴럴 네트워크와 같이 경사하강법 적용이 가능한 방식의 모델에서 사용하지만 랜덤 포레스트, GBM과 같은 트리 계열의 모델은 데이터를 분류하고, 지니 계수의 impurity와 같은 수치를 활용한 학습을 진행하는데, 연산 방식이 학습 과정에서 feature 각각이나 서로 간 모두 영향을 끼치는 구조가 아니기 때문이다.
'데이터사이언스 이론 공부' 카테고리의 다른 글
MAP(Maximum A Posterior) 에 대한 이해 (0) | 2022.09.08 |
---|---|
GitHub 실전 예시를 통해 실무 활용법을 파악해두자 (0) | 2022.09.06 |
머신러닝의 모델 평가 방법 (0) | 2022.08.30 |
MLE 에 대한 정리 (0) | 2022.08.12 |
분류 모델에서 Accuracy의 한계 (0) | 2022.07.13 |