6. Restricted Boltzmann Machines

6.1. Introduction

제한 볼츠만 기계(RBM)은 피드포워드 망과 근본적으로 다른 모델이다. 이는 입력에 대해 네트워크의 확률적 상태가 학습되며 비지도 모델링에 적합하다. 이는 관측된 특성과 은닉된 특성에 대한 결합확률분포를 결정론적이 아니라 추계적으로 모델링하는 비방향 네트워크이다. 핵심적으론 제한 볼츠만 기계는 데이터의 잠재 특성 표현을 생성하는 비지도 모델이다.

6.1.1. Historical Perspective

제한 볼츠만 기계는 학습 데이터의 이진 특성을 표현하는, 홉필드 망으로 알려진 고전적 모델로부터, 노드간 가중간선을 통해 노드간 관계를 추계적으로 예측하는 모델로 발전하였다. 목적은 가능도가 최대화되는 모델 매개변수를 학습하는 것이다. 제한 볼츠만 기계는 은닉 유닛과 가측 유닛간의 연결만 허용하는 마르코프 무작위 망의 일부이다. 초기에는 제한 볼츠만 기계는 너무 느려서 인기가 없었으나 이후 발전하였다. 제한 볼츠만 기계는 다른 타입에도 적용은 가능하나 이진 상태에 특화되어 있다.

6.2. Hopfield Networks

홉필드 망은 1982년에 기억을 저장하는 모델로 제안되었으며 이는 d개의 유닛이 각각 이진 값과 실수 편향을 갖는 비방향그래프 모델이다. d차원 학습 데이터 셋의 상태를 기억해야 한다면 d 유닛의 홉필드 망을 쓴다. 홉필드 망의 목적 함수는 에너지 함수로 불리기도 하며, 이를 최소화할 때 가중치가 큰 양수를 가진 간선으로 연결된 노드는 비슷한 상태를, 가중치가 큰 음수를 가진 간선으로 연결된 노드는 다른 상태를 가지도록 유도한다. 홉필드 망의 가중치를 학습하는 것은 학습 집합을 기억하는 비지도 모델을 암시적으로 만든다.

6.2.1. Optimal State Configurations of a Trained Network

학습된 홉필드가 있을 때 최적의 상태는 네트워크의 비트를 뒤집어도 에너지가 내려가지 않는 상태로 정의된다. 홉필드 망은 학습할 때 목적 함수의 비트를 계속해서 뒤집으면서 최적화하므로 내용 지정 기억에 대한 길로 불리기도 한다. 이 때 뒤집는 기준은 뒤집을 때 에너지가 내려가야 뒤집는다. 홉필드 망의 국소적 해는 학습된 가중치에 의존한다. 이는 학습 데이터에 나타난 패턴과 꼭 같을 필요는 없지만 비슷한 패턴을 낸다. 반복적 상태 업데이트는 홉필드 망의 많은 국소해 중 하나에 도달하게 만든다. 데이터 량이 모델의 용량을 초과하면 모델은 기억이 아니라 일반화를 시작한다. 홉필드 망은 연관 기억을 모델링하는 데 쓰일 수 있다.

6.2.2. Training a Hopfield Network

홉필드 망은 헤비안 학습 룰, w_{ij} = w_{ij} + 4(x_{ki} - 0.5)(x_{kj} - 0.5), b_{i} = b_{i} + 2(x_{ki} - 0.5)를 사용할 수 있다.

Capacity of a Hopfield Network

유닛 d개 홉필드 망의 저장소 용량은 0.15d 개의 표본만큼밖에 안 된다. 그래서 한계가 있다.

6.2.3. Building a Toy Recommender and Its Limitation

홉필드 망은 일반화를 필요로 하는 다른 기계학습보다는 기억 기반 애플리케이션에 쓰인다. 협업 필터링의 영화 추천 등에서는 음의 샘플링을 쓰는 게 낫다. 각 사용자마다 각 작은 홉필드 망을 두고 전체 망에서 가중치는 공유시키는 것이다. 추천 시에 랭킹을 매기려면 홉필드 망에서 비트를 뒤집을 때 발생하는 에너지 차이 순서대로 매긴다.

