Doby's Lab

Normalization이 필요한 이유 본문

AI/Concepts

Normalization이 필요한 이유

도비(Doby) 2022. 12. 28. 23:34

Normalization

Normalization이란 정규화로 특정 feature의 scale을 0에서 1로 새롭게 scaling 하는 기법을 의미합니다.

(개념에 대해 정리한 글)

https://draw-code-boy.tistory.com/438

 

Standardization(표준화)와 Normalization(정규화)의 차이

공부를 하다 보면 Data Preprocessing을 할 일이 많은데 책에서는 정규화를 한다 하지만 StandardScaler를 통해 Data Scaling을 하는 경우가 종종 있습니다. 언어가 혼용되는 것인지 잘못 알고 있는 건지 정리

draw-code-boy.tistory.com

 

이 작업이 데이터셋에서 feature 간 scale이 다르기 때문에 이를 같게 하기 위해 쓰이는 작업인 것만 알고 있었습니다.

하지만, Image Dataset을 사용한 프로젝트를 진행하면서 픽셀의 범위는 모두 같은데 Normalization이 왜 필요한가라는 궁금증에서 출발하여 글을 작성하게 되었습니다.


1. Feature Scale이 넓은 경우

이 이유는 앞서 말한 것과 같습니다. Feature 간의 Scale이 다른 경우, Scale이 넓은 Feature가 모델에 끼치는 영향 때문에 [0, 1] 사이의 범위로 모두 같게 Scaling 하여 영향을 최대한 균등하게 가져가기 위한 이유입니다.


2. Local minima에 빠질 위험 감소, 이로 인한 수렴 속도 향상

Image에 대해 Normalization을 하는 이유에서 설득력 있게 다가온 이유입니다.

 

Andrew 강의 자료

위 그림에는 Model Parameter(w, b)에 따른 J(= Cost Function)를 시각화한 형태입니다.

왼쪽은 Unnormalized, 오른쪽은 Normalized입니다.

 

왼쪽은 Scale의 범위가 넓기 때문에 그림처럼 Local Minima에 빠질 위험이 있습니다. 또한, 여러 번의 Training을 통해 Global Minimum에 도달하는 횟수가 오른쪽보다 왼쪽이 더 많은 것을 볼 수 있습니다.

 

위 그림이 어려울 수도 있으니 아래와 같이 하나의 Parameter에 대해서도 나타낼 수 있습니다.

Unnormalized

Unormalized 한 데이터셋을 학습시킬 때, Parameter에 따른 Error를 나타냈습니다.

Scale이 넓다 보니 Local Minimum에 빠질 위험이 있습니다.

Normalized

위 그림은 Normalized 한 데이터셋에 대한 Error와 Unnormalized 한 데이터셋의 Error를 나타내었습니다.

 

Scale이 좁아졌다 보니 Local Minimum이 빠질 위험이 줄어들 수 있습니다. 그리고, Local Minimum에 빠질 경우 빠져나온다고 하면, 빠져나오는 시간은 당연하게 Normalized 한 데이터셋이 폭이 더 좁기 때문에 훨씬 쉬워질 것입니다.

 

이러한 경우들을 보아 Normalization을 해야 하는 이유

  • Local Minimum에 대한 위험 감소
  • Global Minimum에 수렴하는 속도 상승

으로 정리할 수 있습니다.


Reference

https://powerofsummary.tistory.com/155

 

[딥러닝 개념] input image를 normalize해서 넣는 이유

normalize한다는게 무슨 말일까? 논문을 보다보니 이런 내용이 있었다. batch normalization으로 feature map들을 정규화한다는 말은 들었는데 input image부터 정규화한다는 말은 처음 들었다. 그런데 간단하

powerofsummary.tistory.com

https://light-tree.tistory.com/132

 

딥러닝 용어 정리, Normalization(정규화) 설명

제가 공부한 내용을 정리한 글입니다. 제가 나중에 다시 볼려고 작성한 글이다보니 편의상 반말로 작성했습니다. 잘못된 내용이 있다면 지적 부탁드립니다. 감사합니다. Normalization Data Normalizatio

light-tree.tistory.com

https://velog.io/@cha-suyeon/Normalization%EC%9D%B4%EB%9E%80-Normalize%EB%A5%BC-%ED%95%B4%EC%95%BC%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

 

Normalization이란? Normalize를 해야하는 이유

stackoverflow와 youtube 영상의 출처는 아래에 있습니다.Data Normalization은 데이터의 범위를 사용자가 원하는 범위로 제한하는 것을 의미합니다.I understand that sometimes, when for example the inpu

velog.io

https://sonsnotation.blogspot.com/2020/11/8-normalization.html

 

[머신러닝/딥러닝] 8. Normalization

 

sonsnotation.blogspot.com

 

728x90