답변:
나는 당신이 로지스틱 뉴런을 사용하고 있으며, 당신은 기울기 하강 / 역 전파에 의해 훈련한다고 가정합니다.
로지스틱 기능은 큰 포지티브 또는 네거티브 입력의 경우 거의 평평합니다. 의 입력에서 도함수 는 약 이지만, 에서 도함수는 약 입니다. 이는 로지스틱 뉴런의 입력이 경우 주어진 훈련 신호에 대해 입력이 경우 에 비해 뉴런이 약 배 느리게 학습 됨을 의미합니다 .1 / 10 (10) 1 / 22000 10 2200 2
뉴런이 빠르게 학습하기를 원할 경우 (예를 들어, 교차 엔트로피 손실 함수와 같은) 큰 훈련 신호를 생성하거나 미분이 커지기를 원합니다. 도함수를 크게하려면 초기 가중치를 설정하여 범위의 입력을 자주 얻습니다 .
당신이주는 초기 무게는 작동하거나 작동하지 않을 수 있습니다. 입력이 정규화되는 방법에 따라 다릅니다. 입력 정규화 경우 평균 갖도록 과 표준 편차 의 후 임의의 액수 에 가중치 유니폼 조건 은 와 독립적으로 평균 과 분산 을 갖습니다 . 이외의 합계를 얻을 확률 은 작습니다. 즉 , 를 증가 시키면 뉴런이 포화 상태가되어 학습하지 못하게됩니다.1 일 ( − 101 차원[-4,4](D)
정규화되지 않은 입력의 경우 이러한 가중치는 채도를 피하는 데 효과적이지 않을 수 있습니다.
[1]은 다음과 같은 질문을 다룹니다.
먼저 백 프로그래밍 할 때 대칭을 끊기 위해 가중치를 0으로 설정하지 않아야합니다.
Biase는 일반적으로 0으로 초기화 될 수 있지만 가중치는 동일한 레이어의 숨겨진 단위 사이의 대칭을 깨뜨리기 위해 신중하게 초기화해야합니다. 다른 출력 장치가 다른 그래디언트 신호를 수신하기 때문에,이 대칭 파괴 문제는 (출력 장치에 대한) 출력 가중치와 관련이 없으므로 0으로 설정할 수도 있습니다.
몇 가지 초기화 전략 :
W = np.random.randn(ndim, ndim); u, s, v = np.linalg.svd(W)
로 사용 u
합니다.또한 감독되지 않은 사전 교육은 일부 상황에서 도움이 될 수 있습니다.
중요한 선택은 매개 변수를 초기화하기 위해 비 감독 사전 훈련 (및 비 감독 기능 학습 알고리즘)을 사용해야하는지 여부입니다. 대부분의 환경에서 우리는 감독되지 않은 사전 훈련을 돕고 아프게하는 경우는 거의 없지만, 추가 훈련 시간과 추가 하이퍼 파라미터를 의미합니다.
일부 ANN 라이브러리에는 Lasagne 와 같은 흥미로운 목록이 있습니다 .
Constant([val]) Initialize weights with constant value.
Normal([std, mean]) Sample initial weights from the Gaussian distribution.
Uniform([range, std, mean]) Sample initial weights from the uniform distribution.
Glorot(initializer[, gain, c01b]) Glorot weight initialization.
GlorotNormal([gain, c01b]) Glorot with weights sampled from the Normal distribution.
GlorotUniform([gain, c01b]) Glorot with weights sampled from the Uniform distribution.
He(initializer[, gain, c01b]) He weight initialization.
HeNormal([gain, c01b]) He initializer with weights sampled from the Normal distribution.
HeUniform([gain, c01b]) He initializer with weights sampled from the Uniform distribution.
Orthogonal([gain]) Intialize weights as Orthogonal matrix.
Sparse([sparsity, std]) Initialize weights as sparse matrix.
[1] 요슈아 벤 지오. " 심층 아키텍처의 그라디언트 기반 교육에 대한 실제 권장 사항. "신경망 : 무역의 비법. Springer Berlin Heidelberg, 2012. 437-478.
[2] LeCun, Y., Bottou, L., Orr, GB 및 Muller, K. (1998a). 효율적인 백프로 프. 신경망에서 무역의 비법 .
[3] Glorot, Xavier 및 Yoshua Bengio. " 심층 피드 포워드 신경망 훈련의 어려움 이해하기 ." 인공 지능 및 통계에 관한 국제 회의. 2010.
그럼 그냥 업데이트로 정류기에 깊은 탐구 : 그는 등에 의해 인간 수준의 성능 N ImageNet 분류를 능가 초기화 구체적으로 초기화를 도입 하여 NN의 입력의 수입니다. 나는이 초기화가 많은 최근 작품 (ReLU와 함께)에서 사용되는 것을 보았습니다. 실제로는 이것이 언급 한 (-1 / n, 1 / n)보다 훨씬 빠르게 오류율을 줄이기 시작하는 방법을 보여줍니다. 자세한 설명은 논문을 참조하십시오. 그러나 수렴 속도는 다음과 같습니다.
w = U([0,n]) * sqrt(2.0/n)
n
이는 순방향 및 역방향 데이터가 네트워크를 통해 잘 전달 될 수 있도록 가중치를 초기화하려는 것입니다. 즉, 네트워크를 진행할 때 활성화가 지속적으로 줄어들거나 커지는 것을 원하지 않습니다.
이 이미지는 네트워크를 통해 MNIST를 한 번 통과 한 후 3 가지 다른 초기화 전략에서 5 레이어 ReLU 다중 계층 Perceptron의 활성화를 보여줍니다.
세 경우 모두 가중치는 표준 편차에 의해 결정되는 중심이 0 인 정규 분포에서 도출됩니다. 초기 가중치가 너무 작 으면 (표준 편차가 작음) 활성화가 질식되고, 너무 크면 활성화가 폭발 함을 알 수 있습니다. 중간 값, 즉 대략적인 값은 가중치를 설정하여 활성화 및 그라디언트 업데이트의 분산이 네트워크를 통과 할 때와 거의 동일하게 유지되도록 찾을 수 있습니다.
더 자세한 가중치 초기화에 대한 블로그 게시물을 작성 했지만 기본 아이디어는 다음과 같습니다.
우리가 을 표시하면
훈련 중. 따라서 배치 정규화는 학습을 안정화시킵니다.
결과적으로 Batch Normalization은 훨씬 높은 학습 속도를 사용하여 더 빠른 교육 을 가능하게 하며 잘못된 초기화 문제를 완화합니다. BN은 또한 네트워크가 포화 모드에 걸리지 않도록하여 포화 비선형 성을 사용할 수있게합니다. 요약하면 배치 정규화는 정규화 된 활성화를 네트워크에 도입하는 차별화 가능한 변환입니다. 실제로, BN 층은 완전히 연결된 층 직후에 삽입 될 수있다.