Kapan saya harus menggunakan autoencoder variasional sebagai lawan dari autoencoder?

19

Saya mengerti struktur dasar autoencoder variasional dan autoencoder normal (deterministik) dan matematika di belakangnya, tetapi kapan dan mengapa saya lebih suka satu jenis autoencoder dari yang lain? Yang bisa saya pikirkan adalah distribusi sebelumnya variabel laten dari autoencoder variasional memungkinkan kita untuk mengambil sampel variabel laten dan kemudian membangun gambar baru. Apa kelebihan yang dimiliki stokastik autoencoder variasional daripada autoencoder deterministik?

DiveIntoML
sumber

Jawaban:

13

VAE adalah kerangka kerja yang diusulkan sebagai cara scalable untuk melakukan variational EM (atau inferensi variasional pada umumnya) pada dataset besar. Meskipun memiliki struktur seperti AE, ia melayani tujuan yang jauh lebih besar.

Karena itu, orang dapat, tentu saja, menggunakan VAE untuk mempelajari representasi laten. VAE diketahui memberikan representasi dengan faktor-faktor yang terurai [1] Hal ini terjadi karena prior Gaussian isotropik pada variabel laten. Pemodelan mereka sebagai Gaussians memungkinkan setiap dimensi dalam representasi untuk mendorong diri mereka sendiri sejauh mungkin dari faktor-faktor lain. Juga, [1] menambahkan koefisien regularisasi yang mengontrol pengaruh sebelumnya.

Sementara Gaussi isotropik cukup untuk sebagian besar kasus, untuk kasus tertentu, orang mungkin ingin memodelkan prior. Sebagai contoh, dalam kasus sekuens, seseorang mungkin ingin mendefinisikan prior sebagai model sekuensial [2].

Kembali ke pertanyaan, seperti yang dapat dilihat, sebelumnya memberikan kontrol yang signifikan atas bagaimana kami ingin memodelkan distribusi laten kami. Kontrol semacam ini tidak ada dalam kerangka kerja AE biasa. Ini sebenarnya adalah kekuatan model Bayesian sendiri, VAE hanya membuatnya lebih praktis dan layak untuk dataset skala besar. Jadi, untuk menyimpulkan, jika Anda ingin kontrol yang tepat atas representasi laten Anda dan apa yang Anda ingin mereka wakili, maka pilih VAE. Terkadang, pemodelan yang tepat dapat menangkap representasi yang lebih baik seperti pada [2]. Namun, jika AE mencukupi untuk pekerjaan yang Anda lakukan, maka cukup gunakan AE, itu sederhana dan tidak rumit. Bagaimanapun, dengan AE kita hanya melakukan PCA non-linear.

[1] Pembelajaran Konsep Visual Awal dengan Pembelajaran Jauh Tanpa pengawasan, 2016
Irina Higgins, Loic Matthey, Xavier Glorot, Arka Pal, Benigno Uria, Charles Blundell, Shakir Mohamed, Alexander Lerchner
https://arxiv.org/abs/1606.05579

[2] Model Variabel Laten Berulang untuk Data Sekuensial, 2015
Junyoung Chung, Kyle Kastner, Laurent Dinh, Kratarth Goel, Aaron Courville, Yoshua Bengio
https://arxiv.org/abs/1506.02216

TenaliRaman
sumber
6

TenaliRaman memiliki beberapa poin bagus tetapi dia juga kehilangan banyak konsep mendasar. Pertama-tama harus dicatat bahwa alasan utama untuk menggunakan kerangka kerja seperti-AE adalah ruang laten yang memungkinkan kita untuk memampatkan informasi dan mudah-mudahan mengeluarkan faktor independen yang mewakili fitur tingkat tinggi dari data. Poin penting adalah bahwa, sementara AE dapat diartikan sebagai perpanjangan nonlinier PCA karena unit tersembunyi "X" akan menjangkau ruang yang sama dengan jumlah pertama "X" komponen utama, AE tidak serta merta menghasilkan komponen ortogonal dalam laten. ruang (yang akan berarti suatu bentuk pemisahan). Selain itu dari VAE, Anda bisa mendapatkan kemiripan kemungkinan data (meskipun perkiraan) dan juga sampel darinya (yang dapat berguna untuk berbagai tugas yang berbeda). Namun,

