Weight Initialization

Xpert·2024년 3월 5일
0

머신러닝

목록 보기
7/11
post-thumbnail

Zero 초기화

가중치를 따로 설정하지 않고 전부 0인 상태에서 시작하면 전체 뉴런들이 대칭성을 가지게 되어 variance가 약해지게 된다. 또한 gradient vanishing 현상이 심화될 수 있다

랜덤 초기화

랜덤하게 가중치를 초기화하므로 위에서 언급한 대칭성이나 기울기 소실 문제는 피할 수 있다.
그리고 일반적으로 잘 동작한다
weight 값을 가우시안 분포에 따라 표준 편차를 1이나 0.01 정도로 설정하여 생성할 수 있다.
다만 이 경우 gradient descent 현상이 발생할 수 있다.

Xavier 초기화


고정된 표준편차를 사용하지 않고, 이전 은닉층의 노드 수에 맞추어 변화시킨다.
이전 은닉층의 노드의 개수가 n개이고 현재 은닉층의 노드가 m개일 때, 2/√(n+m) 을 표준편차로 하는 정규분포로 가중치를 초기화 한다.

He 초기화

이 경우에는 표준편차를 2/√n 로 하여 초기화 한다.

layer 층이 깊어져도 다소 안정적으로 기울기가 유지된다.

실제 사용

코드 예시

# TensorFlow
tf.keras.initializers.HeNormal()

# PyTorch
torch.nn.init.kaiming_normal_()

선택

일반적으로 활성화 함수가 sigmoid일 때는 Xavier 초기화
ReLU 류일 때는 He 초기화를 사용

profile
Python, CV, ML, Backend

0개의 댓글

관련 채용 정보