변형 자동 엔코더 란 무엇이며 어떤 학습 작업에 사용됩니까?


24

대답 autoencoders는 차원 감소를 위해 신경 네트워크를 사용하는 기술이 될 것으로 보인다. 또한 가변 자동 인코더 ( "기존"자동 인코더에 대한 주요 차이점 / 이점)와이 알고리즘이 사용되는 주요 학습 작업이 무엇인지 알고 싶습니다.

답변:


37

VAE (variational autoencoder)는 구현 및 학습이 쉽지만 딥 러닝 및 변형 베이의 개념을 혼합하고 딥 러닝 및 확률 적 모델링 커뮤니티가 동일한 개념에 대해 서로 다른 용어를 사용하기 때문에 간단하게 설명 할 수는 없습니다. 따라서 VAE를 설명 할 때 통계 모델 부분에 집중하여 독자가 실제로이를 구현하는 방법에 대한 실마리를 남기지 않거나 네트워크 아키텍처 및 손실 기능에 집중할 수있는 위험이 있습니다. 얇은 공기를 빼냅니다. 모델부터 시작하여 실제로 실제로 구현하거나 다른 사람의 구현을 이해하기에 충분한 세부 정보를 제공하면서 중간 단계를 시도합니다.

VAE는 생성 모델입니다

VAE는 클래식 (스파 스, 노이즈 제거 등) 자동 인코더와 달리 GAN 과 같은 생성 모델입니다. 생성 모델을 사용 하면 입력 공간 x에 대한 확률 분포 p(x) 를 학습하는 모델을 의미합니다 . 이것은 우리가 그러한 모델을 훈련시킨 후에 p ( x ) 에서 (우리의 근사치) 샘플링 할 수 있음을 의미합니다 . 학습 세트가 MNIST (필기 숫자)로 구성된 경우, 훈련 후 생성 모델은 트레이닝 세트의 이미지를 "복사"하지 않더라도 필기 숫자처럼 보이는 이미지를 만들 수 있습니다.xp(x)

28×28=784

VAE는 잠재 변수 모델입니다

xzZx784 픽셀 강도의 대부분의 임의 배열로 인해 손으로 쓴 숫자처럼 보이지 않습니다. 직관적으로 우리는 차원이 최소한 10 (숫자 수)이 될 것으로 예상하지만 각 숫자가 다른 방식으로 쓰여질 수 있기 때문에 더 클 것입니다. 최종 이미지의 품질 (예 : 전역 회전 및 변환)에는 중요한 차이가 있지만 다른 것도 중요합니다. 따라서이 경우 잠재 모델이 적합합니다. 이것에 대해서는 나중에 더 설명하겠습니다. 놀랍게도 직관에 따르면 차원이 약 10이어야한다고 말하더라도 MNIST 데이터 세트를 VAE로 인코딩하기 위해 2 개의 잠재 변수를 확실히 사용할 수 있습니다 (결과는 좋지 않습니다). 그 이유는 하나의 실수 변수조차도 가능한 많은 정수 값 등을 가정 할 수 있기 때문에 무한히 많은 클래스를 인코딩 할 수 있기 때문입니다. 물론 클래스가 MNIST의 9 및 8 또는 7 및 I과 같이 클래스가 크게 겹치면 두 개의 잠재 변수 중 가장 복잡한 기능조차도 각 클래스에 대해 명확하게 식별 가능한 샘플을 생성하는 데 실패합니다. 이것에 대해서는 나중에 더 설명하겠습니다.

VAE는 다변량 모수 분포 (여기서 는 의 매개 변수 임)을 가정하고 다변량 분포. 에 대한 매개 변수 pdf를 사용 하면 VAE의 매개 변수 수가 훈련 세트의 성장에 국한되지 않고 성장하지 못하게하는 것을 VAE 링고에서 할부 상환 이라고합니다 (예, 알고 있습니다 ...).q(z|x,λ)λqz

디코더 네트워크

여기에 이미지 설명을 입력하십시오

VAE는 생성 모델이기 때문에 디코더 네트워크에서 시작하며 실제로 새로운 이미지를 생성하는 데 사용되는 VAE의 유일한 부분은 디코더입니다. 인코더 네트워크는 추론 (훈련) 시간에만 사용됩니다.

디코더 네트워크의 목표는 입력 공간 속하는 새로운 랜덤 벡터 , 즉 잠재적 벡터 실현에서 시작하여 새로운 이미지를 생성하는 것 입니다. 이는 조건부 분포 반드시 배워야한다는 것을 의미합니다 . VAE의 경우이 분포는 종종 다변량 가우스 1로 가정됩니다 .xXzp(x|z)

pϕ(x|z)=N(x|μ(z;ϕ),σ(z;ϕ)2I)

ϕ 는 인코더 네트워크의 가중치 (및 바이어스)로 구성된 벡터입니다. 벡터 및 복잡한 알려지지 비선형 함수 신경망은 강력한 비선형 함수 근사치입니다.μ(z;ϕ)σ(z;ϕ)


