weights에 대한 초기값은 매우 중요하다.
딥러닝에서 각 Layer간에 weights 값이 어떠한지도 매우 중요하다.
Weight에 대한 값을 인풋으로 주었을 때 반대로 Weight가 원하는 방향으로 잘 적용되었는지 판단하기 위해
반대로 Layer 2-> Layer 1로 역계산하여 원래의 Layer 1에서 사용된 Weight 값을 추출한다.
즉, Layer 1 -> Layer 2에서 활용된 Weight에 대한 정확성을 보기 위해
Layer 2 -> Layer 1로 역계산하여 Layer 1의 Weight를 추출하는 것이다.
이러한 방식이라면 초기 Weight 값에 대한 선언을 Labels 만을 주어서
알아서 선언 할 수 있게 해줄 수도 있다.
그것이 바로 Find Tunning이라 부른다.
Labels를 입력 시키고 역으로 계산하여 최적의 Weight를 초기화 해준다는 것이다.
이러한 방식에는 크게 2가지가 있다.
Xavier initialization 방식
W=np.random.randn(fan_in,fan_out)/np.sqrt(fan_in)
He's initialization 방식
W=np.random.randn(fan_in,fan_out)/np.sqrt(fan_in/2)
그렇게 Weight에 대한 init method를 적용한 결과 다음과 같다.
'[프로그래밍] > 모두를 위한 딥러닝' 카테고리의 다른 글
[모두를위한딥러닝] 딥러닝 예측 값 높이기 (0) | 2019.08.21 |
---|---|
[모두를위한딥러닝] Dropout과 앙상블 (1) | 2019.08.21 |
[모두를위한딥러닝] ReLU? (0) | 2019.08.21 |
[모두를위한딥러닝] 텐서보드(TensorBoard)로 딥러닝 해보기 (0) | 2019.08.21 |
[모두를위한딥러닝] XOR 문제를 딥러닝으로 풀기 (0) | 2019.08.21 |