Beranda Topics autoencoder Apa itu autoencoder?
Jelajahi IBM® watsonx.ai
Representasi abstrak dari machine learning

Diterbitkan: 23 November 2023
Kontributor: Dave Bergmann, Cole Stryker

Apa itu autoencoder?

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.

Ikuti tur IBM® watsonx.ai

Sekarang tersedia—studio perusahaan generasi berikutnya bagi pembuat AI untuk melatih, memvalidasi, menyetel, dan menerapkan model AI. Coba IBM watsonx.ai secara gratis.

Konten terkait

Berlangganan buletin IBM

Autoencoder vs. encoder-decoder

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.

Bagaimana cara kerja 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:

  • Ukuran kode: Ukuran kemcetan menentukan seberapa banyak data yang akan dikompresi. Ukuran kode juga dapat digunakan sebagai istilah regularisasi: penyesuaian ukuran kode adalah salah satu cara untuk mengatasi overfitting atau underfitting.
  • Jumlah lapisan: Kedalaman dari autoencoder diukur dengan jumlah lapisan dalam encoder dan decoder. Kedalaman yang lebih besar memberikan kompleksitas yang lebih besar, sementara kedalaman yang lebih kecil memberikan kecepatan pemrosesan yang lebih besar.
  • Jumlah node per lapisan: Secara umum, jumlah node (atau "neuron") berkurang dengan setiap lapisan encoder, mencapai minimum pada kemacetan, dan meningkat dengan setiap lapisan decoder—meskipun pada varian tertentu, seperti autoencoder yang jarang , hal ini tidak selalu terjadi. Jumlah neuron juga dapat bervariasi sesuai dengan sifat data input: misalnya, autoencoder yang menangani gambar besar akan membutuhkan lebih banyak neuron daripada yang menangani gambar yang lebih kecil.
  • Fungsi kerugian: Ketika melatih autoencoder, fungsi kerugian—yang mengukur kerugian rekonstruksi antara output dan input—digunakan untuk mengoptimalkan bobot model melalui penurunan gradien selama propagasi balik. Algoritma yang ideal untuk fungsi loss bergantung pada tugas yang akan digunakan oleh autoencoder.
Autoencoder yang kurang lengkap

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 teratur

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.

Autoencoder yang jarang

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).

Autoencoder kontraktif

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:

  • Matriks Jacobian berisi semua turunan urutan pertama dari sebuah fungsi yang dapat digunakan untuk propagasi balik. Ini menunjukkan bagaimana gradien jaringan berubah saat input diubah.
  • Norma Frobenius dihitung sebagai "akar kuadrat dari jumlah kuadrat absolut elemen-elemennya."2 Ini mengukur penguatan rata-rata matriks di sepanjang setiap arah ortogonal dalam ruang.3

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

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

Pembuat enkode otomatis yang bervariasi

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.

Contoh penggunaan autoencoder

Autoencoder generatif dan deterministik memiliki berbagai macam contoh penggunaan di berbagai bidang dan tipe data.

  • Kompresi data: Autoencoder secara alami mempelajari representasi terkompresi dari data masukan.
  • Pengurangan dimensi: Pengodean yang dipelajari oleh penyandi otomatis dapat digunakan sebagai masukan ke jaringan saraf komposit yang lebih besar. Pengurangan dimensi data yang kompleks dapat mengekstrak fitur yang relevan dengan tugas-tugas lain, serta meningkatkan kecepatan dan efisiensi komputasi.
  • Deteksi anomali dan pengenalan wajah: Autoencoder dapat mendeteksi anomali, kecurangan, atau cacat lainnya—dan, sebaliknya, mengonfirmasi kecocokan yang asli-dengan menentukan kehilangan rekonstruksi data yang diperiksa relatif terhadap contoh "normal" atau "asli" yang dibandingkan.
  • Denoising gambar dan denoising audio: Pengode otomatis denoising dapat menghapus artefak asing atau kerusakan yang tidak sesuai dengan representasi ruang laten yang dipelajari oleh jaringan.
  • Rekonstruksi gambar: Teknik pembalik yang dipelajari untuk denoising, autoencoders dapat mengisi elemen gambar yang hilang. Mereka juga dapat digunakan untuk mewarnai gambar.
  • Tugas generatif: VAE dan adversarial autoencoders (AAEs), yang mempelajari distribusi probabilistik mirip dengan yang dipelajari oleh VAEs tetapi menggunakan jaringan diskriminator permusuhan (mirip dengan jaringan permusuhan generatif) di tempat divergensi KL, telah digunakan dengan sukses besar untuk tugas-tugas generatif. Aplikasi generatif yang menonjol dari autoencoders termasuk model Dall-E asli OpenAI untuk generasi gambar6 dan bahkan generasi struktur molekul yang digunakan untuk obat-obatan.7
Solusi terkait
watsonx.ai

Anda dapat melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan data yang sedikit.

Jelajahi watsonx.ai

Sumber daya pembuat autoencoder Pembelajaran yang Diawasi vs. Tidak Diawasi: Apa bedanya?

Artikel ini mengeksplorasi esensi dari dua pendekatan ilmu data: pembelajaran yang diawasi dan tanpa pengawasan. Cari tahu pendekatan mana yang tepat untuk situasi Anda.

Pembelajaran Mendalam dan Pembelajaran Penguatan

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.

Model landasan geospasial baru IBM

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.

Ambil langkah selanjutnya

Melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan menggunakan sebagian kecil data dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI.

Mulai uji coba gratis Anda Pesan demo langsung
Catatan kaki

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