의견에서 @amoeba가 지적했듯이 디코더와 고전적인 잠재 변수 모델 : 요인 분석 사이에는 놀라운 유사성이 있습니다. 요인 분석에서 모형을 가정합니다.

x|zN(Wz+μ,σ2I), zN(0,I)

두 모델 (FA 및 디코더) 은 잠복 변수 에서 관측 가능한 변수 의 조건부 분포 가 가우시안이고 자체가 표준 가우시안이라고 가정합니다. 차이는 디코더의 평균 가정하지 않는다는 점이다 선형 인 없으며, 표준 편차는 상수 벡터 인 것으로 가정한다. 반대로, 의 복잡한 비선형 함수로 모델링합니다 . 이와 관련하여 비선형 요인 분석으로 볼 수 있습니다. 여기를 참조 하십시오xzzp(x|z)zzFA와 VAE 간의 이러한 연결에 대한 통찰력있는 토론 등방성 공분산 매트릭스를 갖는 FA는 단지 PPCA이기 때문에, 이것은 선형 오토 인코더가 PCA로 감소한다는 잘 알려진 결과와 관련이있다.


디코더로 돌아가 봅시다 : 어떻게 배우 나요? 직관적으로 우리 는 학습 에서 를 생성 할 가능성을 최대화하는 잠재적 변수 를 . 다시 말해 , 데이터가 주어지면 의 사후 확률 분포를 계산하려고합니다 .ϕzxiDnz

p(z|x)=pϕ(x|z)p(z)p(x)

우리는 이전에 가정하고 , 베이지안 추론에서 ( 증거 ) 계산이 어렵다는 일반적인 문제가 남아 있습니다 ( 다차원 적분). 게다가 여기서 을 알 수 없기 때문에 어쨌든 계산할 수 없습니다. Variational Autoencoders에 이름을 부여하는 도구 인 Variational Inference를 입력하십시오.N(0,I)zp(x)μ(z;ϕ)

VAE 모델의 변형 추론

변형 추론은 매우 복잡한 모델에 대해 대략적인 베이지안 추론을 수행하는 도구입니다. 지나치게 복잡한 도구는 아니지만 이미 답변이 너무 길어서 VI에 대한 자세한 설명을 보지 않겠습니다. 궁금한 점이 있다면이 답변과 그 안의 참고 문헌을 살펴볼 수 있습니다.

/stats//a/270569/58675

VI가 파라 메트릭 분포 군 에 대한 근사값을 찾습니다. , 전술 한 바와 같이, 여기서 패밀리의 파라미터이다. 목표 분포 와 사이의 Kullback-Leibler 발산을 최소화하는 모수를 찾습니다 :p(z|x)q(z|x,λ)λp(z|x)q(z|x,λ)

minλD[p(z|x)||q(z|x,λ)]

다시 말하지만 Kullback-Leibler 분기의 정의에 증거가 포함되어 있기 때문에이를 직접 최소화 할 수 없습니다. ELBO (Evidence Lower BOund)를 소개하고 대수적 조작을 마친 후에 마침내 다음과 같은 결과를 얻습니다.

