본문 바로가기
Machine Learning/Paper

힌톤 교수의 A Learning Algorithm for Boltzmann Machines의 이해

by 임은천 2014. 12. 10.

오늘은 연구실에 계시는 제 committee member 중 한 분인 Stefan, Henz님(물리학 전공)의 도움으로 Hinton 교수 저, A Learning Algorithm for Boltzmann Machines를 일부 읽어 보았습니다. 물리학자 분이시라서 수식 위주로 설명해주셨고.. 그 뒤로는 제가 다시 한 번 지금의 이해를 기준으로 논문을 읽어 봐야 할 듯 합니다. 본 내용은 다음의 내용과 함께 보시면 이해하기 더 좋습니다.
http://www.aistudy.co.kr/control/information_theory.htm


중요한 내용이라면, 가령 일종의 패턴이 있다고 합시다. 이게 아주 자주 반복되는 패턴이라고 하면, 엔트로피가 낮은 것입니다. 왜냐하면, 이건 정보가 없다고 봐야 하는 것이니까요. 사실 여기에서 정보를 얻어내는 것이 생물정보학에서는 더 어려운 문제(반복 서열 관련..)입니다.

이해를 위해서 단순화 시켜서 말씀 드릴려고 합니다. 그리고 저는 물리학도가 아니므로 설명하다가 용어가 틀리거나 잘못된 설명을 할 수도 있으므로 그것은 염두에 두시면 좋겠습니다.

일단 중요성은 인지하고 계시므로, 소개 부는 넘어갑니다.


Stefan께서는 이런 예를 들어줬었습니다.(제 해석이 약간 틀릴 수도 있음..) 가령, 한쪽은 공기가 있고, 다른 쪽은 진공 상태인 방을 벽으로 막아 두었다가 벽을 없애게 되면, 입자들이 상호 방향으로 이동하여 어떤 평형 상태를 이룰 때까지 계속된다고 하는데, 그 때, 개별 입자들은 열이라는 일종의 에너지를 가지고 있다고 보고.. thermodynamics에서는 이를 좀더 직관적으로 이해하려고 하고, statistics mechanics에서는 좀 더 수학적으로 설명하려고 한다고 했습니다. 열과 엔트로피의 관계를..


2. 볼츠만 머신입니다. 이게 도대체 뭔가? 일단 이야기를 시작하면, 우리는 현실 세계를 모델링하는 여러 가지 방법이 있습니다. 그래서 볼츠만 머신은 볼츠만 분포를 따르는 모델로 현실 세계를 모델링한 시스템이라고 생각할 수 있겠습니다.

우리는 이 논문을 읽고 그것이 볼츠만 분포를 따른다는 것을 알고 있습니다. 하지만, 실제로 이 논문의 아이디어를 떠올렸을 때는 아마 Fermi-Dirac 분포를 기준으로 모델링을 시작했을 것이라고 말씀해 주시더군요. 수식 (1)은 이 형태는 Ising 모델에서부터 나왔습니다. Ising 모델은 +1부터 -1까지 모델링했는데, 여기에서는 0과 1을 상태로 이용합니다. 유닛을 전자(이게 전자인지 입자인지 헷갈리는데 그냥 전자라고 할께요.) 라고 볼 때 w부분은 전자간 인터랙션, sisj는 해당 전자가 스핀하면서 생기는 on off 상태들을 표현합니다. 여기가 메인 항이고, 두번째는 보조적인 항인데 쎄타에 현재 입자의 스핀 방향을 표현하고, Ising 모델의 수식에서 theta_i=(-muh_i)를 나타냅니다. si는 역시 전자의 spin 상태이구요. 이런 개별 전자들의 에너지를 모두 모은 E가 전체 에너지 상태가 되겠습니다. 여기에서 쎄타항의 경우에 설명을 해줄 때 이런 식으로 예를 들어줬습니다. 가령 제가 설명을 듣던 방(A), 그 사이의 복도(B), 그 다음 방(C) 이렇게 있을 때, A, B 사이 간의 입자가 서로 영향을 주는 정도, A와 C 사이 간의 입자가 서로 영향을 주는 정도가 다르므로, 이를 모델링 하기 위한 항이라고 했습니다. 아무튼 다른 문서들에서는 바이어스 항이라고 해서 액티브 함수를 쉬프팅하는 역할을 한다고 설명하는데.. 물리적으로는 그런 의미인 것 같습니다.

