Reposting: 볼츠만 확률분포와 머신 러닝 Softmax의 만남

in #kr6 years ago (edited)

noname01.png

1800년대 후반에 볼츠만은 미시적인 원자나 분자의 물성이 물질의 거시적인 상태에서의 물성과 어떤 관계에 있는지를 깊이 고찰하여 물리학에서 통계역학의 토대를 쌓았으며 그의 대표적인 아이디어가 바로 볼츠만 분포와 엔트로피 공식(S=k lnW)일 것이다.

볼츠만의 연구내용을 요약해 보면 용기 속에 가두어둔 수많은 개개의 기체 입자들의 미시적인 관점에서 위치와 에너지를 고려하여 거시적인 관점의 열역학적 상태 변수 압력, 부피, 온도, 엔트로피와의 관계를 설정하는 작업이었다.

그림에서처럼 입자 또는 기체의 상태를 보여주는 열역학 시스템은 1법칙과 2법칙으로 구성된다. 열역학(Thermodynamics)에서 Thermo란 열을 뜻하며 dynamics는 변동을 뜻한다. 즉 열역학이란 시스템의 열적 변화를 따져보는 것이 된다.

열역학 1법칙은 열역학 시스템에 외부로부터 열이 가해지거나 또는 외부로부터 시스템 용기에 힘을 가해 용기의 부피가 감소하도록 일을 해주게 되면 시스템 내부의 물질인 기체의 내부 에너지가 증가하게 된다는 것이다. 내부 에너지의 증가는 결국 용기 내부의 압력과 온도 증가로 이어질 것이다.

따라서 현재 고려하는 그림상의 용기 시스템은 절연이 잘된 상태에서 외부에서 용기를 압축할 정도의 외력 작용이 없으므로 용기 내부 기체는 일정한 온도를 유지할 수 있을 것이다. 이러한 논의는 기체 입자로 채워진 용기 시스템의 거시적 상태 중에 온도(T)를 기술하는 것이며 압력(P), 부피(V), 엔트로피(S)도 거시적 상태 변수에 들어간다.

볼츠만 확률분포 문제를 다루기 위해 용기 내 입자들에 대해서 몇 가지 가정을 설정하자. 그 설정에 따라서 볼츠만 확률분포 공식이 유도되는 것이며 아울러 머신 러닝 이미지 처리 분야에서 이 볼츠만 분포를 사용하려면 대응하는 가정도 적합해야 할 필요가 있다.

충돌하게 되면 서로 에너지를 교환할 수 있는 동일한(identical) 입자들의 운동을 고려한다. 입자가 동일하다는 것은 물리적 측면에서 물성이 같다는 것이다. 즉 용기 내에 이산화탄소가 들어 있다고 가정하면 용기 내부의 입자는 동일한 이산화탄소 입자들이 들어 있는 것이다. 공기의 경우 산소와 질소가 섞여 있지만 이상 기체로 분류되므로 동일한 공기 입자가 들어 있다고 가정해도 무방하다. 한편으로는 이 입자와 저 입자를 서로 구분할 수(distinguishable) 있다고 가정한다. 왜냐하면 입자들이 같은 속도를 가지는 경우에 운동 에너지는 같을지 몰라도 적어도 운동 방향을 나타내 주는 벡터인 운동량 값이 같을 수는 없으며 아울러 입자의 위치도 달라 이들을 서로 구분할 수 있다는 점이다.

특히 동일한 입자들을 고려하려면 쉽게 말해서 용기 속에 같은 종류의 기체 물질 즉 순수한 산소라드지 또는 순수한 질소라든지 한가지 물질을 넣어두는 상황으로 이해하면 좋을 듯하다. 공기의 경우 산소와 질소가 일정 비율로 혼합되어 있지만 혼합된 비율의 덩어리를 하나의 입자로 보면 될듯하다.

입자의 종류로는 분자, 먼지, 돌맹이, 곡식 낱알 등을 포함할 수 있는데, 전자, 양성자, 중성미자 및 소립자와 같이 현대 물리학에서 다루는 대상들은 서로 구분이 안 되는(indistinguishable) 경우가 많으며 특수한 확률분포 적용이 불가피하므로 일단 배제하도록 한다.

절연이 잘된 상태의 고립된(isolated system) 용기(상자)에 포함되어 있는 이 입자들은 서로 충돌하게 되면 에너지를 교환할 수 있으며 열적으로 평형(thermal equilibrium)을 이루고 있음과 아울러 이 입자들의 총 에너지의 합이 일정하다고 하자. 에너지 교환이 일어나는 입자들의 충돌이 탄성 충돌이라면 비탄성 충돌에서처럼 마찰이나 열 변환에 따른 손실이 없어 에너지가 보존된다.

절연이 잘된 상태의 고립된(isolated system) 용기(상자)에 포함되어 있는 이 입자들이 기체 상태로 들어 있다고 가정하자.
noname02.png

