CNN xavier 가중치 초기화


14

일부 자습서에서는 "Xavier"가중치 초기화 (서류 : 딥 피드 포워드 신경망 훈련의 어려움 이해 )가 신경망의 가중치를 초기화하는 효율적인 방법 이라는 것을 알았습니다 .

완전히 연결된 레이어의 경우이 튜토리얼에서 경험할 규칙이 있습니다.

V아르 자형()=2나는+영형,더 간단한 대안 :V아르 자형()=1나는

여기서 정규 분포로 초기화 된 층에 대한 무게의 편차이고 N I , N , N O를 U t는 부모와 현재 레이어 뉴런의 양이다.V아르 자형()나는영형

컨볼 루션 레이어에 대한 유사한 경험 법칙이 있습니까?

컨볼 루션 레이어의 가중치를 초기화하는 것이 가장 좋은 방법을 알아 내려고 고심하고 있습니다. 예를 들어 가중치의 모양이있는 레이어에서 (5, 5, 3, 8)커널 크기는 5x53 개의 입력 채널 (RGB 입력)을 필터링하고 8기능 맵을 생성 합니다 ... 3입력 뉴런의 양 으로 간주됩니까? 또는 75 = 5*5*3입력이 5x5각 색상 채널에 대한 패치 이기 때문에 ?

나는 문제를 설명하는 구체적인 답변 또는 가중치의 올바른 초기화를 찾고 일반적으로 링크 소스를 찾는 일반적인 프로세스를 설명하는 좀 더 "일반적인"답변을 받아 들일 것입니다.

답변:


13

이 경우 뉴런의 양은이어야합니다 5*5*3.

컨볼 루션 레이어에 특히 유용하다는 것을 알았습니다. 종종 간격에 걸쳐 균일 한 분포 [/(나는+영형),/(나는+영형)] 뿐만 아니라 작동한다.

거의 모든 신경망 라이브러리에서 옵션으로 구현됩니다. 여기서 Keras의 Xavier Glorot 초기화 구현 소스 코드를 찾을 수 있습니다.


1
흠 .. 추가 조언이 있습니까? 예를 들어 내 네트워크 중 하나에는 480.000 개의 뉴런으로 완전히 연결된 계층이 있습니다. 나는 약의 분산으로 끝낼 초기화 자비를 적용하면 내 네트워크 좀 이상한 간섭 패턴을 배운다. 나는 그것이 최소한의 지역 최소에 해당한다고 생각합니다. 나는 그때 무게가 정말로 작다 는 것을 의미합니다 . 나는 주로 간격 [ 0.1 , 0.01 ] 에서 무언가를 가진 합리적인 학습을 경험 합니다. 그것에 대한 아이디어가 있습니까? Xavier 초기화가 실제로 큰 레이어에는 적용되지 않는다고 생각합니까? 1106[0.1,0.01]
daniel451

@ ascenator 죄송합니다 훈련 중에 무게가 어떻게 변하는 지에 대해 잘 모르겠습니다. 때로는 너무 크거나 작은 학습 속도에서 이상한 결과가 나올 수 있습니다.
dontloo

10610

0

에릭의 대답은 두 번째입니다. 또한 해당 용어뿐만 아니라 용어의 "sqrt"도 사용합니다. 그럼에도 불구하고, 그물의 심벌을 "RelU"출력에 연결하면 훈련이 중단 될 수 있습니다. 이는 제한없는 "Relu"출력으로 인해 시그 모이 드의 기울기가 0으로 떨어지고 학습이 수행되지 않을 수 있습니다. 따라서,이 경우, 넷에 대한 "scaleDown"팩터가 있는데, 이는 해당 팩터에 의해 초기화 편차를 줄입니다. 나는 학습이 일어날 때까지 계속해서 가중치를 조정합니다. 찾아내는 간단한 방법은 1 회 반복 직후 모델을 저장하고 RELU 출력을 확인하는 것입니다 (시그 모이 드에 연결됨). 이 RELU 출력이 적당 할 때까지 가중치를 계속 조정하십시오. 그런 다음 그 무게를 훈련에 사용하십시오. 좋은 시작입니다. 몇 번 반복 한 후에도 여전히 축소되면 안정성에 도달 할 때까지 무게를 조금 더 내립니다. 그것은 내가 사용한 해킹 일뿐입니다. 그것은 나의 셋업을 위해 나를 위해 일했다. 내 경험을 공유합니다. 다른 설정에 따라 다른 기능이 작동합니다.

그래서 ... 행운을 빕니다!

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