2.1 절에 있는 수식 (2)는 rejected에서 accepted를 뺀 것(rejected - accepted)인데, s1에 0, s2에 1을 넣고, 전개하여 정리하면, 그런 식이 나옵니다.

(3)은 세타항이 따로 있으면 컴퓨터이션이 더 걸리므로, 1번항에 포함시켜버리고 단순화 시켜버린 것입니다.

(4)는 (3)에서 세타 포함 항을 없애서 (2)가 단순화 된 것이구요.

(5)은 Fermi-Dirac 분포에서 나오는 Fermi 수식으로 Stefan-Boltzman 상수인 k에 1을 넣고 단순화 시켜서 나온 수식입니다.

그래서(6)은 Fermi 함수에 alpha와 beta를 각각 넣으면, 중간에 나오는 g(epsilon)의 항의 값이 에너지가 클 때는 1에 근사하게 되는데, 이를 생략한 수식이 됩니다. 그래서 이렇게 근사를 하여 볼츠만 분포가 되게 됩니다. 즉, 에너지가 크지 않을 경우, 잘못된 수식이 된다고 합니다. 이 분포에서 전자라고 하지 않고, 페르미온이라고 부르는데.. 비슷한 다른 분포로 보손 분포라는 것도 있는데.. 물리적 전문 용어는 모르겠으나.. 해당 내용을 이해하기는 했지만.. 설명을 드리기는 어렵네요.. 사실 해당 수식과 관련은 없으므로 일단 이 내용은 그냥 모르셔도 무관합니다..

(7)은 설명이 잘 나와 있는데.. (6)의 수식에 대해 로그 확률에 대해 편미분을 취해서 전체 페르미온의 상태의 확률과 개별 연결 강도 간의 관계를 단순화 시켰습니다.

(8)은 정보 이론에서 나오는 Shannon entropy 관련 내용인데, relative entropy라고 부릅니다. asymmetric divergence라고 나오는 것은 Kullback–Leibler divergence 입니다. 직관적인 의미는 분모의 환경이 없는 상태의 네트워크에 대비해 얼마나 많은 정보의 획득을 했냐라는 것을 나타냅니다.

(9)는 G의 값을 최소화 시키는 역할을 하시 위해서 gradient descent를 수행합니다. 쉽게 말해서 G에 대해서 가중치로 편미분하는 것인데, gradient는 peak detector인데 여기에서는 최소화 시키는 방향을 찾으므로 descent라는 표현을 썼겠죠. 이것에 대한 자세한 유도는 논문 뒷부분에 첨부 되어 있습니다. 다만, 해당 첨부내용에서 조건부 확률을 표현할 때 교집합 기호가 꺽쇠처럼 보이는데, 이건 출판 년도 때문에 그런 것이므로 교집합 기호로 이해하시길 바랍니다.

(10)은 global minima에 도달하기 위해서 무 상태와 조절 중인 상태에 조정 팩터인 엡실론을 곱해서 델타 가중치를 구하는 것입니다. 이것을 봤을 때, G는 커졌다 작아졌다 왔다갔다 하나 봅니다. 어차피 gradient descent도 계속 입자가 움직이면서 peak의 가리키는 것을 상상하시면 좀 이해가 될 겁니다. 이런 거죠.. 공이 왔다갔다 하면서 minima를 향해가죠. 운동에너지가 남아 있다면..

중간에 애닐링이라는 것이 나오는데, 입자가 분포되어 있을때, 이것은 낮은 온도에서는 안정 상태로 가는데 시간이 오래 걸리고, 높은 온도에서는 안정 상태로 가는 시간이 짧으므로 높은 온도에서 시작해서 서서히 담금질하는 식으로 최적 값을 찾아가는 것을 의미합니다.

이것을 그림으로 그려보면 포텐셜이 큰(즉 에너지가 큰) 상태에서는 더 많은 minima들이 보이나 낮은 포텐셜에서는 근처에 있는 local minma만 보이는 것과도 연관이 있겠죠..


아참. 수식 유도나 전개 중에 파티션 펑션이라는 것이 나오는데, 이것은 노멀라이제이션 할 때 나오는 내용이고, 분모에 나오는데(Z()로 대부분 표기됩니다.) 결국 상수가 되어 버린다고 합니다. 노멀라이제이션 할 때, 분모로 나온다는 말은 분자에 있는 모든 값의 합이겠죠..


틀리거나 부족한 내용을 알려주시면, 수정하겠습니다.

댓글