2026년 1월 16일 금요일

인공지능에서 정규화(Normalizing)와 표준화(Standardizing)

 "Normalizing" a vector most often means dividing by a norm of the vector,
for example, to make the Euclidean length of the vector equal to one. In the NN literature, "normalizing" also often refers to rescaling by the minimum and range of the vector, to make all the elements lie between 0 and 1. 

- 정규화(Normalizing) : 데이터 혹은 벡터를 정규화 한다는 것은 벡터의 크기로 벡터를 나누어 크기(Euclidean Length)가 1이 되도록 하는 것이다. 인공지능 영역에서는 정규화 과정을 종종 모든 데이터가 0과 1 사이의 크기를 갖도록 재조정(rescaling)하는 것으로 사용된다.

"Standardizing" a vector most often means subtracting a measure of location and dividing by a measure of scale. For example, if the vector contains random values with a Gaussian distribution, you might subtract the mean and divide by the standard deviation, thereby obtaining a "standard normal" random variable with mean 0 and standard deviation 1. 

 - 표준화(Standardizing - 이거 뭐라읽어야 하나 스탠다디자이징??): 모든 벡터의 평균값을 빼고, 측정된 표준편차로 나누는 작업. 예를 들어 Gaussian 분포(distribution)을 갖는 랜덤 값을 갖는 벡터를 평균이 0이되고 표준 편차가 1이 되는 "standard normal" 랜덤 변수로 만다는 작업을 잃컫는다.

 그럼 뭘써야 하나 그때 그때 다르다. 어쨌든 써야지 만족할 만한 성능을 기대할 수 있다.

Multilayer Perceptron(흔히들 말하는 클래식 인공지능, 다층 fully-connected layer로 구성된 NN)의 경우 입력값이 0과 1 사이어야 한다. 하지만, 사실 어떠한 요구조건은 아니지만 데이터의 평균값이 0이면 좋다. 그래서 데이터가 0과 1사이의 값이 되게만 만드는 행위는 좋은 선택이 아니다.  

 그래서 학습과정 중 최적화 단계의 수치해석적 향상을 위해선 Stadardizing을 입력과 결과값 모두에 적용하는 것이 좋아 보인다. 

참고 자료:

http://www.faqs.org/faqs/ai-faq/neural-nets/part2/

 

댓글 없음:

댓글 쓰기