ELBO(λ)=Eq(z|x,λ)[logp(x|z)]D[(q(z|x,λ)||p(z)]

ELBO는 증거에 대한 하한값이므로 (위 링크 참조) ELBO를 최대화하는 것은 주어진 데이터의 가능성을 최대화하는 것과 정확히 같지 않습니다 (결국 VI는 베이지안 추정에 대한 대략적인 도구 임). 그러나 올바른 방향으로 진행됩니다.λ

추론하기 위해서는 파라 메트릭 패밀리 합니다. 대부분의 VAE에서 다변량 비 상관 가우시안 분포를 선택합니다q(z|x,λ)

q(z|x,λ)=N(z|μ(x),σ2(x)I)

와 동일한 선택 이지만 다른 파라 메트릭 패밀리를 선택했을 수도 있습니다. 이전과 같이 신경망 모델을 도입하여 이러한 복잡한 비선형 함수를 추정 할 수 있습니다. 이 모델은 입력 이미지를 받아들이고 잠재 변수 분포의 매개 변수를 반환하기 때문에이를 엔코더 네트워크 라고합니다 . 이전과 같이 신경망 모델을 도입하여 이러한 복잡한 비선형 함수를 추정 할 수 있습니다. 이 모델은 입력 이미지를 받아들이고 잠재 변수 분포의 매개 변수를 반환하기 때문에이를 엔코더 네트워크 라고합니다 .p(x|z)

엔코더 네트워크

추론 네트워크 라고도 하며 훈련 시간에만 사용됩니다.

여기에 이미지 설명을 입력하십시오

위에서 언급했듯이 인코더는 및 근사해야합니다 . 따라서 24 개의 잠재 변수가있는 경우 인코더는 벡터입니다. 인코더는 무게 (편견)이 . 을 학습하기 위해 엔코더 및 디코더 네트워크 의 매개 변수 및 과 훈련 설정 점으로 ELBO를 작성할 수 있습니다 .μ(x)σ(x)d=48θθθϕ

ELBO(θ,ϕ)=iEqθ(z|xi,λ)[logpϕ(xi|z)]D[(qθ(z|xi,λ)||p(z)]

마침내 결론을 내릴 수 있습니다. 및 의 함수로서 ELBO의 반대 는 VAE의 손실 함수로 사용됩니다. 우리는이 손실을 최소화하기 위해 SGD를 사용합니다. 즉, ELBO를 최대화합니다. ELBO는 증거의 하한이므로, 이것은 증거를 최대화하고 훈련 세트의 이미지와 최적으로 유사한 새로운 이미지를 생성하는 방향으로 진행됩니다. ELBO의 첫 번째 용어는 훈련 설정 점의 예상되는 음의 로그 가능성이므로, 디코더가 훈련과 유사한 이미지를 생성하도록 권장합니다. 두 번째 항은 정규화기로 해석 될 수 있습니다. 이는 인코더가 와 유사한 잠재 변수에 대한 분포를 생성하도록 권장합니다.θϕp(z)=N(0,I). 그러나 확률 모델을 먼저 소개함으로써 우리는 전체 표현의 위치를 ​​이해했습니다. 대략적인 후부 사이의 Kullabck-Leibler 발산 최소화 및 모델 후방 . 2qθ(z|x,λ)p(z|x,λ)

우리가 배운 후 와 극대화하여 , 우리는 인코더를 버릴 수 있습니다. 이제부터 새로운 이미지를 생성하려면 샘플 샘플링 하여 디코더를 통해 전파하십시오. 디코더 출력은 트레이닝 세트의 이미지와 유사한 이미지입니다.θϕELBO(θ,ϕ)zN(0,I)

참고 문헌 및 추가 자료


1 VAE에 대한 설명을 단순화하지만이 가정은 꼭 필요한 것은 아닙니다. 그러나 응용 프로그램에 따라 대해 다른 분포를 가정 할 수 있습니다 . 예를 들어, 가 이진 변수로 구성된 벡터 인 경우 가우스 는 의미가 없으며 다변량 베르누이를 가정 할 수 있습니다.pϕ(x|z)xp

2 수학적 우아함을 갖춘 ELBO 표현은 VAE 실무자에게 두 가지 주요 통증 원인을 숨 깁니다. 하나는 평균 용어 . 이를 위해서는 에서 여러 샘플을Eqθ(z|xi,λ)[logpϕ(xi|z)]qθ(z|xi,λ). 관련된 신경망의 크기와 SGD 알고리즘의 낮은 수렴 률을 고려할 때, 각 반복마다 (실제로, 각 미니 배치마다, 더 나쁜), 다수의 랜덤 샘플을 추출해야하는 것은 매우 시간 소모적입니다. VAE 사용자는 단일 (!) 랜덤 샘플로 기대 값을 계산하여이 문제를 매우 실용적으로 해결합니다. 다른 문제는 역 전파 알고리즘으로 두 개의 신경망 (인코더 및 디코더)을 훈련시키기 위해, 순방향 전파와 관련된 모든 단계를 인코더에서 디코더로 구별 할 수 있어야한다는 것입니다. 디코더는 결정적이지 않기 때문에 (출력을 평가하려면 다변량 가우시안으로 그리기가 필요함), 차별화 가능한 아키텍처인지 물어 보는 것도 의미가 없습니다. 이것에 대한 해결책은 재 파라미터 화 트릭 입니다.


1
의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
gung-복직 모니카

2
+6. 나는 현상금을 여기에 넣었으므로 추가 공감대를 얻을 수 있기를 바랍니다. 이 게시물에서 무언가를 개선하고 싶다면 (포맷 만하더라도) 좋은 시간입니다. 편집 할 때 마다이 스레드가 첫 페이지에 충돌하여 더 많은 사람들이 현상금에주의를 기울이게됩니다. 그 외에도 FA 모델의 EM 추정과 VAE 훈련의 개념적 관계에 대해 조금 더 생각하고있었습니다. VAE 교육이 EM과 어떻게 비슷한 지에 대한 강의 슬라이드로 연결되지만, 직관을이 답변에 증류시키는 것이 좋습니다.
amoeba는 Reinstate Monica가

(나는 그것에 대해 약간의 독서를했고, EM <-> VAE 훈련의 관점에서 FA / PPCA <-> VAE 대응에 초점을 맞춘 "직관적 / 개념적"답변을 작성하려고 생각하고 있지만 생각하지 않습니다. 내가 신뢰할 수있는 답변을 충분이 ... 그래서 차라리 다른 사람 거라고 쓴 알고 :-)
아메바는 분석 재개 모니카 말한다

현상금에 감사드립니다! 일부 주요 수정 사항이 구현되었습니다. EM에 대해 충분히 알지 못하기 때문에 EM에 대해서는 다루지 않겠다. 시간이 충분하다고 생각한다 (주요 편집을 구현하는 데 시간이 얼마나 걸리는지 알고있다 ... ;-)
DeltaIV
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.