인공 신경망에 대한 입력을 정규화해야하는 이유는 무엇입니까?


151

신경망 이론에 관한 주요 질문입니다.

신경망의 입력을 정규화해야하는 이유는 무엇입니까?

때로는 입력 값이 숫자가 아닌 경우 특정 변환을 수행해야하지만 숫자 입력이있는 경우가 있음을 이해합니다. 숫자가 일정한 간격을 유지해야하는 이유는 무엇입니까?

데이터가 정규화되지 않으면 어떻게됩니까?


1
이 질문은 Stats SE 또는 AI SE에 속하기 때문에 주제를 벗어난 주제로 닫으려고합니다.
nbro

답변:


101

여기에 잘 설명되어 있습니다 .

MLP [다층 퍼셉트론]에서와 같이 입력 변수가 선형으로 결합 된 경우 최소한 이론적으로는 입력을 표준화 할 필요가 거의 없습니다. 그 이유는 해당 가중치와 바이어스를 변경하여 입력 벡터의 크기 조정을 효과적으로 취소 할 수 있기 때문에 이전과 동일한 출력을 유지할 수 있습니다. 그러나 입력을 표준화하면 훈련 속도가 빨라지고 지역 최적 상태에 빠질 가능성이 줄어드는 여러 가지 실용적인 이유가 있습니다. 또한 표준화 된 입력을 통해 가중치 감소 및 베이지안 추정을보다 편리하게 수행 할 수 있습니다.


2
안녕하세요, MLP에서 일정한 학습 속도를 사용하는 동안 기능을 표준화 할 수 없어서 다른 차원에 대한 역 전파 보정에서 초과 / 미달 보상이 발생할 수 있습니까? 이 게시물이 CNN
Austin

문제 : 그라데이션 하강 선택. 프로세스 시간이 더 오래 걸릴 수 있습니다. 왜? 피처의 배율이 다르면 (x1 = 0-1 및 x2 = 0..1000) 오류 기능 표면이 길어질 수 있습니다. 의미 : 다른 디밍 (w1, w2)에 따라 다른 스케일. 그러나 학습 속도는 모든 희미 함 에서 동일 합니다.> 긴 희미한 단계 (w2)는 지역 최소값에 도달 할 때까지 매우 작습니다. 문제 : 다른 희미한 (w1)의 로컬 최소값을 건너 뛰므로 LR을 기울일 수 없습니다. youtube.com/watch?reload=9&v=UIp2CMI0748
Dekel

다음은 스케일링없이 상황이 매우 나쁜 선형 예입니다 : stackoverflow.com/q/59319643 . 왜 그런지 알아?
AlwaysLearning

62

신경망에서는 데이터를 정규화 할뿐만 아니라 데이터를 확장하는 것이 좋습니다. 이것은 오류 표면에서 전역 최소값에 더 빠르게 접근하기위한 것입니다. 다음 사진을보십시오 : 정규화 전후의 오류 표면

스케일링 전후의 에러 표면

신경망에 관한 코스 과정 에서 사진을 찍습니다 . 코스의 저자 는 Geoffrey Hinton입니다.


14
게시 한 그래픽의 저자를 인정하는 것이 좋을 것입니다. 그래픽은 Geoffrey Hinton의 코스 과정 에서 명확하게 가져 왔습니다 .
Ricardo Cruz

5
이 비디오 가 위의 다이어그램을 설명하는 데 실제로 도움 된다는 것을 알았 습니다.
chris838

21

NN에 대한 일부 입력에는 '자연적으로 정의 된'범위의 값이 없을 수 있습니다. 예를 들어 평균 값은 느리지 만 시간이 지남에 따라 지속적으로 증가 할 수 있습니다 (예 : 데이터베이스의 여러 레코드).

이 경우이 원시 값을 네트워크에 공급하면 제대로 작동하지 않습니다. 실제 입력은이 범위의 더 높은 부분 (그리고 네트워크가 작업을 배운 범위보다 상당히 높은 범위)에서 네트워크에 대해 값을 알려줍니다.

이 값을 정규화해야합니다. 예를 들어 이전 입력 이후 값이 얼마나 변경되었는지 네트워크에 알릴 수 있습니다. 이 증분은 일반적으로 특정 범위에서 높은 확률로 정의 될 수 있으므로 네트워크에 대한 좋은 입력이됩니다.


이전 입력 세트에서 정규화에 대한 좋은 힌트. 이를 통해 사용자는 임의의 정규화 요소를 정의하지 않아도됩니다. 그러나 정규화 계수가 각 입력 벡터에 적용된 전역 상수이면 네트가 더 정확하게 훈련 될 것으로 생각합니다.
davide

11

신경망을 외부에서 보았을 때, 그것은 일부 인수를 취하고 결과를 생성하는 함수 일뿐입니다. 모든 기능과 마찬가지로 도메인 (법적 인수 집합)이 있습니다. 도메인에 있는지 확인하기 위해 신경망에 전달할 값을 정규화해야합니다. 모든 함수와 마찬가지로 인수가 도메인에 없으면 결과가 적절하지 않을 수 있습니다.

도메인 외부의 인수에 대한 신경망의 정확한 동작은 신경망의 구현에 달려 있습니다. 그러나 인수가 도메인 내에 없으면 결과는 쓸모가 없습니다.


16
일반적인 활성화 기능 (ReLu 또는 Sigmoid)을 사용하면 도메인은 항상 전체 공간 R ^ n입니다. 따라서 이것이 데이터를 정규화하는 이유가 될 수 없습니다.
Joker123

1
이미지가 정상화 왜 그들은 이미 도메인 255이 있기 때문에 이것은 또한, 설명하지 않습니다
DollarAkshay

4

