Apa yang dimaksud dengan autoencoder variasional dan untuk tugas pembelajaran apa yang digunakan?

24

Sebagai per ini dan jawaban ini , autoencoder tampaknya menjadi teknik yang menggunakan jaringan saraf untuk pengurangan dimensi. Saya ingin juga tahu apa adalah variational autoencoder (perbedaan utama / manfaat lebih dari satu "tradisional" autoencoders) dan juga apa yang tugas belajar utama algoritma ini digunakan untuk.

statlearner
sumber

Jawaban:

37

Meskipun variabel autoencoder (VAE) mudah diimplementasikan dan dilatih, menjelaskannya tidak mudah sama sekali, karena mereka menggabungkan konsep dari Deep Learning dan Variational Bayes, dan komunitas Deep Learning dan Probabilistic Modeling menggunakan istilah berbeda untuk konsep yang sama. Jadi ketika menjelaskan VAE Anda berisiko berkonsentrasi pada bagian model statistik, meninggalkan pembaca tanpa petunjuk tentang bagaimana sebenarnya mengimplementasikannya, atau sebaliknya untuk berkonsentrasi pada arsitektur jaringan dan fungsi kerugian, di mana istilah Kullback-Leibler tampaknya menjadi ditarik keluar dari udara tipis. Saya akan mencoba untuk menemukan jalan tengah di sini, mulai dari model tetapi memberikan detail yang cukup untuk benar-benar mengimplementasikannya dalam praktik, atau memahami implementasi orang lain.

VAE adalah model generatif

Tidak seperti autoencoder klasik (jarang, denoising, dll.), VAE adalah model generatif , seperti GAN. Dengan model generatif yang saya maksud adalah model yang mempelajari distribusi probabilitas p(x) atas ruang input x . Ini berarti bahwa setelah kami melatih model seperti itu, kami dapat mengambil sampel dari (perkiraan kami) p(x) . Jika set pelatihan kami terbuat dari angka tulisan tangan (MNIST), maka setelah pelatihan model generatif dapat membuat gambar yang terlihat seperti angka tulisan tangan, meskipun itu bukan "salinan" dari gambar dalam set pelatihan.

Mempelajari distribusi gambar dalam set pelatihan menyiratkan bahwa gambar yang terlihat seperti angka tulisan tangan harus memiliki probabilitas tinggi untuk dihasilkan, sedangkan gambar yang terlihat seperti Jolly Roger atau noise acak harus memiliki probabilitas rendah. Dengan kata lain, itu berarti belajar tentang dependensi di antara piksel: jika gambar kita adalah 28×28=784 piksel gambar skala abu-abu dari MNIST, model harus belajar bahwa jika piksel sangat cerah, maka ada kemungkinan yang signifikan bahwa beberapa piksel tetangga cerah juga, bahwa jika kita memiliki garis panjang, piksel garis miring, kita mungkin memiliki garis piksel yang lebih kecil dan horizontal di atas yang satu ini (angka 7), dll.

VAE adalah model variabel laten

VAE adalah model variabel laten : ini berarti bahwa x , vektor acak dari intensitas 784 piksel ( variabel yang diamati ), dimodelkan sebagai fungsi (mungkin sangat rumit) dari vektor acak zZ dari dimensi yang lebih rendah, yang komponennya adalah variabel ( laten ) yang tidak teramati . Kapan model seperti itu masuk akal? Sebagai contoh, dalam kasus MNIST kami berpikir bahwa digit tulisan tangan milik bermacam-macam dimensi jauh lebih kecil daripada dimensi x, karena sebagian besar pengaturan acak dengan intensitas 784 piksel, tidak terlihat sama sekali seperti digit tulisan tangan. Secara intuitif kita akan mengharapkan dimensi setidaknya 10 (jumlah digit), tetapi kemungkinan besar lebih besar karena setiap digit dapat ditulis dengan cara yang berbeda. Beberapa perbedaan tidak penting untuk kualitas gambar akhir (misalnya, rotasi global dan terjemahan), tetapi yang lain penting. Jadi dalam hal ini model laten masuk akal. Lebih lanjut tentang ini nanti. Perhatikan bahwa, luar biasa, bahkan jika intuisi kita memberi tahu kita bahwa dimensi seharusnya sekitar 10, kita pasti dapat menggunakan hanya 2 variabel laten untuk menyandikan dataset MNIST dengan VAE (meskipun hasilnya tidak akan cantik). Alasannya adalah bahwa bahkan satu variabel nyata dapat mengkodekan banyak kelas, karena dapat mengasumsikan semua nilai integer yang mungkin dan banyak lagi. Tentu saja, jika kelas memiliki tumpang tindih yang signifikan di antara mereka (seperti 9 dan 8 atau 7 dan I dalam MNIST), bahkan fungsi yang paling rumit dari hanya dua variabel laten akan melakukan pekerjaan yang buruk dalam menghasilkan sampel yang jelas dapat dilihat untuk setiap kelas. Lebih lanjut tentang ini nanti.

