2020년/Development

신경망 학습 #3

위지원 2020. 7. 19. 16:21

학습 알고리즘 구현하기

 

미니 배치로 경사 하강법을 이용해 학습을 진행하므로 확률적 경사 하강법(SGD:Stochastic Gradient Descent)라고 함

 

2층 신경망 클래스 구현하기

 

이번에는 코드 길기 때문에 라인 넘버를 넣었다.

각 층들이이 잘 생겼는지 테스트해보자. 784는 28*28 이미지가 784개라는 뜻

 

이어서 예측처리 하는 방법을 알아보자. 다음과 같이 100장 분량의 dummy 데이터를 생성해서 predict 함수를 이용해

예측을 진행할 수 있다.

 

grads 변수에는 기울기가 저장된다. 확인해보자.

미니 배치 학습을 구현해보자

 

*수정 epoch는 전체 데이터에 대한 한 번의 학습을 의미 

 

결과는 다음과 같다. 정확도가 1에 가까워지는 것을 확인할 수 있다. 코드는 앞서 알아본 내용을 그대로 작성하였기때문에 따로 설명할 필요는 없을 듯 하다.

오버 피팅없이 훈련이 잘 되었는지 확인하기 위해 훈련 데이터와 시험 데이터 두가지에 대한 정확도 모두를 평가하였다.

깃헙의 코드를 조금 수정해서 loss의 그래프 변화도 아라보자. loss가 줄어드는 모습을 확인할 수 있다.

 

y-lim을 조절해서 멀리서 보면 이런느낌..?