20. Deep Generative Models

심층 생성적 모델을 알아보자.

20.1. Boltzmann Machines

볼츠만 기계는 이진 벡터에 대한 임의의 확률밀도함수를 학습하기 위한 일반적인 연결적 접근법으로 알려져 왔다. 이는 d차원 이진 확률밀도함수 벡터 위에서의 에너지 기반 모델이다. 이는 관측된 변수들간 상호작용을 가중치 행렬로 묘사되는 것들로만 제한시킨다. 그러나 볼츠만 기계는 모든 변수가 관측되는 것은 아닐 때 더 강력해진다. 이 때 에너지 함수는 관측 가능한 변수와 은닉 변수로 나눌 수 있다. 볼츠만 기계에서의 학습 알고리즘은 대개 최대가능도에 기반한다. 흥미로운 점은 두 유닛을 연결하는 가중치를 업데이트할 경우 이는 두 유닛에만 의존한다는 점이다. 이들 외의 정보를 학습 시 사용하는 알고리즘은 다른 사전지식의 존재를 근거한다. 볼츠만 기계 학습의 음위상은 생물학적으로 설명하기엔 더 어렵다.

20.2. Restricted Boltzmann Machines

하모니움이라는 이름으로 발명된 제한 볼츠만 기계는 심층 확률적 모델의 가장 흔한 구성 요소 중 하나이다. 이 때 에너지 함수는 E(\mathbf{v}, \mathbf{h}) = -\mathbf{b}^{T} \mathbf{v} - \mathbf{c}^{T} \mathbf{h} - \mathbf{v}^{T} \mathbf{W} \mathbf{h}로 주어진다. 일반적으로 분할 함수는 계산 불가능하다.

20.2.1. Conditional Distribution

P(\mathbf{v})은 계산 불가능하지만, 제한 볼츠만 기계는 이분그래프이므로 P(\mathbf{h} | \mathbf{v})P(\mathbf{v} | \mathbf{h})은 계산하기 간단하고 샘플링하기도 쉽다. P(\mathbf{h} | \mathbf{v}) = \prod_{j=1}^{n_{h}} \sigma((2 \mathbf{h} - 1) \odot (\mathbf{c} + \mathbf{W}^{T} \mathbf{v}))_{j} , P(\mathbf{v} | \mathbf{h}) = \prod_{i=1}^{n_{v}} \sigma((2 \mathbf{v} - 1) \odot (\mathbf{b} + \mathbf{W} \mathbf{h}))_{i} 이다.

20.2.2. Training Restricted Boltzmann Machines

이는 계산 불가능할 분할 함수를 가진 모델을 학습시키는 일반적인 방법들을 써서 학습할 수 있다.

20.3. Deep Belief Networks

심층 믿음 망(DBN)은 심층 구조를 가진 최초의 비 컨볼루셔널 모델 중 하나이다. 이는 l개의 은닉 변수 층을 가진 생성적 모델이며, 가중치 행렬 l개와 편향 벡터 l + 1개를 갖는다. 표본을 추출하기 위해서는 깁스 샘플링을 위의 층 2개에 대해서 몇 번 수행한 뒤 나머지에 대해 조상 샘플링을 수행한다. 심층 믿음 망은 방향그래프 모델에서도 비방향그래프 모델에서도 쓰일 수 있으며 은닉 층간 상호작용이 비방향 간선을 가질 수 있으므로 추론이나 증거도 하한은 계산 가능하지 않다. 그래서 대조 발산이나 추계적 최대 가능도를 각각 층에 연속적으로 사용한다. 심층 믿음 망을 한 번에 학습하려는 시도는 완수도니 바 없으나 깨우기-수면 알고리즘과 미세 조정의 접근법은 가능하다. 학습된 심층 믿음 망은 생성적 모델로 직접 쓰일 수는 없으나 분류 모델을 개선시킬 수는 있다. 이로부터 다층 퍼셉트론을 유도할 수 있다. 심층 믿음 망의 로그 가능도는 계산 불가능하지만, 이는 근사 가능하므로 생성적 모델로의 역량도 평가할 수 있다. 심층 믿음 망이라는 말은 최심층에 비방향 연결이 있고 다른 층간에는 방향 연결이 존재하고 잠재 변수가 있는 모델에만 쓰여야 한다.

20.4. Deep Boltzmann Machines

