[딥러닝 - 2] 딥러닝의 시초, Restricted Boltzmann Machines(RBMs)

in #kr6 years ago

반갑습니다. @yoonheeseung 입니다.
딥러닝 첫 리뷰를 쓰고 꽤 오랜시간이 지나서 두번째 리뷰를 작성합니다.
오늘 제가 공부한 내용은 Unsupervised Learning의 한 방법인 Restricted Boltzmann Machines(RBMs) 입니다.

RBM은 딥러닝의 아버지라 불리는 Geoff Hinton 교수가 이전 신경망의 여러 문제들, 특히 Vanishing Gradient 문제를 해결하기 위해 고안한 모델입니다.

RBM의 구조는?

RBM은 Markov Random Fields(http://norman3.github.io/prml/docs/chapter08/3)의 특별한
타입으로, visible layer와 hidden layer가 양방향으로 전부 연결되어 있는(fully-connected) 얕은 두 층으로 이루어진 확률론적인 모델입니다.
하지만 같은 layer의 노드끼리는 연결이 제한되어 있기 때문에 이 모델의 이름에 Restricted가
붙었다고 하네요.

RBM.PNG

훈련 과정은?

RBM으로 훈련시킬 때에는 두 개 이상의 확률변수의 결합확률분포로부터 일련의 표본을 생성하는 확률적 알고리즘인 Gibbs Sampling(https://ratsgo.github.io/statistics/2017/05/31/gibbs/)을 통해 훈련을 시킵니다.

3가지 단계를 반복함으로서 훈련을 시키는데요. 훈련 방법은 다음과 같습니다.

  1. forward : 입력 값을 내포하는 어떤 숫자 값으로 변역
    trainingrbm.PNG
  2. backward : 입력값에 대해 재구성(reconstruct)
    trainingrbm2.PNG
  3. 재구성된 값과 원래의 입력 값을 비교하여 평가

이렇게 3단계를 입력값과 재구성된 값이 최대한 가까워 질 때까지 반복합니다.

이 때, 3번째 순서에서 비교를 할 때 보통 KL Divergence(http://dongwonshin.net/kullback-leibler-divergence-%EC%84%A4%EB%AA%85/)를 사용하지만, 제가 본 논문에서는 gradient-based CD(contrastive divergence) algorithm을 사용했을 때 효율이 더 좋다고 합니다. CD 알고리즘을 도입한 RBM update 과정은 다음과 같습니다.

CD algorithm.PNG

그렇다면 RBM의 특징은?

RBM은 Unsupervised Learning이기 때문에 우선 data가 labeled 되어 있을 필요가 없습니다. 하지만 사실 RBM은 어떤 입력 feature가 중요하고, 어떻게 그들을 조합해서 패턴을 만들 것인지 결정하고 있습니다. 그래서 RBM을 특성(feature)을 추출하는 신경망이라고도 부르며 이것은 Autoencoder라고도 합니다.

마무리

지금까지 RBM에 대해 공부한 내용을 적어보았는데요.
RBM에 대해 조금 더 자세히 알고 싶으신 분들은 (https://deeplearning4j.org/kr/restrictedboltzmannmachine)을 참고해주시길 바랍니다.
다음번에는 Deep Belief Network를 공부하고 찾아뵙겠습니다.
그럼 오늘도 좋은 하루 되세요~!!!

Sort:  

Congratulations @yoonheeseung! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!

Congratulations @yoonheeseung! You received a personal award!

1 Year on Steemit

Click here to view your Board of Honor

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

Congratulations @yoonheeseung! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.27
TRX 0.11
JST 0.031
BTC 67167.98
ETH 3674.95
USDT 1.00
SBD 3.76