1-21 Microstate부터 볼츠만 확률분포 유도와 머신 러닝의 Softmax 명령의 도입-III

머신 러닝에서 가장 보편적으로 사용하고 있는 softmax 명령이 1800년대 후반 통계 역학의 바탕을 수립했던 볼츠만 분포에 연원하고 있다는 믿겨 지지않는 사실을 살펴보기로 하자.

noname01.png

입자들이 포함된 용기의 내부 온도가 일정하고 입자들의 전체 에너지가 보존된다는 조건하에서 각각의 입자들은 서로 다른 위치와 속도분포를 가지게 되므로 물리적으로 가능한(probable) microstate의 경우의 수가 수없이 많아지게 되는데 이러한 상황을 통계 확률적으로 고려해 보자. 현실적이면서도 물리적인 상황에서 용기 내부에는 입자 1몰만 잡아도 6에 10의 23승 만큼의 입자 수에 해당하므로 엄청나게 많은 수의 입자가 들어 있음을 알 수 있다. 하지만 볼츠만 분포에서 확률분포의 형태를 알아냄에 있어서 단지 몇 개만의 입자를 가지고 얻어낸 결과를 많은 수의 입자 사례에 대해 확장하기로 한다.

아래에 요약 작성된 내용은 아래 사이트의 원문을 참조하도록 하자.
Derivation of Boltzmann Distribution, Classical Concept review 7
https://courses.physics.ucsd.edu/2017/Spring/physics4e/boltzmann.pdf

입자가 가질 수 있는 에너지 E를 9 단계로 나누어 단계별로 ⧍E 만큼씩 차이가 있는 것으로 하고 논의의 마지막 단계에서 ⧍E⤍0 으로 극한을 취하여 에너지가 연속적이 되게끔 하자. 고려하는 입자의 수는 단지 6개이며 용기 입자들의 에너지의 합은 8⧍E 로 두기로 한다. 물론 6 과 8 이라는 숫자는 임의로 취한 것이며, 대단히 적은 숫자들이긴 하지만 볼츠만 분포의 특성을 알아내는데 충분하다고 보인다.

입자들이 충돌에 의해 에너지를 교환할 수 있기 때문에 microstate 경우 별로 에너지의 합인 8⧍E를 나누어 가지게 된다.

그렇다면 6개의 입자들이 8⧍E 의 에너지를 나누어 가질 수 있는 총 20개의 macrostate를 살펴보자. 실제 체크해 보면 20개가 나오며 어느 macrostate 가 가장 일어날 가능성이 높은지는 차후에 엔트로피와 관련하여 논의 할 것이다.

Macrostate 1 은 6개의 입자 중 5개 에너지가 0 이고 1개가 8⧍E 인 경우이다. 서로 다른 6개의 입자 중에서 5개를 뽑을 수 있는 방법 수는 6!/(5!1!) 즉 microstate 수 6을 가진다.
Macrostate 2 는 6개의 입자 중 4개의 에너지가 0 이고 1개가 ⧍E이며 또 1개가 7⧍E인 경우이다. 경우의 수는 6!/(4!1!1!) 즉 microstate 수 30을 가진다.
이러한 방식으로 20개의 macrostate 경우를 다음과 같이 표로 작성해 보자. 통계 확률 접근에 있어서 입자가 0, ⧍E, 2⧍E, ⦁⦁⦁, 8⧍E 중에 하나의 Random 한 에너지 값을 가질 수 있다는 점이 바로 입자가 취할 수 있는 결과물(outcome)이 될 것이며, 이 결과물들의 조합으로 이루어질 수 있는 모든 microstate 의 경우 수가 바로 바로 확률분포의 이벤트에 해당한다고 보면 될 것이다.

noname02.png

이 중에서 다시 macrostate 6 의 microstate 수를 계산해 내 보자. E=0에 3개 E=⧍E에 2개 E=6⧍E에 1개로 에너지 합계는 8⧍E 이며 일어날 법한(probable) microstate 수는 다음과 같이 계산된다.

noname03.png

이와 같이 microstate 수를 계산할 수 있으며 아울러 모든 microstate가 일어날 수 있는 확률은 같다고 가정하자. 그렇다면 어느 하나의 macrostate j가 일어날 확률 Pj는 일어날 수 있는 microstate의 수에 비례하게 된다. 위 표에서 macrostate 는 20개가 있으며 각 macrostate에 포함된 microstate의 수를 합치면 1287 이 된다.

