28X28 사이즈 MNIST 데이터 X를 읽어 들여 1X784 사이즈로 일차원 화된 매트릭스로 변환한 다음 마지막에 하나의 요소를 추가하여 1X785 로 만든다. 마지막 요소에는 바이아스 용으로 1을 입력해 둔다.
웨이트 매트릭스 W는 바이아스를 별도로 처리할 필요 없이 785X10으로 처리한다. 연산 결과 10 비트 hypothesis states 에 각 비트별로 빈도수가 계산된다. Normalization 과정을 통해 Softmax 확률이 계산된다.
Linear 한 파트만을 사용하는 Softmax MNIST 데이타 분석의 결과는 learning rate = 0.1, 20000회 학습에 최대 92.5% 안팎의 인식율을 보여준다. 인식율을 개선하기 위해 Covariance를 정식화 하여 포함시키면 다음의 공식이 얻어진다.
위 식의 유도과정은 볼츠만 분포에서 볼츠만 엔트로피를 최대화하는 조건에 대하여 확률 분포의 합이 1.0 이 되는 조건과 에너지의 평균 기대값이 일정하다는 조건을 사용하듯이 에너지를 hypothesis 로 대체하여 유도가 가능하면 단 Covariance 기댓값이 일정하다는 통계학적인 구속조건을 추가하면 된다. 이 Covarince 항이 포함된 Softmax classifier 사용 시 learning rate = 0.08, alpha=0.2, 20000회 학습 조건하에서 95.5∼96.0% 까지의 인식률을 보여준다.
즉 하나의 입력 데이터를 사용하면서 2세트의 랜덤 데이터를 추가로 발생 시켜 2개의 랜덤 변수를 준비하면 Covariance를 계산할 수 있다. Linear 한 파트 외에 이 Covariance 조건을 추가하면서 도입되는 상수 α는 수치계산을 통해서 가장 높은 인식률을 보여 주게 되는 값을 택하도록한다. 위 그림을 참조하면 α값이 0.12에서 0.2 사이임을 알 수 있다. 이미 CNN을 사용한 인식율이 99% 이므로 96% 인식율이 그다지 높은 것은 아니자만 통게학적인 관점에서 covariance 항 하나를 도입하여 3% 이상 인식율을 높일 수 있다는 점에 주목한다. 아울러 MNIST 외에도 XOR 로직문제에도 적용이 가능한데 이는 별도로 게시할 계획이다. 파이선 코드는 곧 출간 예정인 책 본문에 게재 url 주소를 올릴 계획이다.
'머신러닝' 카테고리의 다른 글
5-0 Bayesian Rule 과 기초 확률론 (0) | 2019.08.05 |
---|---|
Covariance 항을 포함한 Softmax Classifier의 XOR 로직 적용 (0) | 2019.08.03 |
※참고계산: iris_alpha_02.py (0) | 2019.07.29 |
Application of Statistical softmax To TensorFlow Iris flower data classification (0) | 2019.07.23 |
Scikit-learn 라이브러리 지원 Iris flowers 예제 (0) | 2019.07.22 |