심층 볼츠만 기계는 다른 종류의 심층 생성적 모델로, 완전히 비방향적인 모델이다. 이는 역시 이진 유닛만을 가지는 에너지 기반 모델이며 에너지 함수에서 은닉 유닛간 연결도 포함한다. 제한 볼츠만 기계와 같이, 심층 볼츠만 기계는 이분그래프 구조를 가지므로 이로 인해 오는 이득도 갖는다. 이는 제한 볼츠만 기계에서 썼던 식도 재활용할 수 있고 깁스 샘플링도 가능케 한다.

20.4.1. Interesting Properties

심층 볼츠만 기계는 심층 믿음 망에 비해 사후분포가 더 간단하다. 또한, 근사적 추론 과정이 하방 피드백 상호작용의 영향력을 포착할 수 있게 해 준다. 그리고, 샘플링은 상대적으로 어렵다.

20.4.2. DBM Mean Field Inference

심층 볼츠만 기계 층에서 인접 층간 조건부 분포는 인수분해 가능하다. 또한, 은닉 층간 사후분포는 변분 근사, 구체적으로 인자 각각이 베르누이 분포인 평균 장 근사를 쓰면 쉽게 근사 가능하다.

20.4.3. DBM Parameter Learning

심층 볼츠만 기계에 대한 학습은 계산 불가능한 분할 함수와 계산 불가능한 사후분포 문제를 모두 고려해야 한다. 이는 근사 분포 Q(\mathbf{h} | \mathbf{v})의 형성과 \mathcal{L}(\mathbf{v}, Q, \mathbf{\theta})의 최대화를 통해 이루어진다.

20.4.4. Layer-Wise Pretraining

무작위 초기화를 통한 추계적 최대 가능도를 이용해 심층 볼츠만 기계를 학습하는 것은 실패하기 쉽다. 그래서 실제로는 탐욕적 층별 사전학습 기법이 쓰인다. 이는 단순한 좌표 상승법이 아니다. 각 단계에서 다른 목적 함수를 사용하기 때문이다. 심층 볼츠만 기계와 심층 믿음 망의 탐욕적 층별 사전학습 기법은 다르다. 최상의 성능을 얻기 위해서는 음위상에서 약간의 평균 장 근사를 사용해야 한다.

20.4.5. Jointly Training Deep Boltzmann Machines

전통적 심층 볼츠만 기계는 학습 중 성능을 추적하기 힘들다. 이를 극복하기 위해서 비용 함수의 헤시안을 더 잘 조건을 거는 중앙화 심층 볼츠만 기계와 다른 학습 기준을 사용하는 다중 예측 심층 볼츠만 기계 등을 사용한다. 중앙화 방식은 증진 경사라고 불리는 다른 기법과 동치이다. 다중 예측 방식은 평균 장 식들을 모든 가능한 추론 문제를 푸는 순환 망의 모임으로 간주해 이 순환 망 각각이 정답을 각각 구하도록 학습시킨다. 근사 추론을 위한 계산 그래프에서의 역전파는 다른 모델에도 쓰일 수 있다. 추론 그래프에서의 역전파에는 두 가지 이점이 있는데, 첫째로 모델이 사용되는 방식과 똑같이 학습시킬 수 있고, 둘째로는 손실 함수의 정확한 근사를 계산할 수 있다. 다중 예측 심층 볼츠만 기계는 드롭아웃과도 연관이 있다.

20.5. Boltzmann Machines for Real-Valued Data

이진 변수가 아닌 실변수 데이터에 대한 볼츠만 기계를 알아보자.

20.5.1. Gaussian-Bernoulli RBMs

가장 흔한 방식은 이진 은닉 유닛과 실변수 가측 유닛을 쓰는 것이다. 이를 가우시안-베르누이 제한된 볼츠만 기계로 불리며 이를 매개화하는 방식엔 여러 방법이 있다.

20.5.2. Undirected Models of Conditional Covariance

가우시안 제한 볼츠만 기계의 연역적 편향은 자연 이미지같은 경우에는 잘 맞지 않는다. 이런 경우에는 픽셀의 값 그 자체보다는 픽셀간 공분산에 많은 정보가 담겨 있기 때문이다. 이를 대처하기 위해서는 평균/공분산 제한 볼츠만 기계, 평균 스튜던트 t-곱분포, 쐐기 제한 볼츠만 기계 등의 다른 모델을 사용한다. ssRBM의 단점은 매개변수를 잘못 정하면 공분산이 양의 정칙이 아니게 될 수 있다는 점이다. 이의 컨볼루션 버전은 이미지에 대해 잘 동작하며, 이 외에도 여러 확장이 있다.

20.6. Convolutional Boltzmann Machines

