자동 인코더와 달리 가변형 자동 인코더를 언제 사용해야합니까?


19

나는 가변 자동 인코더와 일반 (결정적) 자동 인코더의 기본 구조와 그 뒤에있는 수학을 이해하지만 언제 어떤 유형의 자동 인코더를 다른 유형보다 선호합니까? 내가 생각할 수있는 것은 가변 오토 인코더의 잠복 변수의 사전 분포가 잠복 변수를 샘플링 한 다음 새로운 이미지를 구성 할 수 있다는 것입니다. 결정적 오토 인코더에 비해 가변 오토 인코더의 확률은 어떤 이점이 있습니까?

답변:


13

VAE는 대규모 데이터 세트에서 변동 EM (또는 일반적으로 변동 추론)을 수행 할 수있는 확장 가능한 방법으로 제안 된 프레임 워크입니다. AE와 같은 구조를 가지고 있지만 훨씬 더 큰 목적을 제공합니다.

물론 VAE를 사용하여 잠재적 인 표현을 배울 수 있다고 말했습니다. VAE는 얽힌 요소로 표현하는 것으로 알려져 있습니다. [1] 이것은 잠복 변수에 대한 등방성 가우스 사전으로 인해 발생합니다. 그것들을 가우스로 모델링하면 표현의 각 차원이 다른 요인들로부터 가능한 한 멀리 떨어지게됩니다. 또한 [1]은 이전의 영향을 제어하는 ​​정규화 계수를 추가했습니다.

등방성 가우스는 대부분의 경우에 충분하지만 특정 경우에는 이전의 방식을 다르게 모델링 할 수 있습니다. 예를 들어, 시퀀스의 경우 우선 순위를 순차적 모델로 정의 할 수 있습니다 [2].

보시다시피, 질문으로 되돌아 가면 사전에 잠재 분포를 모델링하려는 방법을 크게 제어 할 수 있습니다. 이러한 종류의 제어는 일반적인 AE 프레임 워크에는 존재하지 않습니다. 이것은 실제로 베이지안 모델 자체의 힘이며 VAE는 단순히 대규모 데이터 세트에 더 실용적이고 실현 가능하게 만듭니다. 결론적으로 잠재 표현과 표현하려는 표현을 정확하게 제어하려면 VAE를 선택하십시오. 때로는 정확한 모델링이 [2]에서와 같이 더 나은 표현을 얻을 수 있습니다. 그러나 AE가 귀하의 작업에 충분하다면 AE를 사용하면 간단하고 복잡합니다. 결국 AE를 사용하면 단순히 비선형 PCA를 수행 할 수 있습니다.

[1] 감독되지 않은 딥 러닝을 사용한 초기 시각 개념 학습, 2016
Irina Higgins, Loic Matthey, Xavier Glorot, Arka Pal, Benigno Uria, Charles Blundell, Shakir Mohamed, Alexander Lerchner
https://arxiv.org/abs/1606.05579

[2] 순차적 데이터에 대한 반복적 인 잠복 변수 모델,
정준영, Kyle Kastner, Laurent Dinh, Kratarth Goel, Aaron Courville, Yoshua Bengio
https://arxiv.org/abs/1506.02216


6

TenaliRaman은 몇 가지 좋은 점을 가지고 있었지만 많은 기본 개념을 놓쳤다. 먼저 AE와 같은 프레임 워크를 사용하는 주된 이유는 정보를 압축하고 데이터의 높은 수준의 기능을 나타내는 독립적 인 요소를 정보에서 얻을 수있는 잠재적 공간이라는 점입니다. 중요한 점은 AE가 PCA의 비선형 확장으로 해석 될 수 있지만 "X"숨겨진 단위는 첫 번째 "X"수의 주요 구성 요소와 동일한 공간에 걸쳐 있기 때문에 AE가 잠재적으로 직교 구성 요소를 생성 할 필요는 없다는 것입니다 공간 (이것은 얽힘의 형태에 해당합니다). 또한 VAE에서 데이터 유사성 (근사 적 임에도 불구하고)의 유사성을 얻을 수 있으며 그로부터 표본을 추출 할 수 있습니다 (다양한 작업에 유용 할 수 있음). 하나,

