Apa Itu Variational Autoencoder (VAE)? Cara Kerja dan Fungsinya


Ilustrasi Variational Autoencoder

Ilustrasi Variational Autoencoder

Variational Autoencoder (VAE) merupakan salah satu arsitektur deep learning yang digunakan untuk mempelajari pola tersembunyi dalam data sekaligus menghasilkan data baru yang memiliki karakteristik serupa dengan data yang digunakan saat pelatihan. Teknologi ini termasuk keluarga autoencoder dan banyak digunakan dalam pengembangan kecerdasan buatan (AI) generatif.

Berbeda dari autoencoder biasa yang umumnya mempelajari representasi data secara deterministik, VAE menggunakan pendekatan probabilistik. Model tidak hanya mempelajari satu titik representasi untuk sebuah data, tetapi mempelajari distribusi kemungkinan pada ruang laten. Pendekatan tersebut memungkinkan VAE mengambil sampel dari ruang laten dan menghasilkan data baru.

Konsep ini penting karena menjadi salah satu fondasi dalam perkembangan model generatif modern. VAE dapat digunakan untuk berbagai kebutuhan, mulai dari pembuatan gambar, pengurangan dimensi, penghilangan noise, deteksi anomali, hingga penelitian penemuan molekul obat.

 

Memahami Konsep Autoencoder

Sebelum memahami VAE, penting untuk mengetahui terlebih dahulu apa yang dimaksud dengan autoencoder. Autoencoder adalah arsitektur jaringan saraf yang dirancang untuk mempelajari cara mengubah data berukuran besar menjadi representasi yang lebih ringkas, kemudian menggunakan representasi tersebut untuk membangun kembali data semula.

Secara sederhana, autoencoder bekerja melalui dua bagian utama, yaitu encoder dan decoder. Encoder menerima data masukan dan mengubahnya menjadi representasi berdimensi lebih rendah. Representasi tersebut disebut sebagai variabel laten atau latent representation. Selanjutnya, decoder menggunakan representasi laten tersebut untuk mencoba merekonstruksi data asli.

Misalnya, sebuah sistem menerima gambar angka tulisan tangan. Encoder akan memproses gambar tersebut dan menyimpan karakteristik pentingnya dalam representasi yang lebih ringkas. Decoder kemudian menggunakan representasi tersebut untuk menghasilkan kembali gambar angka yang sedekat mungkin dengan gambar awal.

Selama proses pelatihan, model akan membandingkan hasil rekonstruksi dengan data asli. Jika terdapat perbedaan, parameter jaringan disesuaikan menggunakan algoritma optimasi berbasis gradien. Dengan proses tersebut, encoder secara bertahap belajar mengenali informasi yang penting, sedangkan decoder belajar menggunakan informasi tersebut untuk menghasilkan kembali data.

 

Apa Itu Ruang Laten?

Konsep ruang laten (latent space) merupakan bagian penting dalam memahami autoencoder dan VAE. Ruang laten dapat dipahami sebagai ruang matematis yang berisi representasi ringkas dari karakteristik penting suatu kumpulan data. Informasi di dalamnya tidak selalu dapat diamati secara langsung dari data asli.

Untuk mempermudah pemahaman, bayangkan sebuah jembatan yang dilengkapi sensor untuk mengukur berat setiap kendaraan yang melintas. Sensor hanya mengetahui berat kendaraan. Sensor tersebut tidak memiliki kamera sehingga tidak dapat melihat apakah kendaraan yang lewat adalah sedan, SUV, van, bus, atau truk.

Berat kendaraan merupakan variabel yang dapat diamati. Sementara jenis kendaraan dapat dianggap sebagai variabel laten karena tidak diamati secara langsung, tetapi berpengaruh terhadap berat kendaraan.

Dalam machine learning, hubungan seperti ini banyak ditemukan. Data yang terlihat merupakan hasil dari berbagai karakteristik tersembunyi yang mendasarinya.

