본문 바로가기
AI/딥러닝 기초(Deep learning)

[딥러닝][기초] 데이터 정규화(Data nomalization)

by Hyen4110 2021. 4. 29.
반응형

아래의 블로그를 참고하여 작성한 글입니다 :)

https://medium.com/techspace-usict/normalization-techniques-in-deep-neural-networks-9121bf100d8

 

Normalization Techniques in Deep Neural Networks

Normalization has always been an active area of research in deep learning. Normalization techniques can decrease your model’s training time by a huge factor. Let me state some of the benefits of…

medium.com

 

1. 데이터 정규화의 필요성 

- 학습 데이터에서는 성능이 좋지만 테스트 데이터에서는 영 성능이 별로일 때, 단순히 오버피팅의 문제가 아니라 두 데이터의 분포가 달라서인 경우도 있습니다. 

- 또한 학습 할 때에도 데이터간의 분포가 서로 다르다면, 각 분포에 맞춰서 업데이트가 되는 과정에서 학습이 제대로 이루어질 수가 없으며, 그 속도도 상당히 느릴 수 밖에 없습니다. 아래에서 좀 더 구체적으로 이유들을 짚어보도록 하겠습니다. 

 

1) 큰 값을 갖는 변수에 편향되지 않을 수 있다

: 어떤 변수의 데이터의 단위가 다른 변수보다 큰 경우에도 변수(feature)의 영향(contribution)이 크게 잡힐 수 있습니다. : 모델을 학습 시킬 때 어떤 변수는 크게 업데이트하고, 어떤 변수는 작게 업데이트를 해야 빠른 시간안에 손실 최소지점에 도달할 수 있지만, 각 변수의 범위가 다르기 때문에 어떤 변수에 맞추어 학습률을 정하는가에 따라 다른 변수는 최소 지점을 두고 지그재그로 움직이는 현상이 나타날 수 있습니다. 

https://medium.com/@limxiuxian98/batch-normalization-what-should-we-know-8c6f5d30d3ad

 

2) 내부 공변량 변화(internal covariate shift)를 줄일 수있다.

: 내부 공변량 변화(internal covariate shift)란 딥러닝 모델 내부에 하나의 은닉층에 서로 다른 범위의 입력이 들어오는 것을 의미합니다. 

 

https://towardsdatascience.com/understanding-dataset-shift-f2a5a262a766

 

3) 손실함수의 표면을 매끄럽게 한다. 

: 정규화를 통해 기울기의 크기를 제한함으로써, 손실 표면을 더 매끄럽게 만듭니다(논문)

 

 

4) 빠른 최적화

: 정규화는 Gradient Vanishing하거나 Gradient Exploding하는 것을 허용하지 않도록, x의 절대값을 특정 범위로 제한하기 때문에 최적화를 더 빠르게 만듭니다.

: 아래와 같이 그린 존으로 범위를 제한하면 활성화함수의 미분값이 0이 아닌 의미있는 값을 지님을 확인할 수 있습니다. 즉, 정규화를 통해서 Gradient의 미분값이 0으로(Saturated) 되지 않도록 하여 최적화를 돕습니다. 

 

https://medium.com/analytics-vidhya/how-batch-normalization-and-relu-solve-vanishing-gradients-3f1a8ace1c88

 

 

 

2. 정규화 방법

대표적인 방법으로는 표준화(standardization)과 최소극대화(minmax) 정규화가 있습니다. 

 

2.1 표준 정규화(Standarzation)

: 기본적인 전처리로 각 샘플을 평균이 0 분산이 1이되도록 변환한다(데이터 분포의 표준정규분포화)

 

2.2 Min-max normalization

: 데이터를 0에서 1사이로 압축하거나 늘리는 방법으로, 데이터에서 최소값을 빼고 최대값과 최소값의 차이고 나누어줌

 

반응형

댓글