< 오차 역전파 (back propagation) >
▷ 미분을 사용해서 weight와 bias값을 전부 바꾸기에는 시간이 너무 오래걸린다.
▷ "paul"이라는 사람이 chain rule을 이용해서 미분을 행렬연산으로 대체하여 해결하는 방법을 찾음
▷ 오차값을 이용하여 W를 역방향으로 행렬연산하여 갱신가능
< Vanishing Gradient >
▷ Sigmoid 함수를 사용하므로 값이 0~1 사이로 줄여진다.
▷ W에 Sigmoid를 적용해 나가므로 오차 역전파를 진행할수록 점점 0에 수렴해나가고, 제일 처음 layer는 W의 변경이 거의 없게 되는 현상
▷ layer 수가 많을 수록 Vanishing Gradient 현상이 심화된다.
▷ ReLU(Rectified Linear Unit - max(0, x)) 함수를 activation으로 이용해서 해결 가능
< Deep Learning - MNIST 예제 실습 >
▷ Tensorflow 1.15 버전을 이용해서 구현해보자
1. 단일 layer를 이용한 구현
▷ 정확도 : 90%
2. 다중 layer를 이용한 구현(초기화, activation 설정 X)
▷ Hidden layer를 추가해서 구현 가능
▷ 정확도 : 93%
3. 다중 layer를 이용한 구현(초기화, activation 설정 O)
▷ W 초기화를 랜덤으로 하지않고, He's 초기법을 활용해서 구현
▷ sigmoid를 사용하지 않고, Relu 함수를 activation으로 이용해서 구현
▷ 정확도 : 97%
'Python > Data Analysis' 카테고리의 다른 글
Data Analysis / DL / CNN (0) | 2020.11.02 |
---|---|
Data Analysis / ML / SVM (0) | 2020.10.21 |
Data Analysis / DL / Basic (0) | 2020.10.16 |
Data Analysis / ML / Tensorflow 2.x(2) (0) | 2020.10.15 |
Data Analysis / ML / Tensorflow 2.x(1) (0) | 2020.10.15 |