Pada gambar wajah, misalnya, piksel merupakan data yang dapat diamati. Namun, karakteristik seperti bentuk wajah, posisi mata, warna rambut, ekspresi, dan orientasi kepala dapat dianggap sebagai faktor laten yang memengaruhi susunan piksel tersebut. VAE berusaha mempelajari representasi faktor-faktor laten tersebut dalam bentuk distribusi probabilitas.

Ruang Laten dan Pengurangan Dimensi
Salah satu fungsi penting autoencoder adalah pengurangan dimensi (dimensionality reduction). Dalam machine learning, dimensi tidak selalu berarti panjang, lebar, atau tinggi seperti dalam ruang fisik. Dimensi dapat merujuk pada jumlah fitur yang digunakan untuk merepresentasikan sebuah data.

Sebagai contoh, gambar hitam-putih berukuran 28 × 28 piksel memiliki 784 piksel. Jika setiap piksel direpresentasikan sebagai satu nilai, gambar tersebut dapat dianggap sebagai data berdimensi 784.

Jika gambar yang sama memiliki tiga kanal warna RGB, jumlah dimensinya menjadi 28 × 28 × 3 atau 2.352 nilai.

Namun, bukan berarti semua nilai tersebut sama pentingnya. Untuk gambar angka tulisan tangan, sebagian besar informasi yang dibutuhkan untuk mengenali angka sebenarnya terkonsentrasi pada pola tertentu. Latar belakang atau variasi kecil pada piksel mungkin tidak terlalu penting.

Autoencoder berusaha memampatkan informasi tersebut ke dalam representasi berdimensi lebih rendah tanpa kehilangan karakteristik penting. Inilah yang kemudian disebut sebagai ruang laten.

 

Struktur Dasar Autoencoder

Secara umum, autoencoder memiliki tiga komponen penting.

  1. Encoder
    Encoder bertugas menerima data input dan mengubahnya menjadi representasi laten. Jika data awal memiliki dimensi yang sangat besar, encoder secara bertahap mengurangi jumlah informasi yang harus dibawa menuju lapisan paling dalam.

    Dalam arsitektur sederhana, setiap lapisan encoder dapat memiliki jumlah neuron yang semakin sedikit. Proses ini menciptakan semacam penyempitan informasi yang sering disebut bottleneck.

  2. Bottleneck
    Bottleneck merupakan bagian paling ringkas dari autoencoder. Di sinilah representasi laten disimpan. Bottleneck sengaja dibuat lebih kecil daripada data input agar model tidak dapat sekadar menyalin data asli secara langsung.

    Model dipaksa untuk menentukan informasi mana yang paling penting untuk mempertahankan karakteristik data.

  3. Decoder
    Decoder menerima representasi laten dari bottleneck dan mencoba membangun kembali data awal. Dalam proses pelatihan, hasil decoder dibandingkan dengan input asli. Perbedaan keduanya digunakan untuk memperbarui parameter jaringan.

Arsitektur encoder dan decoder dapat menggunakan berbagai jenis neural network. Untuk gambar, misalnya, autoencoder dapat menggunakan convolutional neural network atau CNN. Arsitektur berbasis transformer juga dapat digunakan untuk jenis data tertentu.

 

Apa yang Membuat VAE Berbeda?

Autoencoder biasa pada dasarnya belajar menghasilkan representasi laten yang bersifat deterministik. Artinya, suatu input tertentu cenderung dipetakan ke satu representasi tertentu. VAE menggunakan pendekatan yang berbeda. Alih-alih mengatakan bahwa sebuah input direpresentasikan oleh satu titik tertentu dalam ruang laten, VAE mempelajari distribusi probabilitas untuk representasi tersebut.

Dengan demikian, sebuah data tidak hanya memiliki satu representasi laten, tetapi berada dalam suatu wilayah kemungkinan. Pendekatan ini membuat ruang laten menjadi lebih terstruktur dan memungkinkan model melakukan proses sampling.

