본문 바로가기

머신러닝/[논문으로 짚어보는 딥러닝의 맥]

Restricted Boltzmann Machine

학습목표

이번 강의에서는 대표적인 Unsupervised Learning 방법 중 하나인

Restricted Boltzmann Machine(RBM)에 대해서 해워보도록 하겠습니다.

Deep Learning을 최근에 접하신 분들에겐 생소할 수 있지만 RBM 덕에 DL이 다시 활기를 띌 수 있게 되었습니다.

핵심 키워드

  • Restricted Boltzmann Machine(RBM)
  • Unsupervised Learning
  • Energy-Based Models
  • Deep Belief Network(DBN)

학습하기

 많은 분들에게 이 RBM은 조금 생소할 수 있는데, 이는 DL이 잘 활용될 수 있게 불씨를 제공한 모델입니다. 수식이 굉장히 많이 등장할 텐데, 천천히 따라오시면 충분할 것 같습니다.

 우선 Energy based models입니다. 어떤 Input을 넣으면 Output이 나오는 모델을 생각하면 보통 Supervised Learning을 많이 떠올립니다. 이미지를 분류한다던가 시맨틱 시그맨테이션을 한다던가.. Input과 Output을 연결하는 어떤 모델. 그러니까 함수를 찾는 거죠. 그런데 Energy based model은 조금 달라요. 아니, Energy based model보다도 이 RBM은 대표적인 Unsupervised learning method 입니다. 이미지만 있는 상태에서 이미지를 잘 표현하는 representation을 찾는거죠. 이 때 Energy based model을 가정합니다. Certain state의 확률은 그것이 가진 Energy에 비례한다. 예를 들면 공기 중에 뜨거운 물체가(에너지가 큰) 존재할 확률은 당연히 더 낮겠죠. 수식으로는 p(x) = e*(-E(x)) / Z 가 되며, 이러한 확률 분포를 Boltzmann distribution이라고 합니다. RBM은 여기서 나옵니다.

 General Boltzmann Machine 과 Restriced Boltzmann Machine은 Neural netwrok와 유사합니다. GBM은 Hidden layer와 Visible layer의 모든 Node들이 연결된 것이고, RBM은 Hidden끼리, 혹은 Visible끼리는 연결이 없는 경우죠. 결국 RBM은 NN과 유사합니다. 그래서 NN을 학습할 때, Pretrain용으로 활용되었습니다. 미리 이미지만 가지고 RBM을 통해 초기값을 지정하고, CNN을 처리하는 거죠. 

 이제는 수식입니다. ...영상을 참고하시면 되겠습니다... 결국 Energy를 정의하는게 핵심인데 이또한 Weight와 Bias를 통해 구해집니다. 이렇게 Energy가 정의되면, 이제 Probability가 정의됩니다. 우리의 목적은, 어떠한 Visible이 주어졌을 때, 그 Visible을 최대로 하는 Parameter를 찾는 거고, 그 Parameter은 Weight와 Bias입니다. 이를 위해 Gradient를 사용합니다.