DBN : 보통 MLP에서 Hidden Layer의 개수가 1개보다 큰 경우 Deep이란 말을 쓰는 것 같다. MLP에서 Deep한 뉴럴넷을 학습시키기위해 BackPropagation 이 개발되었으나, Hidden Layer의 개수가 많아질 수록 아래쪽 Layer까지 제대로 error를 전파시키지 못하는 문제가 생겼다.
그래서 이를 해결하기위해 2006, Hinton 이 만든 DBN은 RBM을 이용해서 MLP의 Weight를 input 데이터들만을 보고(unsuperivesd로) Pretraining 시켜서 학습이 잘 일어날 수 있는 초기 세팅을 하는 방법을 고안하였다. (기존에는 초기조건으로 그냥 0~0.1 사이의 weight를 랜덤으로 주었음.)
RBM은 두 레이어가 서로를 좀 더 잘 표현할 수 있는 방향으로 학습을 시키기 때문에, pretraining를 2 레이어씩 모든 레이어에 적용하면 MLP의 모든 레이어가 서로를 잘 구성하기 때문에 맨위에서 발생한 error가 아래쪽 레이어까지 충분히 전파될 수 있다.
Pretraining의 2가지 의미
1) Initial Parameter를 좀 더 Global Minima의 가까이서 시작할 수 있게 해준다.
(고차원의 HyperPlane에서는 이것은 틀린 것으로 알려져 있다. 왜냐하면 Local Minima와 Global Minima는 큰 차이가 나지 않으며, 고차원에서는 Local Minima에 빠져버리는 현상은 거의 없다고 알려져 있기 때문)
2) 각 Layer간의 연결성 혹은 긴밀성을 강화시켜 BackPropagation 에 의해 맨 아래 까지 전달되어지는 아주 작은 Delta도 충분한 영향을 받을 수 있게 한다.
'Research > Machine Learning' 카테고리의 다른 글
테일러 급수, 푸리에 급수 (2) | 2014.08.10 |
---|---|
Weight Decay, Regularization, Overfitting, Validation set, Drop out, ReLU (0) | 2014.08.04 |
RBM, Contrastive Divergence (4) | 2014.07.23 |
MCMC, Metropolis-Hastings, Gibbs Sampling (2) | 2014.07.22 |
P, NP, NP-Complete, NP-Hard, 시간 복잡도 (0) | 2014.07.22 |
댓글