Inilah kemampuan yang sangat penting bagi VAE. Setelah dilatih, model tidak hanya dapat merekonstruksi data yang pernah diberikan, tetapi juga mengambil titik baru dari ruang laten dan menggunakannya untuk menghasilkan data baru.

Misalnya, VAE dilatih menggunakan ribuan gambar wajah. Setelah pelatihan, model dapat mengambil sampel baru dari ruang laten dan menghasilkan wajah yang sebelumnya tidak ada dalam data pelatihan, tetapi tetap memiliki karakteristik yang menyerupai kumpulan data tersebut.

 

Bagaimana Cara Kerja Variational Autoencoder?

Secara sederhana, alur kerja VAE dapat dibagi menjadi beberapa tahap.

Pertama, data input x diberikan kepada encoder. Encoder kemudian tidak langsung menghasilkan satu vektor laten z. Sebaliknya, encoder menghasilkan parameter distribusi laten, terutama mean (μ) dan standar deviasi (σ).

Kedua nilai tersebut menggambarkan distribusi probabilitas yang menjadi representasi laten dari input. Setelah itu, model mengambil sampel dari distribusi tersebut untuk mendapatkan nilai laten z. Nilai z kemudian diberikan kepada decoder. Decoder menggunakan informasi tersebut untuk menghasilkan rekonstruksi data.

Pada saat pelatihan, VAE tidak hanya memperhatikan seberapa mirip hasil rekonstruksi dengan data asli. Model juga berusaha menjaga agar distribusi ruang laten memiliki struktur tertentu. Dua tujuan tersebut diwujudkan melalui komponen utama fungsi kerugian VAE, yaitu reconstruction loss dan Kullback-Leibler divergence (KL divergence).

Reconstruction Loss
Reconstruction loss atau kesalahan rekonstruksi mengukur seberapa jauh hasil keluaran decoder dari data asli. Jika VAE menerima sebuah gambar sebagai input dan menghasilkan gambar yang sangat berbeda, nilai kesalahannya akan tinggi. Sebaliknya, jika hasil rekonstruksi sangat mirip dengan input, nilai kesalahannya lebih rendah.

Beberapa fungsi dapat digunakan untuk menghitung kesalahan rekonstruksi, termasuk mean squared error (MSE) dan cross-entropy, tergantung karakteristik data dan rancangan model. Pada awal pelatihan, bobot jaringan biasanya belum optimal. Karena itu, hasil rekonstruksi kemungkinan masih buruk.

Melalui proses backpropagation dan optimasi berbasis gradien, parameter encoder dan decoder diperbarui berulang kali. Model kemudian belajar menghasilkan representasi laten yang lebih berguna dan rekonstruksi yang lebih akurat. Namun, jika hanya menggunakan reconstruction loss, VAE dapat mengalami masalah. Model dapat terlalu fokus pada data pelatihan sehingga ruang latennya tidak memiliki struktur yang baik untuk menghasilkan sampel baru.

Di sinilah KL divergence berperan.

Kullback-Leibler Divergence
Kullback-Leibler divergence atau KL divergence merupakan ukuran untuk membandingkan dua distribusi probabilitas. Dalam VAE, KL divergence digunakan untuk mengatur distribusi laten agar mendekati distribusi tertentu yang telah ditetapkan, biasanya distribusi normal standar atau Gaussian.

Mengapa hal ini diperlukan?

Bayangkan ruang laten sebagai sebuah peta. Jika titik-titik data yang dipelajari tersebar tanpa aturan, terdapat kemungkinan besar bahwa area kosong di antara titik-titik tersebut tidak menghasilkan data yang masuk akal ketika diterjemahkan oleh decoder.

Sebaliknya, VAE berusaha menciptakan ruang laten yang lebih teratur. Ada dua sifat penting yang diharapkan dari ruang laten tersebut, yaitu kontinuitas dan kelengkapan. Kontinuitas berarti titik-titik yang berdekatan dalam ruang laten seharusnya menghasilkan data yang memiliki karakteristik serupa.

