-
Weight, Bias 초기화학교 수업/3-1 머신러닝, 추천시스템 2022. 5. 3. 01:48반응형
Weight
1) Weight를 특정값으로 초기화하는 torch.nn.init.constants (가장 성능이 좋지 않다.)
2) Weight를 표준정규분포로 초기화하는 torch.nn.init.normal (1보다는 성능이 괜찮다.)
3) Weight를 (0, 1/sqrt(은닉층 노드 수))인 정규분포로 초기화하는 xavier 초기화 (CIFAR10 데이터로 비교시 표준정규분포보다 성능이 2배 더 좋다)
4) Weight를 (0, sqrt(2/(은닉층 노드수))인 정규분포로 초기화하는 he 초기화 (CIFAR10 데이터로 비교시 표준정규분포보다 성능이 2배 더 좋다)
xavier의 경우엔 활성화 함수가 sigmoid일 때 성능이 좋고, he 초기화는 활성화 함수가 ReLU일 때 성능이 좋다.
ReLU를 사용하는데 xavier 초기화를 사용할 때, nn.init.xavier_nomal_(m.weight.data, gain=nn.init.calculate_gain('relu'))처럼 gain 값을 조정하면 성능이 살짝 좋아진다고 한다.
Bias
분류 문제에 쓰이는 대중적인 데이터는 보통 bias 값을 0으로 초기화하면 된다고 한다.
반응형'학교 수업 > 3-1 머신러닝, 추천시스템' 카테고리의 다른 글
multiprocessing Error 체크리스트 (0) 2022.05.19 [python multiprocessing] 병렬로 데이터 처리하기 (0) 2022.05.06 [GNN] Neural Graph Collaborative Filtering (NGCF) 코드 정리 (0) 2022.05.02 'float' object has no attribute 'grad' 에러 해결법 (0) 2022.04.18