신경망에서 가중치를 초기화 할 때 잘린 정규 분포의 이점은 무엇입니까?


13

피드 포워드 신경망에서 연결 가중치를 초기화 할 때 학습 알고리즘이 중단되지 않는 대칭을 피하기 위해 무작위로 가중치를 초기화하는 것이 중요합니다.

다양한 장소에서 본 권장 사항 (예 : TensorFlow의 MNIST 자습서 )은 표준 편차 1 을 사용하여 잘린 정규 분포를 사용하는 것입니다 , 여기서N은 주어진 뉴런 레이어에 대한 입력 수입니다.1

표준 편차 공식을 사용하면 역 전파 그래디언트가 너무 빨리 용해되거나 증폭되지 않습니다. 그러나 정규 정규 분포와는 달리 잘린 정규 분포를 사용하는 이유를 모르겠습니다. 희귀 한 이상 값을 피하는 것입니까?


이 추천의 출처 및 / 또는 직접 인용을 제공 할 수 있습니까?
Tim

좋은 지적, 예에 대한 링크를 추가했습니다. 나는 또한 신경망 모범 사례에 관한 논문 에서이 권장 사항을 보았습니다 (그러나 찾을 수는 없음).
MiniQuark

답변:


13

뉴런의 포화에 대해 생각합니다. sigmoid와 같은 활성화 기능이 있다고 생각하십시오.

여기에 이미지 설명을 입력하십시오

체중 값이 2보다 크거나 2보다 작 으면 뉴런은 학습하지 않습니다. 따라서 정규 분포를 자르면 분산에 따라이 문제 (적어도 초기화에서)가 발생하지 않습니다. 그 이유는 일반적으로 잘린 법선을 사용하는 것이 좋습니다.


그렇습니다. 감사합니다. 나는 당신이 1이 아니라 "값> = 2"를 의미한다고 생각합니다.
MiniQuark

네 그것은 가치> = 2라고 가정합니다
Güngör Basa

4

잘린 정규 분포를 사용 하면 relu_logits 가 사용 되어 "데드 뉴런"이 생성되는 것을 막을 수 있습니다 .

대칭 파괴 및 0 기울기를 방지하기 위해 소량의 노이즈로 가중치를 초기화해야합니다. 우리는 ReLU 뉴런을 사용하고 있기 때문에 "죽은 뉴런"을 피하기 위해 약간 긍정적 인 초기 편향으로 그것들을 초기화하는 것이 좋습니다.


truncated_normal을 사용하여 죽은 뉴런을 어떻게 방지 할 수 있는지 잘 모르겠습니다. "약간 긍정적 인 초기 편향"을 추가하지 않습니다. 자세히 설명해 주시겠습니까?
MiniQuark

1
backpropagation은 전파에 0이 아닌 기여로 'live'뉴런 만 업데이트하기 때문에
Jason
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.