인공지능/Machine & Deep Learning

Feature Scaling (ft. 입력 특성 정규화하기)

해리누나 2023. 5. 19. 20:32
728x90
반응형

해당 글은 유튜브 채널(https://www.youtube.com/@Deeplearningai) 의 Machine Learning강의를 정리한 글입니다.

 

 

집의 크기와, 방의 개수에 따라 집의 가격을 예측하는 다중 선형 회귀 모델이다. 집의 사이즈의 범위는 방의 개수의 범위보다는 훨씬 클 것이다. 예로 집의 사이즈 범위를 300~2000, 방의 개수의 범위를 0~5라 친다면 큰 가중치를 작은 피처값에 적용하는 것이 합리적일 것이다.

 

하나의 데이터 샘플을 가지고 가중치를 줘보자. [ $x_1 = 2000, x_2 = 5, 집의 가격 = $500k$ ]

하단의 왼쪽 식이 큰 가중치 $w_1$값을 큰 피처값 $x_1$에 부여한 경우다. 최종값이 너무 커져버러셔 실제 집의 가격(500k 달러)와 차이가 너무 크다. 하단의 오른쪽 식처럼, 작은 범위를 가진 피처에게 큰 가중치, 큰 범위를 가진 피처에게 작은 가중치를 적용하니 합리적인 선형모델이 만들어졌다.

 

 

 

왼쪽 그래프는 입력으로 들어오는 피처의 값들을 정규화를 시키기 전에 훈련 데이터들을 나타낸 것이다. 두 피처의 범위 차이가 크다보니 고르게 퍼져있는 형태를 가지지 못하고 있다. 이 두 피처값을 가지고 손실함수 그래프를 등고선으로 나타내면 오른쪽과 같은 모습의 등고선이 그려진다.  등고선이 수직으로는 길고 수평으로는 굉장히 좁은 모양인데, 상대적으로 작은 크기의 피처에 큰 가중치가 곱해지고, 상대적으로 큰 피처값에 작은 가중치가 적용되기 때문에 그렇다.

 

 

Why normalize inputs?

 

 

입력 특성이 정규화 되지 않을 경우, 비용함수의 모양은 왼편과 같이 활처럼 가늘고 긴 모양의 등고선을 가지게 된다고 했다. 왼쪽과 같을 경우, 비용함수에 경사 하강법을 실행하면 폭이 좁다보니 왔다 갔다 하게 되어 최적점에 도달하기까지 많은 단계가 필요해진다. 따라서 경사 하강법의 속도가 느리다. 

 

반면에 특성을 정규화하면 비용함수는 오른쪽처럼 평균적으로 대칭적인 모양을 갖게 된다. 오른쪽의 경우 어디서 시작하던지 경사 하강법은 최적점으로 바로 쭉 쭉 나아갈 수 있게 된다.

 

 

Feature Scaling

 

 

피처의 범위를 조정하는 방법이다. 각 피처의 최저값과 최고값을 최고값으로 나눠주는 방법이다.

($300/2000 = 0.15 ~ 2000/2000 = 1 => 0.15~1$   |  $0/0 = 0 ~ 5/5 = 1 => 0 ~ 1$ )

피처의 범위를 조정해주니 왼쪽 하단의 그래프처럼 더 이상 피처의 값들이 한쪽으로 몰린 듯한 모양새를 띄지 않는다.

 

 

 

Normalizing trainging sets

 

위는 평균값을 이용해서 피처들을 정규화 해주 방법이다. 해당 방법을 사용해 정규화를 해주면 각 피처의 값들은 0에 가까워진다. (보통 -11 사이의 값으로)

 

 

 

728x90
반응형