이미지와 같은 고차원 입력에 대해서는 행렬곱을 이산 컨볼루션으로 바꿔 연산량 문제를 대처한다. 심층 컨볼루션 망은 대개 풀링 연산을 필요로 하지만, 이를 에너지 기반 모델로 확장하기 위해서는 확률적 최대 풀링이라는 해법을 필요로 한다. 이는 적절히 쓰이면 관측 유닛들간에 상호 배타적으로 만들 수 있으며 컨볼루션 심층 볼츠만 기계를 만드는 데도 쓰일 수 있다. 많은 컨볼루션 모델은 가변 공간 크기를 가진 입력들에 대해서도 쓰일 수 있다. 이 때 이미지의 경계 부분을 모델링하기 위해서는 입력에 대해 묵시적으로 0을 패딩하는 것이 필요하다.

20.7. Boltzmann Machines for Structured or Sequential Outputs

구조화된 출력이 존재하거나 순차적 모델링을 해야 하는 경우에도 볼츠만 기계를 쓸 수 있다. 예를 들면 3D 캐릭터 렌더링 등이나 음악 작곡 등. 이에는 RNN-RBM 순차 모델이 쓰인다.

20.8. Other Boltzmann Machines

볼츠만 기계는 다른 학습 기준으로 확장될 수 있다. 그러나 실제로는 대개 에너지 함수간 이차 상호작용까지만을 가진다. 일반적으론 볼츠만 기계 프레임워크에는 훨씬 많은 종류의 모델이 있다.

20.9. Back-Propagation through Random Operations

전통적 신경망은 결정론적인 함수에 대해서만 쓰이나, 이를 추계적 함수로도 확장할 수 있다. 이 때 추계적 함수에 대한 표본을 구해 이 표본으로의 함수에 대해 역전파를 수행해 무작위 연산에 대한 역전파를 수행하는 것을 재매개화 트릭, 추계적 역전파, 섭동 해석으로 불린다. 이 표본 확률변수는 당연히 미분 가능해야 한다.

20.9.1. Back-Propagation through Discrete Stochastic Operations

이산적 추계적 연산에 대해서는 REINFORCE 알고리즘이 많이 쓰이며, 가장 간단한 버전은 비용함수의 기대값을 미분하는 것으로부터 유도된다. 이는 분산이 높기 때문에 베이스라인의 계산을 포함하는 분산 감소 기법을 사용한다. 이를 더 발전시킨 분산 표준화 기법도 있다. REINFORCE 기반 추정자는 표본을 대응되는 비용함수값과 상관시켜서 경사를 추정하는 것으로 이해할 수 있다.

20.10. Directed Generative Nets

방향그래프형 생성적 망을 알아보자.

20.10.1. Sigmoid Belief Networks

시그모이드 믿음 망은 가장 간단한 그래프 모델로서, 이진 상태 벡터에서 각 상태가 그 조상들에 대해 시그모이드 함수로 영향을 받는 것으로 생각할 수 있다. 가장 흔한 구조는 여러 층으로 나뉘어서 조상 샘플링을 층별로 수행해 최종적으로 가측 층까지 도달한다. 가측 유닛의 표본을 생성하는 것은 시그모이드 믿음 망에서는 매우 효율적이지만 다른 연산들은 그렇지 않다. 추론을 수행할 때는 시그모이드 믿음 망에 특화된 하한을 사용한다. 잠재 변수가 없는 경우에는 학습이 더 효율적이다.

20.10.2. Differentiable Generator Networks

많은 생성적 망은 미분 가능한 생성자 망의 발상을 쓴다. 이는 잠재 변수 표본을 이용해 입력 변수를 샘플링하거나 샘플에 대한 분포를 구하기 위해 쓴다. 이는 근본적으로는 그저 표본을 생성하기 위한 매개화된 계산 과정일 뿐이다. 유사난수 생성기들도 역변환 샘플링 등의 기법을 사용할 수 있다. 생성자 망을 만들어 내는 두 가지 방법 – 직접 표본을 추출하거나 조건부 분포의 매개변수를 추출하거나 – 은 각각 장단이 있다. 직접 표본 추출은 연속적인 데이터만 다룰 수 있지만, 조건부 분포만 사용해야 할 필요가 없다는 장점이 있다. 미분 가능한 생성자 망 기반 접근법은 분류에 심층 피드포워드 망을 썼을 때 경사 하강법이 성공적으로 작용했다는 것에 착안하였다. 생성적 모델링은 분류나 회귀보다 어려운데, 학습 과정에서 계산 불가능한 기준을 최적화해야 하기 때문이다. 미분 가능한 생성자 망들은 생성적 모데로서 좋은 성능을 낸다.

