대칭적 가중치 문제
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F1b864345-1d97-430a-8a15-371ad4501280%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-06%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.06.56.png)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F0006f837-7fa0-4d88-8cb1-3a753dd14d52%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-06%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.07.52.png)
- 왼쪽 연산과정에서 두개의 가중치가 같음
- 경사도가 같기 때문에 같은 값으로 갱신됨
- 두 노드가 같은 일을 함
- 난수로 가중치를 초기화해 중복노드를 야기하는 대칭을 파괴(오른쪽 그림)
난수로 가중치 초기화
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F36392918-f877-4052-a5b4-28c065bae650%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-06%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.19.54.png)
![](https://velog.velcdn.com/images%2Fpeterpictor%2Fpost%2F6b7270fa-83e6-49e6-8422-b9a44152b815%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-07-06%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2011.20.35.png)
-
가우시안, 균일분포에서 난수 추출, 두 분포의 성능 차이는 거의 없음
-
AlexNet: 평균 0, 표준편차 0.01인 가우시안에서 난수 생성
-
ResNet: 평균 0, 표준편차
인 가우시안에서 난수 생성, 편향 0 설정
-
요즘엔 많이 사용하지 않음
다른 방법들
- [Saxe2014]: 가중치 행렬의 행 혹은 열이 수직이 되도록 설정
-분포로 난수만들고 가중치 설정, 가중치 행렬을 특이(SVD)분해로 분해한 후 가중치 재조정
W = np.random.randn(ndim, ndim)
u, s, v = np.linalg.svd(W) <- u 수직 초기화 가중치 행렬
- [Sussilo2014]: 임의 행로 활용하여 설정
- [Sutskever2013]: 가중치 초기화와 가속도를 동시에 최적화
- [Mishkin2016]: 가중치 분포가 아니라 노드의 출력 값 분포가 일정하도록 강제화
- 1단계: 수직 규칙을 적용하여 갖우치를 초기화
- 2단계: 하나의 미니배치를 가지고 전방 계산을 수행하면서 가중치 조정. 이 때, 각 츠엥 대해 노드 출력값의 분산이 1이 될 때까지 가중치 조정함