입력 기능을 신경망에 공급하기 전에 입력 기능을 정규화해야하는 두 가지 이유가 있습니다.

이유 1 : 경우 Feature에서이 Dataset다른 사람에 비해 규모가 큰 다음이 큰 스케일 기능하게 잡으며 그 결과, 신경망의 예측이 정확하지 않을 것입니다.

: 직원 데이터의 경우 나이와 급여를 고려하면 나이는 2 자리 숫자가되고 급여는 7 또는 8 자리 (1 백만 등)가 될 수 있습니다. 이 경우 급여는 신경망의 예측을 지배합니다. 그러나 이러한 기능을 정규화하면 두 기능의 값이 (0-1) 범위에있게됩니다.

이유 2 : 신경망의 전면 전파에는 입력 기능이있는 가중치의 내적이 포함됩니다. 따라서 값이 매우 높으면 (이미지 및 비 이미지 데이터의 경우) 출력 계산에 메모리뿐만 아니라 계산 시간이 많이 걸립니다. 역 전파의 경우도 마찬가지입니다. 따라서 입력이 정규화되지 않은 경우 모델이 느리게 수렴됩니다.

: 이미지 분류를 수행하면 각 픽셀의 값이 0에서 255까지이므로 이미지 크기가 매우 커집니다.이 경우 정규화가 매우 중요합니다.

정규화가 매우 중요한 경우는 다음과 같습니다.

  1. K- 평균
  2. K- 가까운 이웃
  3. 주요 성분 분석 (PCA)
  4. 그라데이션 하강

2

대답은 시나리오에 달려 있다고 생각합니다.

F (입력) = 출력이 되도록 NN (신경망)을 연산자 F로 간주하십시오 . 이 관계가 선형이므로 F (A * input) = A * output 인 경우 입력 / 출력을 원래 형식으로 비정규 화하거나 A를 제거하기 위해 정규화하도록 선택할 수 있습니다. 분명히이 선형성 가정은 다음과 같습니다. 분류 작업 또는 확률을 출력하는 거의 모든 작업 (F (A * input) = 1 * output)을 위반 한 경우

실제로 정규화를 통해 적합하지 않은 네트워크를 적합하게 만들 수 있으며 이는 실험자 / 프로그래머에게 중요합니다. 그럼에도 불구하고 정규화의 정확한 영향은 네트워크 아키텍처 / 알고리즘뿐만 아니라 입력 및 출력에 대한 사전 통계에 따라 달라집니다.

또한 NN은 블랙 박스 방식으로 매우 어려운 문제를 해결하기 위해 구현되는 경우가 많습니다. 즉, 근본적인 문제는 통계적 구성이 매우 열악하여 정규화의 영향을 평가하기 어렵고 기술적 이점 (적합성이 됨)을 초래할 수 있음을 의미합니다. 통계에 미치는 영향을 지배합니다.

통계적 의미에서 정규화는 출력 예측에서 비인 과적이라고 생각되는 변동을 제거하여 NN이이 변동을 예측 변수로 학습하지 못하도록합니다 ( NN은이 변동을 볼 수 없으므로이를 사용할 수 없습니다 ).


2

정규화되지 않은 입력 기능을 사용하면 손실 기능이 매우 길어질 수 있습니다. 그래디언트 디센트로 최적화 할 때 일부 파라미터에 대해 그래디언트가 가파르 기 때문에 문제가됩니다. 가파른 경사 사이에서 튀어 오르면서 검색 공간에서 큰 진동이 발생합니다. 보상하기 위해서는 적은 학습 속도로 최적화를 안정화해야합니다.

기능 x1 및 x2를 고려하십시오 (여기서 각각 0-1 및 0-1 백만). 해당 매개 변수 (예 : w1 및 w2)의 비율도 커집니다.

정규화는 손실 기능을보다 대칭 / 구형으로 만드는 경향이 있습니다. 그래디언트가 전체 최소값을 가리키고 더 큰 단계를 수행 할 수 있으므로 최적화하기가 더 쉽습니다.


1

정규화가 필요한 이유는 함수 영역에서 적응 단계가 한 곳에서 진행되는 방식을 살펴보고 문제를 특정 방향으로 큰 값으로 변환 된 동일한 단계와 동등한 단계로 간단히 전달하기 때문입니다. 도메인, 다른 결과를 얻을 수 있습니다. 그것은 선형 부분을 데이터 포인트에 적응시키는 문제로 귀결됩니다. 회전하지 않고 조각을 얼마나 움직여야합니까? 그리고 한 훈련 지점에 따라 얼마나 회전해야합니까? 도메인의 다른 부분에서 변경된 적응 절차를 갖는 것은 의미가 없습니다! 따라서 훈련 결과의 차이를 줄이려면 정규화가 필요합니다. 나는 이것을 작성하지는 않았지만 간단한 선형 함수에 대한 수학과 두 개의 다른 위치에서 하나의 훈련 지점에 의해 훈련되는 방법을 볼 수 있습니다. 일부 지역에서는이 문제가 해결되었을 수도 있지만 익숙하지 않습니다. ALN에서는 문제가 해결되었으며 wwarmstrong AT shaw.ca에 편지를 쓰면 종이를 보내드릴 수 있습니다.


-9

숨겨진 계층은 데이터의 복잡성에 따라 사용됩니다. 선형으로 분리 가능한 입력 데이터가있는 경우 숨겨진 게이트 (예 : OR 게이트)를 사용할 필요는 없지만 선형으로 분리 할 수없는 데이터가있는 경우 숨겨진 레이어 (예 : ExOR 논리 게이트)를 사용해야합니다. 모든 계층에서 취한 노드 수는 출력의 교차 검증 정도에 따라 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.