20.10.3. Variational Autoencoders

변분 자가부호화기(VAE)는 학습된 근사 추론을 사용하는 방향 모델이다. 이는 경사 기반 방법만으로도 학습될 수 있다. 이는 부호화 분포로부터 표본을 추출하고 표본은 미분가능한 생성자 망에 들어간 뒤 이 결합분포로부터 표본이 추출된다. 핵심 아이디어는 데이터 표본과 결합된 변분 하한을 최대화함으로써 이를 학습할 수 있다는 것이다. 변분 추론에 대한 전통적 최적화 방식은 반복 고정점 방정식이었으나, 변분 자가부호화기는 경사 하강법을 사용해 구현하기 쉽다. 변분 자가부호화기의 복잡한 버전으로 심층 순환 주의 작가(DRAW) 모델이 있다. 변분 자가부호화기는 가중치를 다르게 써서 중요도 가중치 자가부호화기를 만들어낼 수도 있다. 변분 자가부호화기는 임의의 계산 그래프에 대해 적용될 수 있으므로 적용 범위가 더 넓다. 또한, 매개화된 부호화기를 생성자 망과 함께 학습시키므로 모델이 부호화기가 포착할 수 있는 예측가능한 좌표계를 학습하는 것을 가능케 한다.

20.10.4. Generative Adversarial Networks

생성적 대립쌍 망은 생성자 망과 감별자 망의 제로섬 미니맥스 게임을 통해 표본을 생성하는 망이다. 이의 주 아이디어는 학습 과정이 근사 추론이나 근사 분할 함수 경사를 필요로 하지 않는다는 것이다. 하지만 매개변수가 신경망에 의해 나타내어지고 최대값 항이 볼록이 아닌 경우에는 실제로 학습하기는 힘들다. 이를 달리 표현하면 학습 과정이 제로섬 게임이 아니면서 동일한 결과를 내게 할 수 있다. 실제로 가장 잘 동작하는 버전은 제로섬 게임도 아니고 최대가능도 버전도 아니다. GAN 학습을 안정화시키는 방법은 발견되지 않았다. GAN 학습은 생성 과정을 여러 층으로 쪼개 단순화할 수 있다. GAN 학습 과정의 비범한 역량 중 하나는 학습 표본에 0의 확률을 부여할 수 있는 확률분포를 학습할 수 있다는 것이다. 감별자 망에서는 드롭아웃이 중요하다. GAN 프레임워크에서 쓰인 기법은 자가지도 부스팅 등 다른 방법에도 쓸 수 있다.

20.10.5. Generative Moment Matching Networks

생성적 모멘트 매칭 망은 미분 가능한 생성자 망에 기반한 다른 형태의 생성적 모델이다. 이는 모멘트라는 통게량을 매칭하는 모멘트 매칭을 통해 학습된다. 이는 계산 불가능해 보이지만, 최대 평균 불일치를 최소화하는 기법을 통해 이를 우회할 수 있다. 생성적 모멘트 매칭 망으로부터의 표본은 그렇게 유용하지 않으나, 이는 자가부호화기를 결합해 개선될 수 있다. GAN과는 달리, 목적 함수는 학습 집합과 생성자 망 모두로부터의 표본에 의존한다. GAN처럼, 생성적 모멘트 매칭 망은 학습 표본에 0의 확률을 부여할 수 있는 분포를 학습할 수 있다.

20.10.6. Convolutional Generative Networks

이미지를 생성할 때에는 컨볼루션 구조를 포함한 생성자 망을 쓰는 것이 유용하다. 인식 작업에 대한 컨볼루션 망은 이미지로부터 망의 맨 위에 있는 요약 층으로의 정보 흐름을 가지고 있다.

20.10.7. Auto-Regressive Networks

자가회귀 망은 은닉 확률변수가 없는 방향 확률모델이다. 이는 완전 가측 베이즈 망이라고도 한다.

20.10.8. Linear Auto-Regressive Networks

자가회귀 망의 가장 간단한 형태는 은닉 유닛이 없고 특성이나 매개변수 공유가 없는 버전이다. 각 조건부분포를 선형으로 한 경우가 가장 간단한데, 변수들이 연속이라면 이 모델은 다변수 가우시안과 비슷하다. 선형 자가회귀 망은 선형 분류 법을 생성적 모델링으로 일반화한 것이라 볼 수 있다.

20.10.9. Neural Auto-Regressive Networks