6.2.4. Increasing the Expressive Power of the Hopfield Network

자주 쓰이진 않지만 홉필드 망에 은닉 유닛을 더해 표현력을 더할 수 있다. 이는 데이터의 잠재 구조를 포착하는 역할을 한다. 볼츠만 기기는 홉필드 망에 은닉 유닛을 더한 것으로도 볼 수 있다.

6.3. The Boltzmann Machine

이 절에서 볼츠만 기계는 d개의 가측 상태와 m개의 은닉 상태를 가졌음을 가정한다. 볼츠만 기계는 홉필드 망의 확률적 일반화로, 상태에 이진 값을 부여하는 홉필드 망과 달리 에너지 차이에 따라 상태에 확률을 부여한다. 확률은 P(\mathbf{s}) = \frac{1}{Z} e^{-E(\mathbf{s})}, Z = \sum_{\mathbf{s}}e^{-E(\mathbf{s})}로 정의되는데, Z는 항이 지수적으로 많으므로 계산 불가능하지만 조건부확률분포값은 계산할 수 있다. 이의 이점은 원본 데이터처럼 보이는 새 데이터를 만들 수 있다는 것이다. 이는 비방향모델이므로 가측 상태도 은닉 상태에 의존하므로 볼츠만 기계에서 데이터 생성은 다른 생성적 모델보다 힘들다.

6.3.1. How a Boltzmann Machine Generates Data

볼츠만 기계에서는 깁스 샘플링(마르코프 연쇄 몬테 카를로 샘플링)을 통해 조건부분포가 평형 상태가 될 때까지 샘플링한다. 이 평형 상태에서 생성된 점들은 볼츠만 기계로 포착된 모델이 된다. 샘플링하는 데만도 평형 상태로 만드는 시간이 필요하므로 상태간 가중치를 학습하는 것도 다른 확률적 모델보다 힘들다.

6.3.2. Learning the Weights of a Boltzmann Machine

볼츠만 기계에서 로그가능도의 도함수는 <s_{i}, s_{j}>_{data} - <s_{i}, s_{j}>_{model}로 정의된다. 이는 생성 과정을 돌렸을 때 s_{i}s_{j}의 기대값에서 평형 상태에 도달했을 때 기대값을 뺀 것이다. 그러므로 업데이트를 수행하기 위해서는 두 유형의 샘플이 필요하다. 가측 상태를 학습 집합에서 무작위로 선택된 상태로 고정하고 은닉 상태는 확률 0.5로 세팅하는 데이터 기반 샘플, 무작위로 초기화된 뒤 평형에 도달할 때까지 업데이트되는 모델 기반 샘플. 이를 통해 로그가능도의 도함수를 계산한 뒤 가중치에 대한 업데이트가 이루어진다. 편향에 대한 업데이트도 비슷하다. 이는 홉필드 망에서의 헤비안 업데이트와 비슷하지만, 모델 기반 연관성을 제거했다는 것이 다르다. 단점은 느리다는 것이다.

6.4. Restricted Boltzmann Machines

볼츠만 기계에서 은닉 유닛과 가측 유닛간 연결은 임의일 수 있지만, 제한 볼츠만 기계에서는 은닉 유닛과 가측 유닛간 연결만 허용된다. 이는 하모니움이라고도 한다. 이분그래프이므로 성질도 달라진다. 하지만 비방향그래프 모델이므로 깁스 샘플링과 결정과정이 비슷하다. 이분그래프 제한은 제한 볼츠만 기계의 추론 알고리즘을 단순화하는데, 가측 유닛의 값을 다 알면 은닉 유닛의 확률을 깁스 샘플링 없이 시그모이드를 이용해 계산할 수 있다. 가중치는 은닉 유닛과 가측 유닛간 친화도를 나타낸다.