절연이 잘되어 있어 시간이 경과해도 온도를 측정해 보면 일정 온도를 유지할 것이다. 상자 내부에서는 동일한 입자들이 각각 서로 다른 운동 에너지를 가지고 운동하면서 많은 충돌이 일어나고 있을 것이다. 용기 내부의 입자들의 전체 에너지는 외부와의 절연으로 인해 빠져 나가는 열에너지 없이 일정한 상태로 계속 유지되어야 하며 또한 압자들의 충돌에 있어서 충돌 전후에 에너지가 보존되려면 반드시 탄성충돌이라야 한다.

이러한 입자들이 포함된 용기의 내부 온도가 일정하고 입자들의 전체 에너지가 보존된다는 조건하에서 각각의 입자들은 서로 다른 위치와 속도분포에 따라 물리적으로 가능한(probable) microstate의 경우의 수가 수없이 많아지게 되므로 통계적인 확률분포로 기술할 필요성이 제기된다.

따라서 실제로 용기 내부의 기체 압력이 충분히 낮다면 앞서의 가정들이 잘 맞는 이상기체(ideal gas)로 볼 수 있기 때문에, 수많은 microstete 로 이루어지는 통계적 앙상블에 대해 소수의 거시적 상태 변수 즉 P(압력). V(부피), T(절대온도), S(엔트로피)를 사용하는 열역학의 이상기체 법칙에 의해 거시적인 macrostate를 잘 표현할 수 있다. 이러한 전제 조건을 사용하여 볼트만의 확률분포식 유도가 가능해지며 별도록 다루어 보기로 한다.

한편 흑백 명암의 픽셀로 구성된 가로와 세로가 동일한 크기의 사각형 이미지를 고려해 보자. 픽셀들의 크기는 다 동일하지만 픽셀은 위치 정보와 흑백 또는 컬러 명암 정보를 가질 수 있는데 그 값들은 서로 다를 수 있다.

noname03.png

명암정보는 0∼256까지의 범위 내에서 정수로 표현이 가능하다. 하지만 볼츠만 분포에서 입자들은 운동이 일어나 위치와 속도가 랜덤하게 변화되지만 픽셀은 운동을 할 수 없기 때문에 운동에너지 개념을 도입할 수는 없는 대신에 명암을 나타낼 수 있도록 0∼256까지의 범위를 가지는 랜덤 변수로 설정하고 특정한 확률분포를 도입한다면 픽셀 값을 사용하여 픽셀의 확률 값 부여가 가능해진다. 결국 이 랜덤한 픽셀 값들이 모여서 확률적으로 하나의 라벨 값을 부여할 수 있는 이미지 형성이 가능해질 것이다.

noname04.png

위 흑백이미지는 수기로 쓴 “3”자 MNIST 데이터의 하나이다. 이미지를 표현하고 있는 픽셀 정보를 살펴보면 0∼256 사이의 정수 값을 가짐을 알 수 있다.

MNIST 머신 러닝 코드를 실행하게 되면 한번의 batch 실행에 5만개의 데이터 샘플 중에 100개의 데이터를 샘플하여 학습하는 바 “3”자라 해도 아래와 같이 여러 가지 종류의 이미지가 샘플 될 수 있다. 5만개 중 “3” 자 이미지가 십분의 일인 5천개 가량이 있을 수 있다.

통계 역학 앙상블에서 용기속의 입자들이 충돌을 통해 에너지를 교환하게 되지만 그래도 거시적으로 즉 macrostate 즉 압력, 온도, 부피, 엔트로피는 그대로 유지가 된다는 사실을 알고 있다. 이미지에서도 Random 변수인 픽셀 값 변동으로 픽셀의 microstate가 바뀌어도 이미지의 거시 정보(macroscopic data)가 그대로 유지 되어야 할 것이다. 즉 위 그림의 “3”자 샘플 이미지를 조사해보아도 그 microstate에 해당하는 세부적인 픽셀의 위치와 값을 조사해보면 다 다를 수밖에 없지만 거시적인 정보로서 이들은 모두 다 ”3“으로 분류되어 ”3“에 해당하는 라벨 값 부여가 가능해야 한다.

픽셀 값이 같은 픽셀들 간에 서로 구별이 될 수 있는가? 입자는 벡터량인 운동량이 다를 수 있으므로 구별이 가능하지만 픽셀의 경우는 픽셀의 위치 정보가 서로 다르므로 얼마든지 구분이 가능하다. 28X28=784 픽셀로 이루어지는 MNIST 데이터 사용자는 숫자 이미지별 픽셀의 위치와 명암 값 전부를 가지고 있어 언제든지 출력이 가능하다.

따라서 통계적 앙상블로서 microstatate를 구성하는 상자속의 입자들이 고전 물리학에서의 볼츠만 확률분포에 의해서 거시적인 macrostate를 제대로 기술할 수 있다면 이미지를 구성하는 픽셀들도 유사한 확률 분포에 의해 이미지의 거시 정보(macroscopic data)를 추출할 수 있는 가능성이 부여되며 머신 러닝에서는 Softmax 명령으로 구현이 가능하다.

Sort:  

Congratulations @codingart! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published a post every day of the week

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

SteemitBoard - Witness Update
SteemFest³ - SteemitBoard support the Travel Reimbursement Fund.

Support SteemitBoard's project! Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 64036.76
ETH 2647.26
USDT 1.00
SBD 2.78