VAE mengasumsikan distribusi parametrik multivariat (di mana adalah parameter ), dan mereka mempelajari parameter dari distribusi multivariat. Penggunaan parametrik pdf untuk , yang mencegah jumlah parameter VAE untuk tumbuh tanpa batas dengan pertumbuhan set pelatihan, disebut amortisasi dalam istilah VAE (ya, saya tahu ...).q(z|x,λ)λqz

Jaringan decoder

masukkan deskripsi gambar di sini

Kita mulai dari jaringan decoder karena VAE adalah model generatif, dan satu-satunya bagian dari VAE yang sebenarnya digunakan untuk menghasilkan gambar baru adalah dekoder. Jaringan encoder hanya digunakan pada saat inferensi (pelatihan).

Tujuan dari jaringan decoder adalah untuk menghasilkan vektor acak baru milik ruang input , yaitu gambar baru, mulai dari realisasi vektor laten . Ini berarti jelas bahwa ia harus mempelajari distribusi bersyarat . Untuk VAE distribusi ini sering dianggap sebagai Gaussian 1 multivarian :xXzp(x|z)

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

ϕ adalah vektor bobot (dan bias) dari jaringan encoder. Vektor dan adalah fungsi kompleks, tidak diketahui tidak linier, dimodelkan oleh jaringan decoder: jaringan saraf adalah penaksir fungsi nonlinier yang kuat.μ(z;ϕ)σ(z;ϕ)


Seperti dicatat oleh @amoeba dalam komentar, ada kesamaan yang mencolok antara decoder dan model variabel laten klasik: Analisis Faktor. Dalam Analisis Faktor, Anda menganggap model:

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

Kedua model (FA & decoder) mengasumsikan bahwa distribusi bersyarat dari variabel yang dapat diamati pada variabel laten adalah Gaussian, dan bahwa sendiri adalah standar Gaussians. Perbedaannya adalah bahwa decoder tidak mengasumsikan bahwa rata-rata adalah linear dalam , juga tidak mengasumsikan bahwa standar deviasi adalah vektor konstan. Sebaliknya, ia memodelkan mereka sebagai fungsi nonlinear kompleks dari . Dalam hal ini, dapat dilihat sebagai Analisis Faktor nonlinier. Lihat di sinixzzp(x|z)zzuntuk diskusi mendalam tentang hubungan antara FA dan VAE ini. Karena FA dengan matriks kovarians isotropik hanya PPCA, ini juga terkait dengan hasil yang diketahui bahwa autoencoder linier berkurang menjadi PCA.


Mari kita kembali ke dekoder: bagaimana kita belajar ? Secara intuitif kita menginginkan variabel laten yang memaksimalkan kemungkinan menghasilkan dalam set pelatihan . Dengan kata lain kami ingin menghitung distribusi probabilitas posterior dari , dengan data:ϕzxiDnz

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

Kami menganggap sebelumnya pada , dan kami pergi dengan masalah yang biasa dalam Bayesian inference bahwa menghitung ( bukti ) sulit ( integral multidimensi). Terlebih lagi, karena di sini tidak diketahui, kita tetap tidak dapat menghitungnya. Masukkan Variational Inference, alat yang memberikan Varienc Autoencoder nama mereka.N(0,I)zp(x)μ(z;ϕ)