Kelengkapan berarti titik yang diambil dari ruang laten sebisa mungkin menghasilkan keluaran yang bermakna. Dengan mengatur distribusi laten agar mendekati distribusi normal, VAE dapat menghasilkan ruang yang lebih terstruktur. Model kemudian dapat mengambil titik baru dari ruang tersebut dan menggunakannya untuk menghasilkan sampel baru.

 

ELBO dalam VAE

Dua tujuan utama VAE, yaitu rekonstruksi data dan pengaturan distribusi laten, kemudian dirangkum dalam konsep yang disebut Evidence Lower Bound (ELBO). ELBO dapat dipahami sebagai tujuan optimasi yang memungkinkan VAE belajar dari data sambil menjaga agar representasi laten tetap memiliki struktur probabilistik yang sesuai.

Dalam praktiknya, pelatihan VAE berusaha meningkatkan ELBO atau, dalam bentuk fungsi loss yang lazim digunakan, meminimalkan kombinasi kesalahan rekonstruksi dan KL divergence.

Dengan pendekatan ini, model tidak hanya belajar menjawab pertanyaan, “Bagaimana saya dapat merekonstruksi data ini?” tetapi juga “Bagaimana saya dapat membangun ruang laten yang memungkinkan saya menghasilkan data baru?”

Perbedaan tujuan inilah yang menjadi salah satu karakteristik utama VAE dibandingkan autoencoder biasa.

 

Apa Itu Trik Reparameterisasi?

Ada satu masalah penting dalam VAE. Model harus mengambil sampel secara acak dari distribusi laten. Sementara itu, jaringan neural dilatih menggunakan backpropagation, yang membutuhkan operasi yang dapat diturunkan secara matematis.

Keacakan langsung menjadi kendala karena proses sampling tersebut dapat mengganggu aliran gradien. Untuk mengatasi persoalan ini, VAE menggunakan reparameterization trick atau trik reparameterisasi. Alih-alih mengambil sampel langsung dari distribusi yang ditentukan oleh μ dan σ, model menggunakan variabel acak independen ε.

Secara sederhana, prosesnya dapat dituliskan:

z = μ + σ × ε

Dalam formulasi tersebut, μ merupakan nilai rata-rata, σ adalah standar deviasi, sedangkan ε merupakan nilai acak yang diambil dari distribusi normal standar. Dengan cara tersebut, proses keacakan dipisahkan dari parameter yang harus dipelajari oleh jaringan.

Model tetap dapat menghasilkan variasi acak, tetapi gradien masih dapat mengalir melalui μ dan σ selama proses backpropagation. Trik reparameterisasi menjadi salah satu komponen penting yang membuat VAE dapat dilatih secara efektif menggunakan optimasi berbasis gradien.

 

Mengapa VAE Bisa Menghasilkan Data Baru?

Kemampuan generatif VAE berasal dari struktur ruang laten yang dipelajarinya. Setelah model selesai dilatih, pengguna tidak harus memberikan data yang persis sama dengan data pelatihan. Model dapat mengambil titik tertentu dari distribusi ruang laten dan memasukkannya ke decoder. Decoder kemudian menerjemahkan titik tersebut menjadi data baru.

Contohnya, sebuah VAE dilatih dengan gambar angka tulisan tangan dari 0 hingga 9. Setelah dilatih, pengguna dapat mengambil titik tertentu dari ruang laten dan menghasilkan gambar angka baru. Gambar tersebut bukan salinan langsung dari satu gambar tertentu. Sebaliknya, gambar tersebut merupakan hasil kombinasi karakteristik yang telah dipelajari model dari kumpulan data.

Hal tersebut juga memungkinkan proses interpolasi.

Misalnya, dua titik dalam ruang laten masing-masing merepresentasikan dua jenis gambar. Dengan mengambil titik di antara keduanya, model dapat menghasilkan gambar yang secara bertahap menggabungkan karakteristik kedua titik tersebut.

Conditional VAE
Salah satu keterbatasan VAE biasa adalah kurangnya kendali langsung terhadap jenis output yang dihasilkan.