Distribusi sebelumnya yang dikenakan pada unit laten dalam VAE hanya berkontribusi pada model fitting karena istilah divergence KL, yang referensi [1] hanya menambahkan pengali hiperparameter pada istilah itu dan mendapatkan kertas lengkap dari itu (sebagian besar adalah cukup jelas). Pada dasarnya prior "uninformative" adalah yang secara individual memiliki divergence KL mendekati nol dan tidak berkontribusi banyak terhadap kerugian, yang berarti bahwa unit tertentu tidak digunakan untuk rekonstruksi dalam dekoder. Penguraian ini dilakukan dengan VAE secara alami karena, dalam kasus paling sederhana dari data multi-modal, biaya divergensi KL lebih rendah dengan memiliki Gaussian laten unik untuk setiap mode daripada jika model mencoba menangkap beberapa mode dengan Gaussian tunggal (yang akan menyimpang lebih jauh dari sebelumnya karena akan banyak dikenai biaya oleh biaya divergensi KL) - dengan demikian memimpin untuk disintegrasi di unit laten. Oleh karena itu VAE juga cocok secara alami untuk sebagian besar sumber data karena implikasi statistik yang terkait dengannya.

Ada kerangka kerja memaksakan sparsity untuk AE juga, tapi sayangnya saya tidak mengetahui ada kertas di luar sana yang membandingkan VAE vs AE secara ketat berdasarkan pada representasi ruang laten dan pemisahan. Saya benar-benar ingin melihat sesuatu di arena itu - karena AE jauh lebih mudah untuk dilatih dan jika mereka bisa mencapai keterputusan yang sama baiknya dengan VAE di ruang laten maka mereka jelas akan lebih disukai. Pada catatan terkait, saya juga melihat beberapa janji oleh metode ICA (dan nonlinier ICA), tetapi yang saya lihat memaksa ruang laten memiliki dimensi yang sama dengan data, yang hampir tidak berguna seperti AE. untuk mengekstraksi fitur tingkat tinggi.

JPJ
sumber
3

Autoencoder standar dapat diilustrasikan menggunakan grafik berikut: masukkan deskripsi gambar di sini

Seperti yang dinyatakan dalam jawaban sebelumnya itu dapat dilihat sebagai hanya perpanjangan nonlinier PCA.

Tetapi dibandingkan dengan autoencoder variasional autoencoder vanilla memiliki kelemahan berikut:

Masalah mendasar dengan autoencoder, untuk generasi, adalah bahwa ruang laten tempat mereka mengonversi input dan letak vektor yang disandikan, mungkin tidak berkelanjutan, atau memungkinkan interpolasi mudah.

Itu, bagian pengkodean dalam grafik di atas tidak dapat menangani input yang belum pernah dilihat oleh encoder sebelumnya karena kelas yang berbeda berkerumun terus-menerus dan input yang tidak terlihat itu dikodekan ke sesuatu yang terletak di suatu tempat di tempat kosong:

masukkan deskripsi gambar di sini

Untuk mengatasi masalah ini, autoencoder variasional dibuat dengan menambahkan lapisan yang berisi rata-rata dan standar deviasi untuk setiap variabel tersembunyi di lapisan tengah:

masukkan deskripsi gambar di sini

Kemudian bahkan untuk input yang sama output yang didekodekan dapat bervariasi, dan input yang dikodekan dan dikelompokkan menjadi halus:

masukkan deskripsi gambar di sini

Jadi untuk denoise atau untuk mengklasifikasikan (memfilter data yang berbeda) data, autoencoder standar akan cukup, sementara kami lebih baik menggunakan autoencoder variasional untuk generasi.

Referensi:
Memahami Autoencoder Variational Secara Intuitif

Lerner Zhang
sumber
1

Memilih distribusi kode dalam VAE memungkinkan pembelajaran representasi tanpa pengawasan yang lebih baik di mana sampel dari kelas yang sama berakhir berdekatan satu sama lain dalam ruang kode. Dengan cara ini, menemukan semantik untuk wilayah dalam ruang kode menjadi lebih mudah. Misalnya, Anda akan tahu dari setiap area kelas apa yang dapat dihasilkan.

Jika Anda membutuhkan analisis yang lebih mendalam, lihatlah tesis Durk Kingma . Ini sumber yang bagus untuk inferensi variasional.

PickleRick
sumber
Ketika Anda berbicara tentang "memilih distribusi", distribusi mana yang Anda bicarakan? p (z), p (z | x), p (x | z) atau semuanya? Saya hanya melihat menggunakan distribusi normal atau distribusi Bernoulli, apakah Anda tahu tentang pekerjaan yang membandingkan kinerja menggunakan distribusi yang berbeda? Adapun poin kedua Anda, saya tidak bisa melihat mengapa autoencoder variasional akan melakukan pekerjaan yang lebih baik daripada autoencoder normal, bisakah Anda menguraikan? Terima kasih.
DiveIntoML