Inferensi Variasi untuk model VAE

Variational Inference adalah alat untuk melakukan perkiraan Bayesian Inference untuk model yang sangat kompleks. Ini bukan alat yang terlalu rumit, tapi jawaban saya sudah terlalu lama dan saya tidak akan masuk ke penjelasan rinci tentang VI. Anda dapat melihat jawaban ini dan referensi di dalamnya jika Anda penasaran:

/stats//a/270569/58675

Cukuplah untuk mengatakan bahwa VI mencari perkiraan untuk dalam keluarga distribusi parametrik , di mana, seperti disebutkan di atas, adalah parameter keluarga. Kami mencari parameter yang meminimalkan perbedaan Kullback-Leibler di antara target distribusi dan :p(z|x)q(z|x,λ)λp(z|x)q(z|x,λ)

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

Sekali lagi, kita tidak dapat meminimalkan ini secara langsung karena definisi divergensi Kullback-Leibler termasuk bukti. Memperkenalkan ELBO (Evidence Lower BOund) dan setelah beberapa manipulasi aljabar, kami akhirnya tiba di:

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

Karena ELBO adalah batas yang lebih rendah pada bukti (lihat tautan di atas), memaksimalkan ELBO tidak persis sama dengan memaksimalkan kemungkinan data yang diberikan (setelah semua, VI adalah alat untuk perkiraan inferensi Bayesian), tetapi berjalan ke arah yang benar.λ

Untuk membuat kesimpulan, kita perlu menentukan keluarga parametrik . Dalam kebanyakan VAE kami memilih distribusi Gaussian multivarian, tidak berkorelasiq(z|x,λ)

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

Ini adalah pilihan yang sama yang kami buat untuk , meskipun kami mungkin telah memilih keluarga parametrik yang berbeda. Seperti sebelumnya, kita dapat memperkirakan fungsi-fungsi nonlinear yang kompleks ini dengan memperkenalkan model jaringan saraf. Karena model ini menerima gambar input dan mengembalikan parameter distribusi variabel laten kami menyebutnya jaringan encoder . Seperti sebelumnya, kita dapat memperkirakan fungsi-fungsi nonlinear yang kompleks ini dengan memperkenalkan model jaringan saraf. Karena model ini menerima gambar input dan mengembalikan parameter distribusi variabel laten kami menyebutnya jaringan encoder .p(x|z)

Jaringan encoder

Juga disebut jaringan inferensi , ini hanya digunakan pada waktu pelatihan.

masukkan deskripsi gambar di sini

Seperti yang disebutkan di atas, pembuat enkode harus mendekati dan , jadi jika kita memiliki, katakanlah, 24 variabel laten, output dari encoder adalah vektor . Encoder memiliki bobot (dan bias) . Untuk mempelajari , kita akhirnya dapat menulis ELBO dalam hal parameter dan dari jaringan encoder dan decoder, serta set point pelatihan:μ(x)σ(x)d=48θθθϕ

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

Kami akhirnya bisa menyimpulkan. Kebalikan dari ELBO, sebagai fungsi dari dan , digunakan sebagai fungsi kerugian dari VAE. Kami menggunakan SGD untuk meminimalkan kerugian ini, yaitu memaksimalkan ELBO. Karena ELBO adalah batas yang lebih rendah pada bukti, ini berjalan ke arah memaksimalkan bukti, dan dengan demikian menghasilkan gambar baru yang secara optimal mirip dengan yang ada di set pelatihan. Istilah pertama dalam ELBO adalah log-kemungkinan negatif yang diharapkan dari set point pelatihan, sehingga mendorong decoder untuk menghasilkan gambar yang mirip dengan yang pelatihan. Istilah kedua dapat diartikan sebagai regularizer: ini mendorong encoder untuk menghasilkan distribusi untuk variabel laten yang mirip denganθϕp(z)=N(0,I). Tetapi dengan memperkenalkan model probabilitas terlebih dahulu, kami memahami dari mana keseluruhan ekspresi berasal: minimalisasi perbedaan Kullabck-Leibler antara perkiraan posterior dan model posterior . 2qθ(z|x,λ)p(z|x,λ)

