딥러닝(deep learning)/인공신경망(Neural Network)20 sigmoid의 한계 ( vanishing gradient ) sigmoid 의 미분은 A(1-A)가 된다. 아래와 같은 그림이 되는데 문제는 오차역전파 과정에서 loss의 값이 0에 가까워 진다. 즉 파라미터 업데이트가 안되는 것과 같은 효과가 난다. 이에 대한 xavier/he initialization 을 통해 해결한다. 자세한건 박사논문 참조. 또한 sigmoid 대신 relu나 tanh 같은 activation function을 사용해도 되는데 또 편미분해야하는 문제점이 있다. xavier/he initialization 구현한 코드는 다음과 같다. np.random.rand 대신 randn을 사용한다.(xavier방법) 이후 np.sqrt로 다음과 같이 사용한다. ( he 방법) 2019. 8. 1. 오차 역전파의 문제 출력층부터 계산되어지는데 그 과정에서 sigmoid의 미분을 하면 A*(1-A) 가 계산되어 값이 매우 작아진다. ( A의 범위가 0~1 사이의 값이기 때문) 따라서 몇번 반복되면 값이 굉장히 작아진다. 2019. 7. 31. 오차역전파 도입 미분하면 나눗셈이 사용되어서 속도가 너무 느리다. 따라서 체인룰을 이용하여 W,b에 대한 미분을 진행한다. 그 결과 나눗셈을 사용하지 않게 되어 속도가 굉장히 빨라진다. 2019. 7. 31. deep_learning 최종 정리 1. UI (입력) - 2. Data Generation (데이터 생성 및 정규화) - 3. Learning (학습) - 4. Verification ( 검증) - 1. UI (출력) 1-2, 4-1부분 : UI에서 서버로 전송할 때 TCP/IP 프로그래밍 필요 1 부분 : UI는 원하는 것으로 짜도됨. 2-4 부분 : 서버쪽에 구축 되어야 함. 1. input/ output / hidden node/ hidden layer 결정 2. W, b 3. feed_forward, loss_val, predict, train 등 함수 정의 2019. 7. 29. 이전 1 2 3 4 5 다음