신경망의 가중치가 임의의 숫자로 초기화되는 이유는 무엇입니까?


9

신경망 초기 가중치가 난수로 초기화되는 이유는 무엇입니까? 나는 이것이 "대칭을 깨뜨리기"위해 수행되는 곳을 읽었고 이것은 신경망을 더 빨리 배우게한다. 대칭을 깨 뜨리면 어떻게 더 빨리 배울 수 있습니까?

가중치를 0으로 초기화하지 않는 것이 더 좋을까요? 그렇게하면 가중치가 (긍정적이든 부정적이든) 값을 더 빨리 찾을 수 있습니까?

초기화시 가중치가 최적의 값에 가까워지기를 바라는 것 외에 가중치를 무작위로 배정하는 다른 기본 철학이 있습니까?

답변:


6

가중치 레이어를 작은 (및 다른) 값으로 초기화하는 기본 직관은 시스템의 바이어스가 깨지고 가중치가 다른 값으로 이동하거나 다른 값으로 이동할 수 있도록하는 것입니다.

더 구체적으로, 당신은 아마도 초기 가중치를 구별하고 그들 사이에 "작은 간격"을 갖기를 원할 것입니다.이 '갭'은 갈수록 확장되고 모든 반복에서 가중치가 조금 더 커지게합니다. 네트워크가 더 빨리 수렴합니다. 즉 학습 프로세스 속도가 빨라집니다.

대신 모든 가중치를 일정하게 유지하려는 경우 각 가중치는 매우 느리게 (~ 고정) 비율로 업데이트되며 초기 값이 최종 값에서 '매우'멀리 떨어져있는 경우 특히 도움이되지 않습니다.

희망은 도움이 재미 학습 :)


그래서 당신이 말하는 것은 초기 무게를 무작위로 만드는 것은 각 무게에 움직일 필요가있는 방향 (및 확장 간격)에 약간의 덩어리를주는 것과 같습니다.
Shayan RC

나는 그것이 올바른 방향에있을 필요가 없다고 생각합니다. 초기 값이 [+0.5, -0.5] 일 수있는 초기 가중치 [-0.5, +0.5]로 시작할 수 있습니다. 핵심 아이디어는 다른 값 ..
Subhayan

NN과 함께 일한 지 1 년이 지났으므로 손을 흔드는 방식으로 이야기하고 있습니다. 수학 뒤에서 수학을 원하면 알려주십시오. 그러나 나는 여기서 직관을 얻는 것이 더 중요하다고 생각합니다. 수학은 어느 곳에서나 가능합니다. : :)
Subhayan

그것의 배후에있는 수학은 도움이되지만 훨씬 더 유용한 조언이 될 것입니다 : 초기 가중치가 얼마나 작아야 하는가 (10 ^?) 서로 다른 종류의 네트워크에 따라 어떻게 다른가? 모두에게 맞는 마법의 숫자가 있습니까?
Shayan RC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.