6.4.1. Training the RBM

제한 볼츠만 기계의 가중치를 계산하는 것은 볼츠만 기계에서 했던 학습 규칙과 비슷한 방식으로 이루어진다. 먼저 학습 데이터에 대해 은닉 상태의 확률을 계산하고 가측 상태-은닉 상태간 상관 관계를 계산하는 양의 상, 무작위로 초기화된 상태에서 깁스 샘플링을 수행해 평형 상태에 도달해서 최적 상태를 계산하는 음의 상, 이후 볼츠만 기계에서 썼던 업데이트 규칙을 쓴다. 여전히 몬테 카를로 샘플링을 해야 한다는 단점이 존재하는데, 효과적인 근사법이 존재한다.

6.4.2. Contrastive Divergence Algorithm

대조 발산 알고리즘은 미니배치에서 학습 데이터의 가측 상태 중 하나로 상태를 초기화한 뒤 몬테 카를로 샘플링을 한 번만 돌린다. 이를 k번 돌릴 수도 있는데 k의 값은 학습 중 점진적으로 늘릴 수 있다.

6.4.3. Practical Issues and Improvisations

대조 발산으로 제한 볼츠만 기계를 학습하는 데는 몇 가지 문제가 있다. 은닉 노드는 마지막 반복에서 확률적 값을 가져야 한다. 가측 노드는 항상 확률적 값을 가져야 한다. 이는 정확한 값은 아니지만 (정확한 값은 이진 값이므로) 근사이므로 크게 상관없으며, 노이즈를 줄이는 효과가 있다. 가중치는 평균 0, 표준편차 0.01의 가우시안으로 초기화된다. 미니배치 크기는 10-100 사이이다.

6.5. Applications of Restricted Boltzmann Machines

제한 볼츠만 기계의 용례를 알아보자. 제한 볼츠만 기계에서 노드의 상태와 신경망에서 노드의 활성함수값은 다른 것이다. 볼츠만 기계는 비지도학습에서 쓰이며 신경망의 사전학습으로도 쓰인다.

6.5.1. Dimensionality Reduction and Data Reconstruction

제한 볼츠만 기계의 가장 기본적 기능은 차원 감소와 비지도 특성 만들기이다. 제한 볼츠만 기계는 비방향 그래프 모델이지만, 이를 펴서 추론이 특정한 방향으로 일어나는 방향그래프 모델로 만들 수 있다. 이 때 층의 수는 두 배가 된다. 제한 볼츠만 기계는 \mathbf{h}에서 \mathbf{v}를 배우는 가중치와 역방향 가중치를 같이 쓰는 비방향그래프모델로 볼 수 있다. 이 때 확률적 샘플링 값을 그냥 확률값을 출력하는 신경망으로 교체해 근사할 수 있다. 즉 제한 볼츠만 기계는 역전파를 통한 미세 조정 이전 가중치를 초기화하는 좋은 예로도 볼 수 있다. 이 접근법은 제한 볼츠만 기계를 쌓은 것이 심층 자가부호화기에 대한 좋은 근사가 되므로 유용하다.

6.5.2. RBMs for Collaborative Filtering

제한 볼츠만 기계를 이용한 차원 감소는 협업 필터링 등에도 쓸 수 있다. 점수 행렬을 다루는 데에 있어 난점은 불완전하게 특정된다는 것이다. 이 때 제한 볼츠만 기계를 쓸 수 있는데, 별점은 1~5까지 이므로 값 5개를 다루는 소프트맥스 유닛으로 은닉 유닛이 대체 된다. 은닉 유닛의 이진 상태는 시그모이드를 사용해 정의할 수 있다. 이 때 다른 유저간 입력은 다를지라도 가중치는 공유된다.

Making Predictions

