The wake-sleep algorithm for unsupervised neural networks

🏷️ "#논문" "#제프리힌턴"

The wake-sleep algorithm for unsupervised neural networks

Helmholtz 기계를 어떻게 훈련할까요? Hinton, Dayan, Frey, Neal은 생물학적 영감을 기계 학습으로 변환했습니다. 깨어있을 때는 인식, 자는 동안 생성을 배웁니다. 이 우아한 알고리즘은 계층적 신경망의 비지도 학습 방법의 표준이 되었습니다.

[1] G. E. Hinton, P. Dayan, B. J. Frey, and R. M. Neal, "The wake-sleep algorithm for unsupervised neural networks," Science, vol. 268, no. 5214, pp. 1158–1161, 1995.

배경

1990년대 중반, 비지도 학습은 여전히 미해결 과제였습니다. 역전파는 라벨이 필요했고 볼츠만 머신은 너무 느렸습니다. Hinton 그룹은 뇌의 수면-각성 주기에서 영감을 받아 Science에 이 논문을 발표했습니다.

저자 소개

Geoffrey Hinton은 토론토대에서 기계학습 그룹을 구축하고 있었습니다. Peter Dayan은 이후 UCL 개츠비 계산신경과학 유닛 소장이 되었습니다. Brendan Frey는 이후 토론토대 교수로 딥러닝의 생물학 응용을 개척했습니다. Radford Neal은 베이지안 신경망과 MCMC 분야의 권위자입니다.

요약

기술 스펙: 이진 확률적 뉴런들의 다층 계층 구조입니다. 인식 가중치(recognition weights, 상향식)와 생성 가중치(generative weights, 하향식)를 분리합니다. 샘플링 기반 알고리즘(Gibbs sampling 활용)입니다.

핵심 혁신: 비지도 학습을 두 단계로 명확히 분해했습니다. Wake phase에서 인식 모델을 학습하고, Sleep phase에서 생성 모델을 학습합니다. 레이블 없이 깊은 계층 구조를 훈련할 수 있다는 증명입니다.

논문 상세

배경

계층적 생성 모델은 강력하지만, 어떻게 훈련할까요? 최대 우도를 직접 계산하기는 불가능합니다(은닉 변수가 많고, 적분이 처리 불가능합니다). EM도 E-step의 비용이 큽니다.

Wake-Sleep은 대략적 추론을 사용합니다. 완벽한 계산 대신 확률적 근사로 충분하다는 아이디어입니다.

방법론

알고리즘은 두 단계를 반복합니다.

Wake Phase: 1. 데이터(실제 이미지 등)를 입력층에 보여줍니다. 2. 인식 가중치를 따라 상향식으로 활성화를 계산합니다. 각 계층의 은닉 유닛들을 확률적으로 활성화합니다. 3. 관찰된 활성화 패턴으로 인식 가중치를 조정합니다. 목표: "입력이 주어졌을 때 은닉 변수를 올바르게 추정하기"

구체적으로: 아래 계층과 위 계층의 활동이 일어나는 경우를 선호하는 방향으로 가중치를 조정합니다.

Sleep Phase: 1. 네트워크를 스스로 실행합니다. 데이터 입력은 없습니다. 2. 생성 가중치를 따라 하향식으로 활성화합니다. 최상위 계층은 고정된 확률 분포에서 샘플합니다. 3. 생성된 활성화 패턴으로 인식 가중치를 조정합니다. 목표: "이 활성화 패턴이 나왔을 때 아래 계층을 올바르게 복원하기"

구체적으로: 위 계층과 아래 계층의 활동이 일어나는 경우를 선호하는 방향으로 인식 가중치를 조정합니다.

결과

Helmholtz 기계가 처음으로 실제로 학습했습니다. 작은 네트워크(8-16개 은닉 유닛)에서 시뮬레이션 결과, 계층이 깊어져도(3-4층) 안정적이었습니다. 처음에는 무작위 상태에서 시작했지만, wake-sleep을 반복하면서 데이터 분포를 점점 더 잘 모델링했습니다.

부분적 입력에서 완전한 패턴을 복원할 수 있었습니다. 예를 들어 이미지의 절반을 보고 나머지를 예측했습니다.

생각

잘한 점

개념적으로 단순하고 우아합니다. 깨어있을 때와 자는 동안 다른 것을 배운다는 아이디어는 직관적입니다. 또한 생물학적으로도 그럴듯합니다.

계층적 구조를 비지도 학습할 수 있다는 증명이 중요했습니다. 라벨 없이 깊은 네트워크를 훈련하는 것이 가능하다는 것을 보여줬습니다.

알고리즘이 국소 계산만 사용합니다. 각 뉴런은 바로 연결된 이웃들과만 소통하면 됩니다. 생물학적으로도 구현 가능해 보입니다.

한계

수렴성 증명이 없습니다. 알고리즘이 언제 수렴하는지, 수렴된 상태가 좋은지 보장하지 않습니다. 대충 작동한다는 경험적 증거만 있습니다.

실험 규모가 작습니다. 네트워크는 8-16개 은닉 유닛이고, 데이터는 간단한 패턴입니다. 현실의 이미지(MNIST 같은)로 대규모 실험하지 않았습니다.

계층 개수와 유닛 개수를 어떻게 정할지 애매합니다. 구조 선택이 성능에 큰 영향을 미칠 텐데, 체계적 가이드가 없습니다.

Sleep phase에서 생성 모델이 데이터와 다른 분포를 만들 수 있습니다. 이 모드 붕괴(mode collapse) 같은 문제는 언급하지 않았습니다.

의의

Deep Belief Networks의 훈련 방법입니다. DBN은 RBM들을 쌓은 것인데, Wake-Sleep이 비지도로 DBN을 학습하는 표준 방법이 되었습니다. 2000년대 딥러닝 부흥의 핵심이었습니다.

생성 모델의 이론적 기초도 확립했습니다. 나중에 GAN, VAE, 확산 모델 모두 생성과 인식의 분리라는 이 논문의 철학을 따릅니다.

비지도 사전 훈련(unsupervised pre-training)이라는 아이디어도 여기서 출발했습니다. 라벨 없이 신경망을 훈련하고, 나중에 라벨로 미세 조정합니다. 2010년대까지 유명한 패턴이었습니다.

한계는 computational cost입니다. Gibbs sampling이 느리고, 큰 네트워크에 확장하기 어렵습니다. Contrastive Divergence(2002)가 나오면서 훨씬 빨라졌지만, 원논문 자체는 실용성이 떨어졌습니다.

후속 연구 링크

이 논문의 한계는 Hinton의 이후 연구에서 다루어졌습니다: - 학습 속도 문제Training Products of Experts by Minimizing Contrastive Divergence: CD로 Gibbs sampling 비용을 대폭 줄였습니다 - 대규모 적용 부재A Fast Learning Algorithm for Deep Belief Nets: MNIST 등 현실 데이터에서 DBN으로 검증했습니다