신경 자가회귀 망은 그래프 모델 구조에서 조건부 분포에 다른 매개화를 사용하는 자가회귀 망이다. 이 때 조건부분포의 매개화는 신경망이며, 여러 망은 하나로 합쳐질 수 있다.

20.10.10. NADE

신경 자가회귀 밀도 추정자(NADE)는 신경 자가회귀 망의 성공적인 변형으로, 추가 매개변수 공유 기법을 적용시킨다. 이는 평균 장 추론에서 수행되는 기법을 느슨하게 닮았다. 자가 회귀 망은 연속된 값을 처리하도록 확장할 수 있다. 또 다른 흥미로운 점은 관측 변수에 대해 임의로 순서를 조정해야 할 필요를 없앤다는 것이다. 이 구조를 심층으로 확장시킬수도 있지만 연산량이 너무 많아진다.

20.11. Drawing Samples from Autoencoders

자가부호화기로부터 표본을 추출하려면 조상 샘플링이나 MCMC 샘플링을 이용한다. 수축 자가부호화기를 쓸 수도 있다.

20.11.1. Markov Chain Associated With Any Denoising Autoencoder

어떤 노이즈를 주입하고 분포를 생성할 수 있는 마르코프 연쇄를 어디서 얻을지에 대한 문제의 답은 나오지 않았다. 다만 일반화된 잡음 제거 자가부호화기라는 기법이 있다. 이는 잡음 주입-암호화-복호화-샘플링의 과정을 연속적으로 거친다.

20.11.2. Clamping and Conditional Sampling

볼츠만 기계와 비슷하게, 잡음 제거 자가부호화기나 그 일반화는 조건부분포로부터 샘플링을 할 수 있는데, 관측된 유닛을 클램핑하고 이것과 추출된 잠재 변수가 주어졌을 때 자유 유닛을 재샘플링하는 방식으로 가능하다. 이 때 전이 연산자는 세부 균형이라는 조건, 즉 평형 상태의 마르코프 연쇄가 전이 연산자 이후에도 평형이어야 한다는 조건이 필요하다.

20.11.3. Walk-Back Training Procedure

되걸음 학습 과정은 잡음 제거 자가부호화기의 생성적 학습의 수렴을 가속하는 방식이다. 이는 추계적 암호화-복호화 과정을 거치고 마지막 확률적 재구성을 징벌한다. 이는 거짓 데이터를 제거하는 데 더 효과적이다.

20.12. Generative Stochastic Networks

생성적 추계 망(GSN)은 잡음 제거 자가부호화기를 생성적 마르코프 연쇄에 잠재 변수를 포함하도록 일반화한 것이다. 이는 새 가측 변수를 생성하는 분포와 잠재 변수를 업데이트하는 분포 둘로 매개화된다. 이 때 가측 변수와 잠재 변수의 결합분포는 묵시적으로 정의된다. 학습 기준은 바뀔 수도 있다. 되걸음 학습 과정 또한 학습을 가속시킬 수 있다.

20.12.1. Discriminant GSNs

생성적 추계 망의 원 표현은 비지도학습을 위해 고안되었지만, 생성적 모델링을 위해서도 쓰일 수 있다. 이는 전이 연산자를 컨볼루션으로 구성할 수도 있다. 이 때 마르코프 연쇄는 출력 변수에 대한 연쇄가 된다. 지도 비용함수와 비지도 비용함수를 단순히 더하는 것만으로 혼성 모델을 만들 수 있다.

20.13. Other Generation Schemes

다른 생성 기법들로는 확산 반전, 근사 베이지안 계산(ABC) 등이 있다.

20.14. Evaluating Generative Models

생성적 모델을 어떻게 평가할 것인가? 이는 어렵고 미묘한 문제이다. 평가 지표 자체가 구하기 어려울 수 있기 때문이다. 또한, 생성적 모델은 데이터 전처리도 불가능하다. 전처리 후 모델을 평가하려면 똑같은 전처리를 거친 다른 모델과 비교해야만 한다. 실제로는 생성적 모델을 표본들을 봄으로써 평가하기도 한다. 이는 믿을 만한 지표가 아니기 때문에 모델이 테스트 데이터에 부여하는 로그 가능도를 평가하기도 한다. 모델의 의도된 사용법에 근거한 평가 지표를 선택하는 것이 중요하다.

20.15. Conclusion

은닉 유닛이 있는 생성적 모델을 학습하는 것은 모델이 주어진 학습 표본으로 표현된 세계를 학습하게 하는 강력한 도구이다.

답글 남기기

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

WordPress.com 로고

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

Google photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중