방법 : 심층 신경망 가중치 초기화


10

을 감안할 때 어려운 학습 과제 (예 : 높은 차원, 고유 데이터의 복잡성) 깊은 신경망은 기차 열심히된다. 많은 문제를 해결하기 위해 :

  1. 품질 데이터 표준화 및 핸드 픽
  2. 다른 학습 알고리즘을 선택하십시오 (예 : Gradient Descent 대신 RMSprop)
  3. 더 가파른 그래디언트 비용 함수 선택 (예 : MSE 대신 교차 엔트로피)
  4. 다른 네트워크 구조를 사용하십시오 (예 : Feedforward 대신 Convolution 레이어)

더 나은 무게를 초기화하는 영리한 방법이 있다고 들었습니다. 예를 들어 Glorot and Bengio (2010)

  • S 자형 단위의 경우 다음을 사용하여 Uniform (-r, r) 을 샘플링합니다.r=6Nin+Nout
  • 또는 쌍곡 탄젠트 단위 : 다음과 같이 Uniform (-r, r) 을 샘플링합니다.r=46Nin+Nout

가중치를 더 잘 초기화하는 일관된 방법이 있습니까?

답변:


7

내가 아는 한 두 가지 공식은 거의 표준 초기화입니다. 내가했던 문학 검토 관심이 있다면 전, 아래를 복사하는 동안을.


[1]은 다음과 같은 질문을 다룹니다.

먼저 백 프로그래밍 할 때 대칭을 끊기 위해 가중치를 0으로 설정하지 않아야합니다.

Biase는 일반적으로 0으로 초기화 될 수 있지만 가중치는 동일한 레이어의 숨겨진 단위 사이의 대칭을 깨뜨리기 위해 신중하게 초기화해야합니다. 다른 출력 장치가 다른 그래디언트 신호를 수신하기 때문에,이 대칭 파괴 문제는 (출력 장치에 대한) 출력 가중치와 관련이 없으므로 0으로 설정할 수도 있습니다.

몇 가지 초기화 전략 :

  • [2]와 [3]은 팬인의 제곱근의 역으로 ​​스케일링을 권장합니다
  • Glorot and Bengio (2010) 및 딥 러닝 자습서에서는 팬인과 팬 아웃의 조합을 사용합니다.
    • S 자형 단위의 경우 다음을 사용하여 Uniform (-r, r)을 샘플링합니다. r=6fan-in+fan-out (팬인은 장치의 입력 수입니다).
    • 쌍곡 탄젠트 단위의 경우 다음을 사용하여 Uniform (-r, r)을 샘플링합니다. r=46fan-in+fan-out (팬인은 장치의 입력 수입니다).
  • RBM의 경우 0.1 또는 0.01 정도의 작은 표준 편차를 가진 0 평균 가우시안이 가중치를 초기화하는 데 효과적입니다 (Hinton, 2010).
  • 직교 랜덤 매트릭스 초기화, 즉 초기화 매트릭스 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.


2
누락 된 것으로 보이는 것은 배치 정규화입니다. 여기에 설명되어 있습니다 : arxiv.org/abs/1502.03167 유용 할 수 있습니다.
Joonatan Samuel

: Kaiming 그는, 상서 장, Shaoqing 르네, 지앤 일이 Glorot 및 Bengio의 자비에 무게 초기화의 변화를 포함하는 새로운 글 게시 한 "정류기로 탐구 깊은을 : ImageNet 분류에 인간 수준의 성능을 능가하는" .
mjul
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.