RBM (제한된 볼츠만 머신) 이해

요즘 한창 뜨고 있고 있는 딥러닝을 공부하고자 한다면 RBM (Restricted Boltzmann machine)이라는 제한된 볼츠만 머신이라는 알고리즘을 최소 한번은 들어 보았을 것이다. 확률적인 개념이라 다소 이해하기 어려운 면도 있어 가급적 쉽게 설명해보고자 한다. RBM을 로봇 트레이딩에 어떻게 활용할지는 아직 잘 모르겠지만… (아래 등장하는 수식에 있어서는 설명의 편의를 위해 간소화시킨 부분도 있음을 미리 언급해둔다.)

RBM은 우선 DBN(DBN, Deep Belief Network)이라고 하는 딥러닝의 일종인 심층신뢰신경망을 구성하는 기본적인 요소이다. 즉 RBM을 여러겹 쌓아서 심층신뢰신경망을 만든다.

그리고 RBM의 구조는 단순하다. 관찰 가능한 가시층(visible layer)과 은닉층(hidden)으로만 구성된다. 아래 그림에서 아래층이 가시층, 윗층이 은닉층인 것이다.

rbm
<RBM>

다만 같은 층 내부 노드간의 연결은 없고 층과 층 사이와의 연결만이 있다. 이런 점에서 제한적(Restricted)라고 불리운다. 그럼 이제 RBM의 주요 개념을 간단히 살펴보자

확률 기반 단층 신경망 RBM

역전파 신경망과 비교해보면 이해가 쉬울 수 있다. 역전파와 비슷하게 RBM도 입력노드에 가충치를 곱한 다음 시그노이드 함수를 적용해 은닉층의 값을 구하는 방법은 비슷하다. 다만 확률적으로 샘플링해서 구한다. 역적파 신경망에서는 시그모이드(Sigmoid) 결과값이 바로 노드의 출력값이 되지만, RBM에서는 노드의 값을 결정짓기 위한 확률값이다. 가령 0.8이라고 하면 역전파 신경망에서는 0.8이 바로 노드 출력값이겠지만 RBM에서는 0.8이 확률값이기에 노드 출력값이 확률에 따라 결정된다. (아래 관련 수식, 가시층 l번째 노드가 1일 때의 확률 분포)

 p(V_l = 1 |h) = sigma (sumlimits_{i=1}^n w_{il} h_i)

확률은 미지의 세계를 모델링하는 데 좋은 도구이다. 가령 내일 비가 올지 예측하는 문제에 대해서 분석적으로 접근하면 아직 미지의 변수가 너무 많아 어렵지만 확률은 그 미지의 것들을 덮어버리고 다만 숫자로 표현하면 그만인 것이다. RBM에서는 머신만이 이해할 수 있는 수치적(가충치) 정보를 확률적으로 학습하는 것이다. 신경망에 확률 개념을 도입하는 이유도 그와같은 이유이다. 다시 말해, 미지의(Unknown) 패턴이 많기 때문이다.

RBM은 에너지라는 개념이 있다. 역전파 신경망을 생각하면 목표치가 있기에 오류치를 계산하고 오류치 만큼 역전파시켜 학습을 시키는 데 RBM은 단층이기에 목표치가 없다. 그래서 다른 방식의 개념이 필요한데 바로 에너지라는 개념이다. 에너지(E)는 마이너스(-) 부호를 가지고 가중치가 0보다 큰 수이기에 입력과 출력이 양의 상관 관계에 있을수록 에너지가 작아진다. 예로 입력이 -1일 때 은닉층 결과가 -1이면 에너지가 최소가 된다.  홉필드 네트워크에서도 비슷한 에너지 개념을 사용하고 있으니 참고하길 바란다.

E(v,h) = - sumlimits_{i=1}^n sumlimits_{j=1}^m w_{ij} h_i v_j

RBM의 학습 방법은 입력층 노드값에 가충치를 곱하고 더하고 확률을 구하고 확률에 근거하여 샘플링하여 은닉층의 노드값을 결정한다. 은닉층의 노드값이 결정되면 또 다시 입력층의 노드값들을 같은 방식으로 결정한다. 그러면서 에너지를 최소화하는 방향으로 가충치를 학습하는 것이다.

참조

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중