VAE에서 잠재 단위에 부과 된 사전 분포는 KL 분기 조건으로 인한 모형 적합에만 기여합니다. [1] 참조는 단순히 해당 항에 하이퍼 파라미터 승수를 추가하고 전체 논문을 얻었습니다. 상당히 명백한). 본질적으로 "정보가없는"선행은 개별적으로 KL 발산이 제로에 가깝고 손실에 크게 기여하지 않는 것으로, 이는 특정 유닛이 디코더에서의 재구성에 사용되지 않음을 의미한다. 멀티 모달 데이터의 가장 단순한 경우에는 VAE에서 자연스럽게 얽힘이 발생합니다. KL 발산 비용은 모델이 단일 가우시안으로 여러 모드를 캡처하려고 시도하는 경우 (KL 발산 비용에 의해 과도하게 벌어지는 것과 같이 이전보다 더 많이 확산 될 경우)보다 각 모드에 대해 고유 한 잠재 가우스를 가짐으로써 낮아집니다. 잠복 장치에서 풀림 따라서 VAE는 통계적 영향으로 인해 대부분의 데이터 소스에 자연스럽게 적합합니다.

AE에 대한 프레임 워크를 부과하는 희소성이 있지만 불행히도 VAE와 AE를 잠재 공간 표현 및 분리에 기초하여 엄격하게 비교하는 논문은 알지 못합니다. 나는 AE가 훈련하기가 훨씬 쉽고 잠재적 공간에서 VAE만큼 좋은 분리를 달성 할 수 있다면 분명히 선호 될 것입니다. 관련 메모에서, 나는 또한 ICA (및 비선형 ICA) 방법에 의한 약속을 보았지만, 내가 본 방법은 잠재 공간이 데이터와 동일한 차원이되도록 강요했습니다 .AE만큼 유용하지는 않습니다. 고급 기능을 추출합니다.


3

표준 오토 인코더는 다음 그래프를 사용하여 설명 할 수 있습니다. 여기에 이미지 설명을 입력하십시오

이전 답변에서 언급했듯이 PCA의 비선형 확장으로 볼 수 있습니다.

그러나 바닐라 자동 인코더는 변형 자동 인코더와 비교하여 다음과 같은 단점이 있습니다.

자동 엔코더의 근본적인 문제는 생성을 위해 입력을 변환하고 입력 벡터가 인코딩 된 벡터가있는 위치가 연속적이지 않거나 보간이 쉽지 않다는 점입니다.

즉, 위의 그래프의 인코딩 부분은 다른 클래스가 무딘 클러스터링되고 보이지 않는 입력이 공백의 어딘가에있는 것으로 인코딩되기 때문에 인코더가 이전에 보지 못한 입력을 처리 할 수 ​​없습니다.

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

이 문제를 해결하기 위해 중간 계층의 각 숨겨진 변수에 대한 평균 및 표준 편차가 포함 된 계층을 추가하여 변형 자동 인코더를 만들었습니다.

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

그런 다음 동일한 입력의 경우에도 디코딩 된 출력이 달라질 수 있으며 인코딩 된 입력과 클러스터 된 입력이 부드럽게됩니다.

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

따라서 데이터를 노이즈 제거하거나 분류 (이종의 데이터를 필터링)하려면 표준 자동 인코더로 충분하지만 생성을 위해 가변 자동 인코더를 사용하는 것이 좋습니다.

참조 :
변이 형 자동 엔코더를 직관적으로 이해


1

VAE에서 코드 분포를 선택하면 동일한 클래스의 샘플이 코드 공간에서 서로 가까이있는 더 나은 감독되지 않은 표현 학습이 가능합니다. 또한이 방법으로 코드 공간에서 영역의 의미를 찾는 것이 더 쉬워집니다. 예를 들어, 각 영역에서 어떤 클래스를 생성 할 수 있는지 알 수 있습니다.

보다 심층적 인 분석이 필요한 경우 Durk Kingma의 논문을 살펴보십시오 . 변형 추론의 훌륭한 소스입니다.


"배포 선택"에 대해 이야기 할 때 어떤 배포에 대해 이야기하고 있습니까? p (z), p (z | x), p (x | z) 또는 모두? 정규 분포 또는 Bernoulli 분포 만 사용하는 것을 보았습니다. 다른 분포를 사용하여 성능을 비교하는 작업에 대해 알고 있습니까? 두 번째 요점은 왜 가변 자동 인코더가 일반 자동 인코더보다 더 나은 작업을 수행하는지 알 수 없습니다. 감사.
DiveIntoML
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.