Misalnya, VAE yang dilatih menggunakan gambar angka 0 sampai 9 dapat menghasilkan berbagai angka. Namun, tanpa mekanisme tambahan, pengguna tidak selalu dapat menentukan angka tertentu yang ingin dihasilkan. Masalah tersebut dapat diatasi menggunakan Conditional Variational Autoencoder (CVAE).

CVAE menambahkan informasi kondisi atau label ke dalam proses pembelajaran. Dengan informasi tersebut, model dapat diarahkan untuk menghasilkan data dengan karakteristik tertentu.

Sebagai contoh, model dapat dilatih menggunakan gambar wajah dan informasi label seperti jenis ekspresi atau keberadaan atribut tertentu. Ketika menghasilkan data baru, kondisi tersebut dapat digunakan untuk mengarahkan output decoder.

Pendekatan ini membuat proses generasi menjadi lebih terkontrol dibandingkan VAE biasa.

 

Penerapan Variational Autoencoder

VAE dapat digunakan untuk berbagai kebutuhan dalam AI dan machine learning.

  • Generasi gambar
    Salah satu penggunaan VAE yang paling mudah dipahami adalah menghasilkan gambar baru berdasarkan pola yang dipelajari dari kumpulan data. Model dapat mempelajari representasi laten dari wajah, objek, angka tulisan tangan, atau berbagai jenis gambar lainnya.

  • Pengurangan dimensi
    Karena encoder memampatkan data menjadi representasi yang lebih ringkas, VAE dapat digunakan untuk mempelajari struktur berdimensi rendah dari data kompleks. Representasi tersebut dapat dimanfaatkan dalam proses analisis data dan tugas machine learning lainnya.

  • Denoising
    Autoencoder dapat digunakan untuk menghilangkan noise dari data. Model dilatih agar mampu menghasilkan kembali informasi utama dari input yang telah mengalami gangguan. Pendekatan ini dapat digunakan pada gambar, suara, maupun bentuk data lainnya.

  • Deteksi anomali
    VAE juga dapat digunakan dalam deteksi anomali. Model dapat dilatih menggunakan data yang dianggap normal. Ketika diberikan data yang memiliki karakteristik sangat berbeda, hasil rekonstruksinya dapat menunjukkan perbedaan yang lebih besar. Informasi tersebut dapat menjadi salah satu sinyal untuk mengidentifikasi anomali.

  • Penemuan molekul
    Dalam penelitian ilmiah, model generatif seperti VAE dapat digunakan untuk mempelajari representasi molekul dan menghasilkan struktur baru berdasarkan pola yang dipelajari. Pendekatan semacam ini dapat mendukung penelitian penemuan obat, meskipun hasil model tetap membutuhkan validasi ilmiah dan eksperimental lebih lanjut.

 

VAE vs GAN

VAE sering dibandingkan dengan Generative Adversarial Network (GAN) karena keduanya dapat digunakan untuk menghasilkan data baru. 

Namun, keduanya memiliki mekanisme yang berbeda. GAN terdiri atas dua jaringan utama, yaitu generator dan discriminator. Generator bertugas menghasilkan data palsu yang menyerupai data asli. Sementara itu, discriminator bertugas membedakan data asli dan data hasil generator.

Kedua jaringan tersebut dilatih secara bersamaan dengan tujuan yang berlawanan. Generator berusaha menghasilkan data yang semakin sulit dibedakan dari data asli, sedangkan discriminator berusaha meningkatkan kemampuannya dalam mengenali data palsu.

VAE memiliki pendekatan yang berbeda. VAE mempelajari distribusi ruang laten dan menggunakan proses sampling untuk menghasilkan data baru. Salah satu karakteristik VAE adalah proses pelatihannya relatif lebih langsung karena tidak membutuhkan kompetisi antara dua jaringan seperti GAN. Namun, pada generasi gambar tertentu, hasil VAE klasik dapat terlihat lebih halus atau buram dibandingkan hasil GAN.

