가장 끝에 부분에 나오는 딥러닝에 대한 소스 및 정리
책은 예제로 손글씨 숫자 인식 문제를 단순한 신경망 -> 딥러닝 순으로 고도화 해 나갑니다.
외부 라이브러리로는 numpy 만 이용하고, 대부분을 직접 구현해서 소스를 분석하면 이해가 가능 해 집니다. ( 물론 수학은 별개 -ㅅ- )
직접 구현한 딥러닝 관련 함수들은 common 폴더에 있으며,
이를 이용하는 메인이
deep_convnet.py => 딥러닝 네트워크 망을 클래스로 구현 ( conv == convolution 합성곱 )
훈련 -> train_deepnet.py
테스트 -> misclassified_mnist.py
=> 정확도가 출력되고, 틀린 분류항목을 출력해 줍니다.
! 필수 이해 용어들
퍼셉트론, 신경망, 계산그래프
순전파, 역전파
He 초기값
평탄화
확률적 경사하강법(SGD)
SGD 모멘텀
네스테로프 모멘텀
!성능향상을 위한 -> 가중치 감소, 드롭아웃, 배치 정규화
** 주요 함수 ( 수식을 이해하면 좋을듯 )
common/functions.py
sigmoid
relu
softmax
common/optimizer.py
SGD
Momentum
Nesterov
** 예제를 실행하는 방법
pip install numpy matplotlib
python misclassified_mnist.py # 훈련 후 결과 pkl 파일이 있으니 바로 실행 가능!
파이토치를 쓰면 이미 모두 구현되어 있는 내용들이지만 책의 주제에 맞게 밑바닥부터 구현하면서 설명을 자세히 해준다!
다 읽고 다까-_-먹 었지만 이해하는듯한 느낌을 주었다...;;