머신러닝

머신 러닝 Softmax와 볼츠만 확률분포와의 Analogy-II

coding art 2019. 1. 30. 19:43
728x90

파이선 코딩을 배우는 초보자도 머신 러닝에 한번 도전해 보자.

머신 러닝을 배우려는 파이선 코딩 초보자들이 가지게 될 의문점들을 하나하나 찾아내어

실제 풀어보고 결과를 확인해볼 수 있도록  완전히 뒷문으로 들어가 시작하는 머신 러닝!

인터넷 교보문고에서 450페이지19900원에 판매중입니다.














__________________________________________________________________________________________________________________






통계학은 데이터의 수집에서 시작하여 구성 분석 해석 및 발표에 이르기까지 전 과정을 아우르는 수학의 분과이다. 통계학을 과학, 산업 또는 사회문제에 적용하기 위해서는 대개 통계학적인 분포(statistical population) 또는 통계학 모델(statistical model)을 가지고 스터디 한다. 인구분포 문제라면 당연히 한 지역 이나 나라 안의 모든 사람들을 대상으로 하는 통계학적인 분포에서 시작하는 것이 당연하겠지만 볼츠만 분포라든지 또는 머신 러닝에서 사용하는 Softmax 의 경우는 통계학적인 모델에 해당한다.

 

통계학적 모델이란 샘플 데이터 및 보다 큰 분포에서부터 유사한 데이터들을 생성함에 있어서 일련의 통계학적인 가정들이 부과된 수학적인 모델로서 주로 그 통계학적 모델에 고유한 확률분포에 해당한다.

 

따라서 모든 통계학적인 가설 테스트(statistical hypothesis)와 평가(estimator) 방법이 통계 모델에서 추출되어야 하며 더 나아가서 통계 모델은 결국 통계학적 추론(statistical inference) 근거의 일부가 되는 것이다.



통계학적인 방법은 크게 두 종류로 볼 수 있다. 첫째로 descriptive 한 통계학으로서 통계 데이터에 대한 중요 인덱스인 평균값, 분산, 상관관계를 사용하여 분석하는 기법이다. 두 번째로는 랜덤한 변동 상태에 직면해 있는 데이터들로부터 결론을 끌어 내기 위해서 랜덤한 현상을 보이는 확률 분포의 테두리 안에서 추론이 이루어져야 한다.

MNIST hand written digits의 통계적 분석을 위한 머신 러닝의 과정을 살펴보자. 55000개의 학습용 샘플과 10000개의 테스트용 샘플로 구성되는 MNIST  데이터 는 다연히  평균과 분산 또는 상관관계 지표들을 가지는 통계 데이터 베이스 임이 분명하다. 아울러 개개인들이 손으로 쓴 숫자들의 픽셀화된 데이터를 관찰해 보게 되면 상당한 랜덤성을 포함한 데이터이기도 하다.

이 MNIST 데이터 베이스로부터 학습용과 테스트용 데이터를 샘플링하여 Hypothesis를 사용한 학습과정을 거친 후 이 학습된 Hypothesis를 테스트 데이터에 적용하여 MNIST 문제에서의 인식율과 같은 추론 과정을 거치게 되는 것이다.

1990년대 말부터 LeCun에 의해 주도된 MNIST 데이터의 통계학적 처리과정의 발전 과정을 살펴보면 초기에는 linear classifier를 사용하여 Softmax에 의한 Hypothesis를 구성하고 Cross Entropy 형의 cost(loss) 함수를 구성 후 경사하강법을 적용하여 에러를 최소화 시키는 학습을 시행한다. 1종류의 숫자 별 10개씩 10종류이므로 100개 단위로 랜덤 샘플링 된 batch 데이터를 학습하여 볼트만의 공식을 차용한 Softmax를 사용하여 웨이트 매트릭스를 결정한 후에 테스트 데이터를 적용하여 인식률을 평가하면  대략 92%  수준의 결과를 준다.

MNIST 데이터 베이스의 머신 러닝에 있어서 단순 적용을 통해서도 92% 라는 놀라운 인식률을 보여주는 Softmax 기법은 볼츠만의 확률분포를 차용했음에 틀림이 없으나 통계학적인 측면에서의 지표들 즉 평균, 분산 및 상관관계에 대한 고려 및 유도과정에 대한 세부적인 정보들이 인터넷 문헌 검색에서도 찾을 수 없는 것으로 보아 아마도 결여된 상태인 듯하다. 따라서 볼츠만의 통계역학에서 사용했던 물리학적 기본 가정들과 대비하여 머신 러닝에서 필요한 통계학적 가정들을 체크하여 일반화된 Softmax 표현식을 유도해 보기로 한다.

볼츠만의 통계역학
현대 물리학의 한 축을 담당하는 통계역학은 큰 자유도를 가지는 물리 시스템의 근본 연구에 필요하다. 그 접근법은 통계학적 기법과 확률 분포 및 거시적인 물리 법칙에 근거하고 있다. 따라서 통계역학은 큰 시스템의 열역학적 거동을 설명하는데 사용할 수 있으며 평형 상태의 통계 열역학으로 불리우기도 한다. 통계역학에서는  거시적인 관점의 물리량 즉 압력 과 온도 변수들이 평균값을 중심으로 변동하는 미시적인 상태와의 연관성을 찾아야 한다.

볼츠만의 확률분포를 고려함에 있어 3가지 종류의 통계역학적인 앙상블 중에서 일정한 전체 에너지 값과 분포 입자수가 일정한 즉 일정한 조성을 가지는 microcanonical ensemble에 주목하자. 나머지 앙상블들은 에너지 값이라든지 입자수 조성에 변동이 있을 수 있는 보다 복잡한 물리학적인 시스템이라 보면 된다.

에너지 레벨 i 에 해당하는 볼츠만의 확률분포는 다음과 같이 엑스포넨셜 함수로 표현되며 에너지 레벨, 볼츠만 상수 k 및 절대 온도 T 에 의해 계산 되는 지수에 의해 영향을 받는다. 아울러 확률 분포이므로 전체 에너지 레벨 별 확률의 합은 1.0 이 되어야 하며 아래 표현식에서 물리학에서 partition function 으로 알려진 분모 항은 normalizion 역할을 수행한다.

이와 같은 볼츠만의 확률분포식을 유도해 보기 이전에 문제의 전반적인 이해를 도우기 위한 입자수가 6개인 통계 물리학 예제를 다시 고려해 보도록 하자. 이 문제에 관해서는 이미 필자의 저서인 “파이선 코딩 초보자를 위한 텐서플로우∙OpenCV 머신러닝” 75∼91 페이지에 걸쳐 이미 다룬 적이 있다. 다음 url 주소에서 본서의 pdf 목차 파일을 무료로 다운받을 수 있으므로 참고하도록 하자.

https://steemit.com/kr/@codingart/pryx1-opencv

하지만  머신 러닝에서 반드시 필요한 통계학적 가정 및 지표(평균, 분산 및 상관관계)들에 대한 세부적인 고려가 빠져있어 이번 기회에 보완이 이루어질 예정이다.