GAN, di sisi lain, dapat menghasilkan gambar yang sangat tajam, tetapi proses pelatihannya dapat lebih sulit dikendalikan. Karena itu, pemilihan antara VAE dan GAN bergantung pada kebutuhan aplikasi, karakteristik data, serta tujuan model.

Apa Itu VAE-GAN?
Perbedaan karakteristik tersebut kemudian mendorong munculnya pendekatan hibrida yang dikenal sebagai VAE-GAN. Sesuai namanya, pendekatan ini menggabungkan konsep VAE dan GAN. Tujuannya adalah memanfaatkan kemampuan VAE dalam mempelajari ruang laten sekaligus memanfaatkan kemampuan GAN untuk menghasilkan keluaran yang lebih realistis.

Dalam salah satu pendekatan VAE-GAN, komponen discriminator digunakan untuk membantu menilai kualitas hasil rekonstruksi atau generasi. Dengan demikian, model tidak hanya berusaha menghasilkan rekonstruksi yang secara matematis dekat dengan input, tetapi juga berusaha menghasilkan data yang secara visual atau statistik lebih menyerupai data asli.

Pendekatan hibrida tersebut menunjukkan bahwa VAE bukanlah teknologi yang berdiri sendiri. Konsep ruang laten, probabilitas, sampling, dan representasi generatifnya dapat dikombinasikan dengan berbagai arsitektur lain untuk membangun model yang lebih sesuai dengan kebutuhan tertentu.

 

Mengapa VAE Penting dalam Perkembangan AI Generatif?

VAE memiliki posisi penting dalam perkembangan AI generatif karena menawarkan cara yang sistematis untuk mempelajari distribusi data. Model ini tidak sekadar menghafal contoh pelatihan. VAE berusaha mempelajari struktur laten yang mendasari data tersebut.

Jika data pelatihan berupa gambar wajah, misalnya, model dapat belajar representasi yang berkaitan dengan karakteristik tertentu dari wajah. Jika datanya berupa suara, model dapat mempelajari pola tertentu yang membentuk karakteristik suara tersebut.

Pendekatan probabilistik memungkinkan model melakukan sampling dari ruang laten sehingga data baru dapat dihasilkan. Konsep tersebut juga memperkenalkan cara berpikir penting dalam machine learning modern: data yang kompleks dapat dipahami melalui representasi berdimensi lebih rendah dan distribusi probabilistik yang mendasarinya.

 

Kesimpulan

Variational Autoencoder (VAE) adalah model generatif berbasis deep learning yang menggabungkan konsep autoencoder, ruang laten, probabilitas, dan sampling untuk mempelajari sekaligus menghasilkan data baru.

VAE memiliki encoder yang mengubah data menjadi representasi laten, bottleneck yang menyimpan informasi tersebut, serta decoder yang mengubahnya kembali menjadi data. Perbedaannya dengan autoencoder biasa terletak pada cara VAE merepresentasikan ruang laten.

Alih-alih memetakan input ke satu titik tetap, VAE mempelajari distribusi probabilitas yang direpresentasikan melalui parameter seperti mean dan standar deviasi. Model kemudian dapat mengambil sampel dari distribusi tersebut untuk menghasilkan data baru.

Dalam proses pelatihan, VAE menggabungkan reconstruction loss dengan KL divergence, sedangkan ELBO menjadi dasar penting dalam proses optimasinya. Trik reparameterisasi memungkinkan proses sampling tetap dapat dilatih menggunakan backpropagation.

Kemampuan tersebut membuat VAE dapat digunakan untuk berbagai kebutuhan, termasuk generasi gambar, pengurangan dimensi, denoising, deteksi anomali, hingga penelitian molekul.

Dengan memahami VAE, kita juga dapat memahami salah satu gagasan penting di balik AI generatif: model tidak hanya belajar mengenali data yang sudah ada, tetapi juga mempelajari struktur dan distribusi yang memungkinkan terciptanya data baru.

Bagikan artikel ini

Komentar ()

Video Terkait