가중치를 학습하고 나면 예측에 쓸 수 있다. 이 때 추론을 빠르게 하기 위해 가측 노드를 예측할 때의 은닉 노드값을 은닉 노드의 확률값으로 대체할 수 있다. 이를 통해 제한 볼츠만 기계를 은닉층에 대해 로지스틱 유닛을 가지고 입력/출력층에 대해 소프트맥스 유닛을 가진 신경망으로 전환할 수 있다. 이를 역전파로 조정할 수도 있다. 이가 갖는 다양성을 통해 앙상블 방법을 쓸 수도 있다.

Conditional Factoring: A Neat Regularization Trick

제한 볼츠만 기계 기반 협업 필터링에서 과적합을 피하려면 엄청난 양의 학습 데이터가 필요하다. 이에 대한 자연적 접근은 가중치 행렬을 저랭크 행렬 인자 2개의 곱 (d x k와 k x m)으로 분해하는 것이다. 이는 전통적인 신경망에 대해서는 필요하지 않다. 유닛 k개 은닉층을 직접 중간에 넣으면 되기 때문이다.

6.5.3. Using RBMs for Classification

제한 볼츠만 기계를 분류에 사용하는 가장 흔한 방법은 비지도 사전학습에서이다. 이는 쌓은 제한 볼츠만 기계에서도 쓸 수 있다. 하지만 더 좋은 방법이 있는데, 분류 문제를 일종의 협업 필터링으로 보는 것이다. 이 때 분류 문제를 푸는 제한 볼츠만 기계는 다음과 같이 정의한다: 가측 유닛은 특성과 클래스에 각각 대응하는 2가지 타입의 노드를 포함한다. 은닉 유닛은 m개의 이진 유닛으로 이루어진다. 클래스에 대응하는 가측 노드를 예측할 때는 시그모이드가 아니라 소프트맥스를 써야 한다. 이외에는 협업 필터링과 같다. 하지만 이는 생성적 접근법이지 구별적 접근법이 아니기 때문에, 결합확률분포 대신 조건부확률분포를 최적화시키는 식으로 제한 볼츠만 기계를 구별적 접근법으로 다룰 수 있다.

6.5.4. Topic Models with RBMs

토픽 모델링은 텍스트에 대한 차원 감소 중 하나로 볼 수 있다. 이는 각 문서마다 제한 볼츠만 기계가 만들어지는 협업 필터링으로 볼 수 있다. t번째 문서에 n_{t}개의 단어가 있을 때 n_{t}개의 소프트맥스 그룹이 만들어진다. 이는 각각 사전의 d개의 단어에 대응하는 d개의 노드를 포함한다. 은닉 유닛은 d보다 훨씬 작은 m개로 구성된다. 이는 n_{t} \times d 가측 유닛 각각에 연결된다. 즉, k번째 은닉 유닛은 동일한 가중치 \mathbf{W}_{k}를 통해 d개의 소프트맥스 유닛 중 n_{t} 그룹 각각에 연결된다. 이 관계를 통해 마르코프 연쇄 몬테 카를로 샘플링을 적용해 대조 발산 알고리즘에 필요한 은닉/가측 상태의 표본을 추출할 수 있다. 학습이 수행된 이후 각 문서의 감소된 표현식은 은닉 노드의 확률을 각각 구해서 알 수 있다.

6.5.5. RBMs for Machine Learning with Multimodal Data

볼츠만 기계는 다최빈값 데이터를 가진 기계 학습에도 쓸 수 있다. 이의 주된 난점은 특성이 불균질하다는 것인데 이는 공유 행렬 분해를 사용해 해결한다. 이는 같은 은닉유닛으로 이미지와 텍스트 특성을 모두 매핑시킬 수도 있다. 이것이 부족하다면 이미지, 텍스트 각각에 은닉층을 더할 수도 있다. 다최빈값 데이터의 또 다른 난점은 특성이 이진이 아니라는 것이다.

6.6. Using RBMs Beyond Binary Data Types

