인프런 커뮤니티 질문&답변

jcy4023님의 프로필 이미지
jcy4023

작성한 질문수

딥러닝 CNN 완벽 가이드 - Fundamental 편

가중치 초기화(Weight Initialization) 질문입니다.

해결된 질문

작성

·

231

0

안녕하세요 교수님, CNN 강의와 같은 좋은 수업 감사드립니다.
다름이 아니라 가중치 초기화를 공부하다가 생긴 궁금증에 질문 글을 달아봅니다.

교수님께서 강의 하실 때 평균이 0, 표준 편차 1인 표준 정규 분포에서 Weight 초기화시 sigmoid 출력이 대부분 0과 1로 수렴하신다고 하셨는데
이렇게 되는 이유가 평균이 0, 표준 편차가 1인 표준 정규 분포에서 Weight를 초기화하면 처음에 Weight값이 너무 작거나 혹은 너무 큰 값들로 배정되기 때문에 저렇게 되는 걸까요?

즉, Weight값이 -1 ~ 1까지의 값들 중 임의로 배정되기 때문에 그런건가요?

반대로 Sigmoid 출력이 대부분 0.5로 수렴하는 경우에는 -0.01 ~ 0.01중 Weight 값이 결정되기 때문에 그런걸까요?

답변 1

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

먼저 가중치값이 대부분이 0에 가까운 경우(즉 평균이 0인데, 표준 편차가 0.01정도)에는 가중치값이 너무 작아서 sigmoid를 기반으로 한 activation layer가 아무리 많아도, 입력으로 들어오는 값이 커도 가중치 0값이 압도적으로 많기 때문에 sigmoid 출력값의 대부분이 0.5로 몰리게 됩니다.

그런데 가중치 값이 평균이 0, 표준 편차가 1 정도로만 되어도 입력값과 가중치가 행렬 연산을 해서 가중치 합으로 생성되는 값들이 - 또는 + 로 매우 큰 값들이 만들어지기 쉽습니다. 그러다 보니 sigmoid로 입력하면 출력값은 0 또는 1값이 많이 만들어지고, 또 sigmoid 출력값이 0 또는 1이 만들어지면 vanishing gradient 등으로 layer가 많아지더라도 가중치 update가 잘 되지 않아서 여전히 sigmoid 출력값은 0과 1이 많아지게 됩니다.

 

감사합니다.

jcy4023님의 프로필 이미지
jcy4023
질문자

감사합니다 !

jcy4023님의 프로필 이미지
jcy4023

작성한 질문수

질문하기