Diterbitkan: 23 November 2023
Kontributor: Dave Bergmann, Cole Stryker
Autoencoder adalah jenis arsitektur jaringan saraf yang dirancang untuk secara efisien mengompresi (encode) data input hingga ke fitur-fitur esensialnya, kemudian merekonstruksi (decode) input asli dari representasi yang dikompresi ini.
Dengan menggunakan machine learning tanpa pengawasan, penyandi otomatis dilatih untuk menemukan variabel laten dari data input: variabel tersembunyi atau acak yang, meskipun tidak dapat diamati secara langsung, pada dasarnya menginformasikan cara data didistribusikan. Secara kolektif, variabel laten dari sekumpulan data input yang diberikan disebut sebagai ruang laten. Selama pelatihan, autoencoder mempelajari variabel laten mana yang dapat digunakan untuk merekonstruksi data asli secara paling akurat: representasi ruang laten ini dengan demikian hanya mewakili informasi yang paling penting yang terkandung dalam input asli.
Sebagian besar jenis autoencoder digunakan untuk tugas kecerdasan buatan yang berkaitan dengan ekstraksi fitur, seperti kompresi data, denoising gambar, deteksi anomali dan pengenalan wajah. Jenis autoencoder tertentu, seperti variational autoencoder (VAE) dan adversarial autoencoder (AAE), mengadaptasi arsitektur autoencoder untuk digunakan dalam tugas-tugas generatif, seperti pembuatan gambar atau menghasilkan data deret waktu.
Sekarang tersedia—studio perusahaan generasi berikutnya bagi pembuat AI untuk melatih, memvalidasi, menyetel, dan menerapkan model AI. Coba IBM watsonx.ai secara gratis.
Berlangganan buletin IBM
Meskipun semua model autoencoder menyertakan encoder dan decoder, namun tidak semua model encoder-decoder adalah autoencoder.
Kerangka kerja encoder-decoder , di mana jaringan encoder mengekstraksi fitur utama dari data input dan jaringan decoder mengambil data fitur yang diekstraksi tersebut sebagai inputnya, digunakan dalam berbagai model pembelajaran mendalam, seperti arsitektur convolutional neural network (CNN) yang digunakan dalam tugas-tugas visi komputer seperti segmentasi gambar atau arsitektur recurrent neural network (RNN) yang digunakan dalam tugas-tugas urutan-ke-urutan (seq2seq).
Pada sebagian besar aplikasi model encoder-decoder, output jaringan saraf berbeda dari inputnya. Sebagai contoh, dalam model segmentasi gambar seperti U-Net, jaringan encoder mengekstrak data fitur dari gambar input untuk menentukan klasifikasi semantik piksel yang berbeda; dengan menggunakan peta fitur dan klasifikasi berdasarkan piksel tersebut, jaringan decoder kemudian membuat masker segmentasi untuk setiap objek atau wilayah dalam gambar. Tujuan dari model encoder-decoder ini adalah untuk melabeli piksel secara akurat berdasarkan kelas semantiknya: model ini dilatih melalui pembelajaran terawasi, mengoptimalkan prediksi model terhadap kumpulan data "kebenaran dasar" dari gambar yang dilabeli oleh para ahli manusia.
Autoencoder merujuk pada subset spesifik arsitektur encoder-decoder yang dilatih melalui pembelajaran yang tidak diawasi untuk merekonstruksi data input sendiri.
Karena tidak bergantung pada data pelatihan berlabel, autoencoder tidak dianggap sebagai metode pembelajaran yang diawasi. Seperti semua metode pembelajaran tanpa pengawasan, penyandi otomatis dilatih untuk menemukan pola tersembunyi dalam data yang tidak berlabel, daripada memprediksi pola yang diketahui yang ditunjukkan dalam data pelatihan berlabel; namun, seperti model pembelajaran yang diawasi - dan tidak seperti kebanyakan contoh pembelajaran tanpa pengawasan - penyandi otomatis memiliki kebenaran dasar untuk mengukur keluarannya: masukan asli itu sendiri (atau versi modifikasi dari masukan tersebut). Oleh karena itu, mereka dianggap sebagai "pembelajaran yang diawasi sendiri" - oleh karena itu, autoencoder.
Autoencoder menemukan variabel laten dengan melewatkan data input melalui "kemacetan" sebelum mencapai decoder. Hal ini memaksa encoder untuk belajar mengekstrak dan melewatkan hanya informasi yang paling kondusif untuk merekonstruksi input asli secara akurat.
Meskipun varian autoencoder yang berbeda mengubah elemen tertentu dari jaringan saraf tiruan mereka agar sesuai dengan tujuan dan jenis data tertentu, semua autoencoder memiliki elemen struktural yang sama:
Encoder terdiri atas lapisan-lapisan yang mengkodekan representasi terkompresi dari data input melalui pengurangan dimensi. Dalam autoencoder yang khas, lapisan tersembunyi dari jaringan saraf berisi jumlah node yang semakin kecil daripada lapisan input: saat data melintasi lapisan encoder, data dikompresi oleh proses "pemampatan" itu sendiri ke dalam dimensi yang lebih sedikit.
Kemacetan (atau "kode") berisi representasi input yang paling terkompresi: ini adalah lapisan output dari jaringan encoder dan lapisan input dari jaringan decoder. Tujuan mendasar dari desain dan pelatihan autoencoder adalah menemukan jumlah minimum fitur (atau dimensi) penting yang diperlukan untuk rekonstruksi data masukan yang efektif. Representasi ruang laten–yaitu, kode–yang muncul dari lapisan ini kemudian dimasukkan ke dalam decoder.
Dekoder terdiri atas lapisan tersembunyi dengan jumlah node yang semakin besar yang mendekompresi (atau mendekode) representasi data yang dikodekan, yang pada akhirnya merekonstruksi data kembali ke bentuk aslinya, sebelum pengodean. Output yang direkonstruksi ini kemudian dibandingkan dengan "kebenaran dasar"-yang dalam banyak kasus merupakan input asli-untuk mengukur keampuhan autoencoder. Perbedaan antara output dan ground truth disebut kesalahan rekonstruksi.
Dalam beberapa aplikasi autoencoder, decoder dapat dibuang setelah pelatihan: dalam hal ini, satu-satunya tujuan decoder adalah untuk melatih encoder—mirip dengan peran diskriminator dalam generative adversarial network (GAN)—yang kemudian digunakan sebagai komponen dari jaringan saraf yang berbeda. Pada banyak autoencoder, decoder terus melayani tujuan pasca-pelatihan: misalnya, pada VAE, decoder mengeluarkan sampel data baru.
Salah satu keuntungan utama menggunakan autoencoder dibandingkan teknik dimensionalitas lainnya seperti principal component analysis (PCA) adalah autoencoder dapat menangkap korelasi non-linear yang kompleks. Karenanya, fungsi aktivasi yang digunakan dalam pembuat enkode otomatis biasanya merupakan fungsi non-linear, seperti fungsi sigmoid.
Berbagai jenis autoencoder membuat adaptasi pada struktur ini agar lebih sesuai dengan tugas dan tipe data yang berbeda. Selain memilih jenis jaringan saraf yang sesuaimisalnya, arsitektur berbasis CNN, arsitektur berbasis RNN seperti memori jangka pendek yang panjang, arsitektur transformator, atau jaringan saraf feed-forward vanila sederhana—rancangan autoencoder memerlukan beberapa hiperparameter:
Autoencoder yang kurang lengkap adalah struktur autoencoder sederhana yang digunakan terutama untuk pengurangan dimensi. Lapisan tersembunyinya mengandung lebih sedikit node daripada lapisan input dan output, dan kapasitas kemacetan-nya tetap.
Tujuan dari hambatan ini adalah untuk mencegah autoencoder melakukan overfitting terhadap data pelatihannya. Tanpa membatasi kapasitas bottleneck secara memadai, jaringan cenderung mempelajari fungsi identitas antara input dan output: dengan kata lain, jaringan dapat belajar untuk meminimalkan kehilangan rekonstruksi hanya dengan menyalin input secara langsung. Dengan memaksa data untuk dikompresi secara signifikan, jaringan saraf harus belajar untuk mempertahankan hanya fitur yang paling penting untuk rekonstruksi.
Tetapi jika encoder dan decoder memiliki kapasitas yang cukup tinggi—yaitu, jika mereka memproses input data yang besar atau kompleks—maka autoencoder (bahkan dengan bottleneck) masih dapat mempelajari fungsi identitas, sehingga membuatnya tidak berguna. Hal ini membuat autoencoder yang kurang lengkap menjadi tidak fleksibel dan membatasi kapasitasnya.
Autoencoder yang diregulasi mengatasi kekurangan autoencoder yang tidak lengkap dengan memperkenalkan regularisasi: teknik yang membatasi atau mengubah cara model menghitung kesalahan rekonstruksi. Istilah regularisasi ini tidak hanya mengurangi overfitting, namun juga memungkinkan autoencoder mempelajari fitur atau fungsi yang berguna.
Sparse autoencoders (SAE) memberlakukan batasan sparsity : bukan membuat hambatan informasi dengan mengurangi jumlah node di setiap lapisan tersembunyi, SAE membuat hambatan dengan mengurangi jumlah node yang dapat diaktifkan pada saat yang sama.
Sedangkan autoencoder standar yang kurang lengkap akan menggunakan seluruh jaringan saraf untuk setiap pengamatan, autoencoder dengan fungsi sparsitas akan dihukum untuk setiap neuron yang telah diaktifkan melebihi ambang batas tertentu. Hal ini memungkinkan encoder dan decoder memiliki kapasitas yang lebih tinggi tanpa risiko overfitting pada data pelatihan (karena tidak semua neuron akan diaktifkan). Hal ini juga memungkinkan lapisan tersembunyi berisi node khusus untuk menemukan fitur-fitur tertentu: fungsi sparsity memastikan bahwa hanya "sepadan dengan penalti" untuk mengaktifkan node-node tersebut jika fitur-fitur tersebut ada.
Meskipun perhitungan kesalahan rekonstruksi dan pengoptimalan bobot parameter selanjutnya melalui backpropagation terjadi secara terpisah, pengoptimalan ini diatur oleh fungsi sparsitas ini. Oleh karena itu, autoencoder dipaksa untuk mempelajari representasi ruang laten yang paling efektif dalam batasan sparsitas yang diberikan.
Fungsi yang digunakan untuk menerapkan batasan sparsitas biasanya adalah regularisasi L1 atau divergensi KL.
Divergensi KL
Divergensi Kullback-Leibler (KL) mengukur perbedaan antara dua distribusi probabilitas. Ketika digunakan dalam konteks SAE, penalti yang diberikan kepada jaringan setelah setiap batch pelatihan sebanding dengan perbedaan KL antara distribusi target nilai aktivasi—sparsitas yang diinginkan—dan distribusi aktual nilai aktivasi. Seperti yang akan dibahas nanti dalam artikel ini, divergensi KL juga digunakan untuk mengoptimalkan keakuratan distribusi probabilitas yang dipelajari oleh variational autoencoder (VAE).
Pertama kali diperkenalkan pada tahun 2011 oleh para peneliti dari Université de Montréal,1 autoencoder kontraktif dirancang untuk tidak peka terhadap variasi kecil (atau "gangguan") pada data masukan untuk mengurangi overfitting dan menangkap informasi penting secara lebih efektif.
Ini dicapai dengan menambahkan istilah regularisasi dalam pelatihan, menghukum jaringan karena mengubah output sebagai respons terhadap perubahan input yang tidak cukup besar. Istilah penalti ini dihitung menggunakan dua konsep matematika:
Secara khusus, istilah penalti adalah norma Frobenius dari matriks Jacobian dari aktivasi neuron dalam jaringan penyandi sehubungan dengan input. Istilah penalti dan algoritma fungsi kerugian yang digunakan untuk mengurangi kesalahan rekonstruksi saling berlawanan: fungsi kerugian rekonstruksi cenderung mengamati variasi dalam data input sementara istilah penalti cenderung mengabaikannya. Dengan menggabungkan kedua istilah tersebut, jaringan dipaksa untuk mempelajari representasi terkompresi dari input yang hanya berisi variabel yang paling penting.
Denoising autoencoder diberikan data input yang rusak sebagian dan dilatih untuk mengembalikan input asli dengan menghapus informasi yang tidak berguna melalui pengurangan dimensi.
Tidak seperti kebanyakan autoencoder, autoencoder denoising tidak memiliki data kebenaran dasar sebagai inputnya. Sebagai gantinya, noise Gaussian ditambahkan ke data asli-misalnya, menambahkan statik acak ke gambar-dan denoising autoencoder (DAE) belajar menyaringnya. Selama pelatihan model, kesalahan rekonstruksi output denoised tidak diukur terhadap data input yang rusak, tetapi terhadap gambar asli.
Selain mencegah overfitting, teknik pelatihan ini juga membuat autoencoder denoising sangat berguna untuk membersihkan file gambar dan audio yang berisik atau rusak. Autoencoder denoising juga telah berfungsi sebagai paradigma pelatihan dasar untuk model pembuatan gambar yang canggih seperti Stable Diffusion.4
Variational autoencoders (VAE) adalah model generatif yang mempelajari representasi terkompresi dari data pelatihan mereka sebagai distribusi probabilitas, yang digunakan untuk menghasilkan data sampel baru dengan membuat variasi dari representasi yang telah dipelajari.
Perbedaan mendasar antara VAE dan jenis pengode otomatis lainnya adalah bahwa meskipun sebagian besar pengode otomatis mempelajari model ruang laten diskrit, VAE mempelajari model variabel laten kontinu . Alih-alih vektor pengkodean tunggal untuk ruang laten, VAE memodelkan dua vektor yang berbeda: vektor rata-rata, "μ", dan vektor deviasi standar, "σ". Karena vektor ini menangkap atribut laten sebagai distribusi probabilitas-yaitu, vektor ini mempelajari pengkodean stokastik dan bukan pengkodean deterministik-VAE memungkinkan interpolasi dan pengambilan sampel secara acak, sehingga memperluas kemampuan dan contoh penggunaan. Artinya VAE adalah model AI generatif.
Dalam istilah yang lebih sederhana, VAE belajar mengodekan pembelajaran fitur penting dari input dalam set data yang dilatih dengan cara yang fleksibel dan perkiraan yang memungkinkan mereka menghasilkan sampel baru yang menyerupai data pelatihan asli. Fungsi kerugian yang digunakan untuk meminimalkan kesalahan rekonstruksi diatur oleh perbedaan KL antara distribusi probabilitas data pelatihan ( distribusi prior) dan distribusi variabel laten yang dipelajari oleh VAE ( distribusi posterior). Fungsi loss yang teregulasi ini memungkinkan VAE untuk menghasilkan sampel baru yang menyerupai data yang dilatih sambil menghindari overfitting, yang dalam hal ini berarti menghasilkan sampel baru yang terlalu identik dengan data asli.
Untuk menghasilkan sampel baru, VAE mengambil sampel vektor laten acak(ε) dari dalam unit Gaussian (tautan berada di luar ibm.com)—dengan kata lain, memilih titik awal acak dari dalam distribusi normal-—menggesernya berdasarkan rata-rata distribusi laten(μ) dan menskalakannya dengan varians distribusi laten(σ). Proses ini, yang disebut trik reparameterisasi,5 menghindari pengambilan sampel langsung dari distribusi variasi: karena prosesnya secara acak, proses ini tidak memiliki turunan—yang menghilangkan kebutuhan akan backpropagation atas proses pengambilan sampel.
Apabila VAE digunakan untuk tugas-tugas generatif, encoder sering kali dapat dibuang setelah pelatihan. Evolusi VAE yang lebih canggih, seperti VAE bersyarat, memberi pengguna kontrol lebih besar atas sampel yang dihasilkan dengan menyediakan input bersyarat yang memodifikasi output encoder.
Autoencoder generatif dan deterministik memiliki berbagai macam contoh penggunaan di berbagai bidang dan tipe data.
Artikel ini mengeksplorasi esensi dari dua pendekatan ilmu data: pembelajaran yang diawasi dan tanpa pengawasan. Cari tahu pendekatan mana yang tepat untuk situasi Anda.
Pengenalan terhadap dua disiplin ilmu yang paling banyak dicari dalam Machine Learning. Pertama, pelajari tentang teori di balik Neural Network dan beberapa arsitektur Deep Learning modern. Setelah Anda mengembangkan beberapa model Deep Learning, kursus ini akan berfokus pada Pembelajaran Penguatan.
Dibangun dari kolaborasi IBM dengan NASA, model watsonx.ai dirancang untuk mengubah data satelit menjadi peta resolusi tinggi banjir, kebakaran, dan perubahan lanskap lainnya untuk menyingkap masa lalu planet kita dan mengisyaratkan masa depannya. IBM membangun model ini di atas autoencoder bertopeng untuk memproses video dan mengadaptasinya ke rekaman satelit.
1 "Penyandi Otomatis Kontraktif: Invarians Eksplisit Selama Ekstraksi Fitur," Prosiding Konferensi Internasional Pembelajaran Mesinke-28 , Juli 2011
2 " Frobenius Norm," Wolfram Mathworld
3 "Matrix Norms," UC Berkeley, Februari 2021
4 "Sintesis Gambar Resolusi Tinggi Dengan Model Difusi Laten," Prosiding Konferensi IEEE / CVF tentang Visi Komputer dan Pengenalan Pola (CVPR), Juni 2022
5 "Auto-Encoding Variational Bayes," arXiv, Desember 2013 (terakhir diperbarui 10 Desember 2022)
6 " DALL-E: Menciptakan Gambar dari Teks," OpenAI, 5 Jan 2021
7 " Junction Tree Variational Autoencoder untuk Pembuatan Graf Molekuler," Prosiding Konferensi Internasional Pembelajaran Mesinke-35 , Juli 2018