Setelah kita mempelajari dan dengan memaksimalkan , kita dapat membuang encoder. Mulai sekarang, untuk menghasilkan gambar baru cukup sampel dan menyebarkannya melalui decoder. Output decoder akan berupa gambar yang mirip dengan yang ada di set pelatihan.θϕELBO(θ,ϕ)zN(0,I)

Referensi dan bacaan lebih lanjut


1 Asumsi ini tidak sepenuhnya diperlukan, meskipun menyederhanakan deskripsi VAE kami. Namun, tergantung pada aplikasi, Anda dapat mengasumsikan distribusi yang berbeda untuk . Misalnya, jika adalah vektor variabel biner, Gaussian tidak masuk akal, dan Bernoulli multivariat dapat diasumsikan.pϕ(x|z)xp

2 Ekspresi ELBO, dengan keanggunan matematikanya, menyembunyikan dua sumber utama rasa sakit bagi para praktisi VAE. Salah satunya adalah istilah rata-rata . Ini secara efektif membutuhkan penghitungan ekspektasi, yang mengharuskan pengambilan beberapa sampel dariEqθ(z|xi,λ)[logpϕ(xi|z)]qθ(z|xi,λ). Mengingat ukuran jaringan saraf yang terlibat, dan tingkat konvergensi rendah dari algoritma SGD, harus menarik beberapa sampel acak pada setiap iterasi (sebenarnya, untuk setiap minibatch, yang bahkan lebih buruk) sangat memakan waktu. Pengguna VAE memecahkan masalah ini dengan sangat pragmatis dengan menghitung ekspektasi tersebut dengan sampel acak (!) Tunggal. Masalah lainnya adalah bahwa untuk melatih dua jaringan saraf (encoder & decoder) dengan algoritma backpropagation, saya harus dapat membedakan semua langkah yang terlibat dalam propagasi maju dari encoder ke decoder. Karena decoder tidak deterministik (mengevaluasi outputnya memerlukan gambar dari Gaussian multivarian), bahkan tidak masuk akal untuk bertanya apakah itu arsitektur yang dapat dibedakan. Solusi untuk ini adalah trik reparametrization .

DeltaIV
sumber
1
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
gung - Reinstate Monica
2
+6. Saya memberi hadiah di sini, jadi semoga Anda akan mendapatkan beberapa tambahan tambahan. Jika Anda ingin meningkatkan sesuatu di pos ini (walaupun hanya memformat), sekarang adalah saat yang tepat: setiap pengeditan akan menabrak utas ini ke halaman depan dan membuat lebih banyak orang memperhatikan karunia. Terlepas dari itu, saya berpikir lebih banyak tentang hubungan konseptual antara estimasi EM model FA dan pelatihan VAE. Anda menautkan ke slide kuliah yang membahas tentang bagaimana pelatihan VAE mirip dengan EM, tetapi mungkin bagus untuk menyaring beberapa intuisi ke dalam jawaban ini.
Amoeba berkata Reinstate Monica
(Saya membaca beberapa tentang itu, dan saya berpikir untuk menulis jawaban "intuitif / konseptual" di sini berfokus pada FA / PPCA <--> korespondensi VAE dalam hal pelatihan EM <--> VAE, tapi saya tidak berpikir Saya cukup tahu untuk jawaban yang berwibawa ... Jadi saya lebih suka orang lain yang menulisnya :-)
amoeba mengatakan Reinstate Monica
Terima kasih untuk hadiahnya! Beberapa pengeditan besar diterapkan. Saya tidak akan membahas hal-hal EM, karena saya tidak cukup tahu tentang EM, dan karena saya punya cukup waktu (Anda tahu berapa lama waktu saya untuk menerapkan suntingan besar ... ;-)
DeltaIV