3-2 Covariance 항을 포함한 Softmax MNIST 적용

in #kr5 years ago (edited)

noname03.png

28X28 사이즈 MNIST 데이터 X를 읽어 들여 1X784 사이즈로 일차원 화된 매트릭스로 변환한 다음 마지막에 하나의 요소를 추가하여 1X785 로 만든다. 마지막 요소에는 바이아스 용으로 1을 입력해 둔다.

웨이트 매트릭스 W는 바이아스를 별도로 처리할 필요 없이 785X10으로 처리한다. 연산 결과 10 비트 hypothesis states 에 각 비트별로 빈도수가 계산된다. Normalization 과정을 통해 Softmax 확률이 계산된다.
Linear 한 파트만을 사용하는 Softmax MNIST 데이타 분석의 결과는 learning rate = 0.1, 20000회 학습에 최대 92.5% 안팎의 인식율을 보여준다. 인식율을 개선하기 위해 Covariance를 정식화 하여 포함시키면 다음의 공식이 얻어진다.

noname01.png

위 식의 유도과정은 볼츠만 분포에서 볼츠만 엔트로피를 최대화하는 조건에 대하여 확률 분포의 합이 1.0 이 되는 조건과 에너지의 평균 기대값이 일정하다는 조건을 사용하듯이 에너지를 hypothesis 로 대체하여 유도가 가능하면 단 Covariance 기댓값이 일정하다는 통계학적인 구속조건을 추가하면 된다.
이 Covarince 항이 포함된 Softmax classifier 사용 시 learning rate = 0.08, alpha=0.2, 20000회 학습 조건하에서 95.5∼96.0% 까지의 인식률을 보여준다.

noname02.png

즉 하나의 입력 데이터를 사용하면서 2세트의 랜덤 데이터를 추가로 발생 시켜 2개의 랜덤 변수를 준비하면 Covariance를 계산할 수 있다. Linear 한 파트 외에 이 Covariance 조건을 추가하면서 도입되는 상수 α는 수치계산을 통해서 가장 높은 인식률을 보여 주게 되는 값을 택하도록한다. 위 그림을 참조하면 α값이 0.12에서 0.2 사이임을 알 수 있다.

이미 CNN을 사용한 인식율이 99% 이므로 96% 인식율이 그다지 높은 것은 아니자만 통게학적인 관점에서 covariance 항 하나를 도입하여 3% 이상 인식율을 높일 수 있다는 점에 주목한다. 아울러 MNIST 외에도 XOR 로직문제에도 적용이 가능한데 이는 별도로 게시할 계획이다.

파이선 코드는 곧 출간할 예정인 책 본문에 게재 url 주소를 올릴 계획이다.

마나마인로고.png

Coin Marketplace

STEEM 0.27
TRX 0.13
JST 0.032
BTC 62875.98
ETH 2948.16
USDT 1.00
SBD 3.55