전체 에너지가 8⧍E 로 일정하다는 조건하에서 얼마나 많은 입자들이 특정 에너지 레벨에 있을지는 macrostate 별로 각 에너지 레벨마다 계산이 가능하다. 즉 macrostate 1 에서 E0 = 0 레벨에 가장 있을 듯한(probable) 입자의 수는 5X(6/1237)=0.023 개로 계산된다. E0 = 0 레벨에 대해서 20개의 macrostate 별로 계산하여 합하면 n(E0)=2.31을 얻을 수 있다. 동일한 방법으로 0, ⧍E, 2⧍E, ⦁⦁⦁,8⧍E 에너지 레벨까지 계산이 가능하며 표의 마지막 줄에 결과가 출력되어 있다. 입자들이 가장 있을 법한 에너지 레벨 별 입자 수를 다 더하면 전체 입자 수는 6개가 된다. 이러한 계산 과정을 다음과 같은 수식으로 표현해 보자.

noname04.png

여기서 Pj는 어느 하나의 macrostate j가 일어날 확률이며, 일어날 수 있는 microstate의 수에 비례한다. nij는 어느 하나의 macrostate j에서의 에너지 레벨 i에 해당하는 입자 수이다. 한편 f(Ei)는 하나의 입자가 에너지 레벨 Ei 에 있을 법한 확률을 나타내며 gi는 통계적 가중치이다.

noname05.png

이 결과는 에너지 레벨 E를 축으로 하여 점 그래프를 작도하고 엑스포넨셜 형 곡선으로 curve fitting 한 작도이다.

총 입자수가 6개로 적기 때문에 오차가 있을 수 있으나 입자 수를 증가 시키고 에너지 차이 ⧍E를 0으로 보내어 극한을 취하게 되면 굵은 선으로 표시된 엑스포넨 셜 형 곡선 즉

noname06.png

으로 curve fitting이 가능하다. 이 방정식에서 B 와 Ec는 결정해 주어야 할 상수이며, 에너지 레벨 Ei가 즉 운동에너지(1/2)mvi**2으로 주어진다면 Ec는 kT 가 된다. k는 볼츠만 상수이며 T는 입자가 포함된 용기의 절대 온도를 나타낸다. 이 함수가 바로 볼츠만 확률분포를 나타낸다. 따라서 각 에너지 레벨에 입자들이 있을만한(probale) 볼츠만의 확률은 다음과 같이 normalized 된 형태로 주어진다.

noname07.png

normalization 과정을 통해서 확률분포가 독립변수인 Random 변수의 전체 범위에 걸쳐 확률을 합했을 때 1 이 되도록 한다.

볼츠만 분포에서는 입자의 운동에너지라 볼 수 있는 에너지 레벨 Ei가 항상 양의 값을 가지므로 엑스포넨셜 함수의 지수가 항상 음의 값이 되어 에너지 레벨 값이 커질수록 그 확률 값은 감소하게 된다. 반면에 이 볼츠만 분포식을 MNIST 수기문자 인식 이미지 처리 코드에 적용할 경우에는 그 껍때기에 해당하는 엑스포넨셜 함수의 형식만 softmax 라는 명령을 통해 취하기로 한다. MNIST코드에서 Random 변수인 28X28 = 784 개 픽셀의 값 X는 0∼256 사이의 양의 값을 가지며, 웨이트(W)와 바이아스(b)를 사용하여 볼츠만 분포에서의 에너지 레벨 Ei 에 해당하는 픽셀 레벨을 생성할 수 있다. 물리학에서 입자의 운동에너지는 항상 양의 값을 취하나 머신 러닝에서 아래의 brightness 의 값은 양일수도 있으며 음일 수도 있다.

noname08.png

Softmax에 의한 확률분포는 다음과 같이 주어진다.

noname09.png

이런 배경을 몰라도 머신 러닝과 관련된 코드 개발이 불가능한 것은 아니나 머신 러닝 코드가 점차 복잡해져가는 추세를 감안한다면 이 내용의 이해는 단지 시작에 불과할런지도 모른다.

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now