답변:
MLP [다층 퍼셉트론]에서와 같이 입력 변수가 선형으로 결합 된 경우 최소한 이론적으로는 입력을 표준화 할 필요가 거의 없습니다. 그 이유는 해당 가중치와 바이어스를 변경하여 입력 벡터의 크기 조정을 효과적으로 취소 할 수 있기 때문에 이전과 동일한 출력을 유지할 수 있습니다. 그러나 입력을 표준화하면 훈련 속도가 빨라지고 지역 최적 상태에 빠질 가능성이 줄어드는 여러 가지 실용적인 이유가 있습니다. 또한 표준화 된 입력을 통해 가중치 감소 및 베이지안 추정을보다 편리하게 수행 할 수 있습니다.
신경망에서는 데이터를 정규화 할뿐만 아니라 데이터를 확장하는 것이 좋습니다. 이것은 오류 표면에서 전역 최소값에 더 빠르게 접근하기위한 것입니다. 다음 사진을보십시오 :
NN에 대한 일부 입력에는 '자연적으로 정의 된'범위의 값이 없을 수 있습니다. 예를 들어 평균 값은 느리지 만 시간이 지남에 따라 지속적으로 증가 할 수 있습니다 (예 : 데이터베이스의 여러 레코드).
이 경우이 원시 값을 네트워크에 공급하면 제대로 작동하지 않습니다. 실제 입력은이 범위의 더 높은 부분 (그리고 네트워크가 작업을 배운 범위보다 상당히 높은 범위)에서 네트워크에 대해 값을 알려줍니다.
이 값을 정규화해야합니다. 예를 들어 이전 입력 이후 값이 얼마나 변경되었는지 네트워크에 알릴 수 있습니다. 이 증분은 일반적으로 특정 범위에서 높은 확률로 정의 될 수 있으므로 네트워크에 대한 좋은 입력이됩니다.
신경망을 외부에서 보았을 때, 그것은 일부 인수를 취하고 결과를 생성하는 함수 일뿐입니다. 모든 기능과 마찬가지로 도메인 (법적 인수 집합)이 있습니다. 도메인에 있는지 확인하기 위해 신경망에 전달할 값을 정규화해야합니다. 모든 함수와 마찬가지로 인수가 도메인에 없으면 결과가 적절하지 않을 수 있습니다.
도메인 외부의 인수에 대한 신경망의 정확한 동작은 신경망의 구현에 달려 있습니다. 그러나 인수가 도메인 내에 없으면 결과는 쓸모가 없습니다.
입력 기능을 신경망에 공급하기 전에 입력 기능을 정규화해야하는 두 가지 이유가 있습니다.
이유 1 : 경우 Feature
에서이 Dataset
다른 사람에 비해 규모가 큰 다음이 큰 스케일 기능하게 잡으며 그 결과, 신경망의 예측이 정확하지 않을 것입니다.
예 : 직원 데이터의 경우 나이와 급여를 고려하면 나이는 2 자리 숫자가되고 급여는 7 또는 8 자리 (1 백만 등)가 될 수 있습니다. 이 경우 급여는 신경망의 예측을 지배합니다. 그러나 이러한 기능을 정규화하면 두 기능의 값이 (0-1) 범위에있게됩니다.
이유 2 : 신경망의 전면 전파에는 입력 기능이있는 가중치의 내적이 포함됩니다. 따라서 값이 매우 높으면 (이미지 및 비 이미지 데이터의 경우) 출력 계산에 메모리뿐만 아니라 계산 시간이 많이 걸립니다. 역 전파의 경우도 마찬가지입니다. 따라서 입력이 정규화되지 않은 경우 모델이 느리게 수렴됩니다.
예 : 이미지 분류를 수행하면 각 픽셀의 값이 0에서 255까지이므로 이미지 크기가 매우 커집니다.이 경우 정규화가 매우 중요합니다.
정규화가 매우 중요한 경우는 다음과 같습니다.
대답은 시나리오에 달려 있다고 생각합니다.
F (입력) = 출력이 되도록 NN (신경망)을 연산자 F로 간주하십시오 . 이 관계가 선형이므로 F (A * input) = A * output 인 경우 입력 / 출력을 원래 형식으로 비정규 화하거나 A를 제거하기 위해 정규화하도록 선택할 수 있습니다. 분명히이 선형성 가정은 다음과 같습니다. 분류 작업 또는 확률을 출력하는 거의 모든 작업 (F (A * input) = 1 * output)을 위반 한 경우
실제로 정규화를 통해 적합하지 않은 네트워크를 적합하게 만들 수 있으며 이는 실험자 / 프로그래머에게 중요합니다. 그럼에도 불구하고 정규화의 정확한 영향은 네트워크 아키텍처 / 알고리즘뿐만 아니라 입력 및 출력에 대한 사전 통계에 따라 달라집니다.
또한 NN은 블랙 박스 방식으로 매우 어려운 문제를 해결하기 위해 구현되는 경우가 많습니다. 즉, 근본적인 문제는 통계적 구성이 매우 열악하여 정규화의 영향을 평가하기 어렵고 기술적 이점 (적합성이 됨)을 초래할 수 있음을 의미합니다. 통계에 미치는 영향을 지배합니다.
통계적 의미에서 정규화는 출력 예측에서 비인 과적이라고 생각되는 변동을 제거하여 NN이이 변동을 예측 변수로 학습하지 못하도록합니다 ( NN은이 변동을 볼 수 없으므로이를 사용할 수 없습니다 ).
정규화되지 않은 입력 기능을 사용하면 손실 기능이 매우 길어질 수 있습니다. 그래디언트 디센트로 최적화 할 때 일부 파라미터에 대해 그래디언트가 가파르 기 때문에 문제가됩니다. 가파른 경사 사이에서 튀어 오르면서 검색 공간에서 큰 진동이 발생합니다. 보상하기 위해서는 적은 학습 속도로 최적화를 안정화해야합니다.
기능 x1 및 x2를 고려하십시오 (여기서 각각 0-1 및 0-1 백만). 해당 매개 변수 (예 : w1 및 w2)의 비율도 커집니다.
정규화는 손실 기능을보다 대칭 / 구형으로 만드는 경향이 있습니다. 그래디언트가 전체 최소값을 가리키고 더 큰 단계를 수행 할 수 있으므로 최적화하기가 더 쉽습니다.
정규화가 필요한 이유는 함수 영역에서 적응 단계가 한 곳에서 진행되는 방식을 살펴보고 문제를 특정 방향으로 큰 값으로 변환 된 동일한 단계와 동등한 단계로 간단히 전달하기 때문입니다. 도메인, 다른 결과를 얻을 수 있습니다. 그것은 선형 부분을 데이터 포인트에 적응시키는 문제로 귀결됩니다. 회전하지 않고 조각을 얼마나 움직여야합니까? 그리고 한 훈련 지점에 따라 얼마나 회전해야합니까? 도메인의 다른 부분에서 변경된 적응 절차를 갖는 것은 의미가 없습니다! 따라서 훈련 결과의 차이를 줄이려면 정규화가 필요합니다. 나는 이것을 작성하지는 않았지만 간단한 선형 함수에 대한 수학과 두 개의 다른 위치에서 하나의 훈련 지점에 의해 훈련되는 방법을 볼 수 있습니다. 일부 지역에서는이 문제가 해결되었을 수도 있지만 익숙하지 않습니다. ALN에서는 문제가 해결되었으며 wwarmstrong AT shaw.ca에 편지를 쓰면 종이를 보내드릴 수 있습니다.
숨겨진 계층은 데이터의 복잡성에 따라 사용됩니다. 선형으로 분리 가능한 입력 데이터가있는 경우 숨겨진 게이트 (예 : OR 게이트)를 사용할 필요는 없지만 선형으로 분리 할 수없는 데이터가있는 경우 숨겨진 레이어 (예 : ExOR 논리 게이트)를 사용해야합니다. 모든 계층에서 취한 노드 수는 출력의 교차 검증 정도에 따라 다릅니다.