let us not love with words or tongue but actions and truth.

IT/머신러닝(수업)

RBM과 DBN

sarah0518 2021. 12. 12. 11:59

지난번 적층 인코더와 유사한 느낌의 DBN과

그것의 기본 구조가 되는 RBM을 설명하고자 해요.

 

 

이 내용은 통계역학(통계 물리의 세부분야)에서 연구된 내용으로

Hinton(19830)이 볼츠만 머신(Boltzmann machine)을 제안한것에서

Restricted Boltzmann Machine (RBM)이 발전되었습니다.

 

 

기계학습 by. 한빛아카데미

 

 

위의 그림을 보면 RBM이 어떤 구조를 가지는지 명확히 알 수있습니다.

즉, 같은 종류의 노드사이에는 에지가 없는 볼츠만 기계라고 생각하면 됩니다.

 

DBN(Deep Belief Network)은 이런 RBM을 여러 층 쌓아 만든 것으로

딥러닝을 널리 확산하는 기폭제로서의 의미가 큽니다.

 

 

다시 RBM으로 돌아가서, 구조와 원리에 대해서 살펴보겠습니다.

 

RBM은 에너지 모델입니다. 즉,

1. 노드값에 따라 에너지가 정해지는데, 에너지가 낮을수록 발생 확률이 높음

2. 따라서 RBM을 잘 학습하면, 원하는 특정 패턴을 높은 확률로 발생시킴 ( = generative model로 활용)

3. 게다가, 역전파 알고리즘 같은 분류학습을 추가로 적용하면 분별모델(discriminative model)로 사용할 수 있음

 

 

RBM의 구조는 아래와 같습니다.

𝑥𝑖: 가시노드

ℎ𝑗: 은닉노드

𝑤𝑖 는𝑖번째 가시노드와 𝑗번째 은닉노드를 연결하는에지의가중치

 

그리고, 모든 노드는 이진값 (0 or 1)을 가진다고 가정합니다.

학습을 통해 알아내야 하는 매개변수는 Θ=(𝐖, 𝐚, 𝐛) 입니다.

 

 

RBM의 에너지를 수식으로 표현해보겠습니다.

 

기계학습 by. 한빛아카데미

 

여기서 발생확률은, 아래와 같으며

에너지가 낮을수록 발생확률이 높다는 것을 확인 할 수 있습니다.

 

 

 

이번에는 RBM의 목적함수입니다.

이 값을 최대화 하는 Θ를 찾는 것이 학습을 통해 진해되는 것입니다.

 

참고로, 오류역전파는 목적함수가 오류이므로 목적함수를 최소화 해야하는데,

RBM의 목적함수는 발생확률이므로 최대화 해야합니다.

 

따라서, SGA(Stochastic gradient ascent)를 사용합니다.

 

 

깁스샘플링에대해서 알아보려고 합니다.

 

입력값 𝑥가 주어졌을 때, 깁스샘플링을 통해

를 샘플링하고, 다시 𝑥를 샘플링 하는 과정에서 

Θ(매개변수)를 학습시킵니다.

 

 

RBM의 응용입니다.

깁스샘플링을 통해 RBM이 학습되므로

 - 생성모델로 활용이 가능

 - 비지도 학습에 활용 (차원축소 등)

에 가능하며, 또한 아래 그림과 같이 지도학습에도 활용이 가능합니다.

 

기계학습 by. 한빛아카데미

 

이 방식은 RBM을 특징추출기로 간주하는 셈입니다.

 

 

마지막으로 오토인코더와의 차이점에 대해서 생각해보겠습니다.

 

오토인코더는 결정론적 오토인코더지만,

DBN(RBM을 여러층 쌓은 것)은 확률적 오토인코더로 작동이 가능합니다.

 

왜냐하면 깁스샘플링을 통해 난수를 활용했기 때문입니다.

 

또한, RBM에서는 CD1에서부터 CDn까지 n번 반복하며 

샘플링을 생성하기 때문에

그 과정을 통해 여러번 매개변수가 학습되는 차이점이 있습니다.

'IT > 머신러닝(수업)' 카테고리의 다른 글

임베딩  (0) 2021.12.13
오토 인코더  (0) 2021.11.25
2차 미분을 이용한 최적화  (0) 2021.11.22
규제 기법2 - Augmentation, Dropout, 앙상블  (0) 2021.11.21
규제 기법 - Ridge & Lasso  (0) 2021.11.20