지금까지는 이진 특성에 대한 제한 볼츠만 기계를 알아보았다. 이진 특성이 아닌 범주/이산 특성은 가측 유닛의 확률분포를 바꿔서 해결할 수 있다. 실변수 특성에 대해서는 가우시안 가측 유닛을 사용한다. 은닉 유닛도 실변수이고 ReLU 활성함수를 갖는다. 이 때 가측 유닛의 표준편차값에 따라 가측 유닛의 업데이트는 느리고 은닉 유닛의 업데이트는 너무 빠를 수 있는데, 은닉 유닛을 더 많이 쓰거나 입력 데이터의 표준편차를 표준화할 수 있다.

6.7. Stacking Restricted Boltzmann Machines

제한 볼츠만 기계도 쌓아서 이점을 얻을 수 있나? 일단 경사 하강이나 폭발 문제는 없다. 제한 볼츠만 기계는 층의 개수가 2배인 방향그래프 모델, 즉 자가부호화기로 환원할 수 있다. 이 접근법을 쌓은 제한 볼츠만 기계로도 확장하면 된다. 이를 지도학습에 쓰이는 신경망의 사전학습으로 쓴 뒤 마지막에 역전파로 미세 조정만 할 수도 있다.

6.7.1. Unsupervised Learning

비지도학습에서는 층을 많이 쌓은 것이 일반적으로 좋은 성능을 내지만 층을 많이 쌓기만 한다고 되는 것은 아니다. 사전학습적 방법으로 학습해야 한다.

6.7.2. Supervised Learning

분류 같은 지도학습은 쌓은 제한 볼츠만 기계로 어떻게 할 수 있을까? 예컨대 분류 같은 경우 마지막 은닉층을 k개 유닛을 가진 층으로 하면 된다.

6.7.3. Deep Boltzmann Machines and Deep Belief Networks

어떤 방식으로 쌓으면 다른 볼츠만 기계간 상호작용이 양방향이 될 수 있는데 이를 심층 볼츠만 기계라 한다. 일부는 단방향이고 나머지는 양방향으로 만든 것은 심층 믿음 망이라 한다. 심층 볼츠만 기계는 단일 볼츠만 기계와 같으나 (홀수 층과 짝수 층으로 나뉜 이분그래프를 생각하면 된다), 가측 유닛은 한 층의 일부 유닛들뿐이고 낮은 층부터 탐욕적으로 사전학습을 해야 한다는 것이 다르다.

6.8. Summary

볼츠만 기계의 최초 버전은 홉필드 망이었다. 홉필드 망은 에너지 기반 모델로 학습 데이터 인스턴스를 극소값에 저장한다. 홉필드 망은 헤비안 학습 규칙으로 학습된다. 홉필드 망의 추계적 변형은 볼츠만 기계로, 확률적 모델을 사용해 더 좋은 일반화를 이룬다. 볼츠만 기계의 은닉 상태는 데이터의 감소된 표현을 가진다. 볼츠만 기계는 헤비안 학습 규칙의 추계적 변형으로 학습될 수 있다. 볼츠만 기계에서의 주된 난점은 깁스 샘플링을 필요로 하는데 이것이 느리다는 것이다. 제한된 볼츠만 기계는 은닉 노드와 가측 노드간의 연결만을 허용해 학습 과정을 쉽게 한다. 제한 볼츠만 기계에는 더 효율적인 학습 알고리즘이 가능하다. 제한 볼츠만 기계는 차원 감소 방법으로 쓰일 수 있다. 이는 불완전한 데이터의 추천 시스템으로도 쓰일 수 있다. 제한 볼츠만 기계는 범주 데이터와 실변수 데이터로도 일반화될 수 있다. 하지만, 절대 다수의 제한 볼츠만 기계는 이진 유닛이라는 가정하에 만들어진다. 최근에는 제한 볼츠만 기계의 여러 심층 변형이 제안되었으며, 이는 분류 같은 전통적 기계 학습 용례에도 쓰일 수 있다.

6.9. Bibliographic Notes

관련된 여러 문헌이 존재한다.

답글 남기기

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

WordPress.com 로고

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

Google photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중