AI-For-Beginners/translations/id/lessons/4-ComputerVision/09-Autoencoders
leestott 2555d81160 🌐 Update translations via Co-op Translator 2025-08-29 16:53:37 +00:00
..
AutoEncodersPyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-29 16:53:37 +00:00
AutoencodersTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-29 16:53:37 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-29 16:53:37 +00:00

README.md

Autoencoders

Saat melatih CNN, salah satu masalahnya adalah kita membutuhkan banyak data yang diberi label. Dalam kasus klasifikasi gambar, kita perlu memisahkan gambar ke dalam berbagai kelas, yang merupakan pekerjaan manual.

Pre-lecture quiz

Namun, kita mungkin ingin menggunakan data mentah (tanpa label) untuk melatih ekstraktor fitur CNN, yang disebut pembelajaran mandiri. Alih-alih menggunakan label, kita akan menggunakan gambar pelatihan sebagai input dan output jaringan. Ide utama dari autoencoder adalah kita akan memiliki encoder network yang mengubah gambar input menjadi latent space (biasanya hanya berupa vektor dengan ukuran lebih kecil), lalu decoder network, yang bertujuan untuk merekonstruksi gambar asli.

Autoencoder adalah "jenis jaringan saraf buatan yang digunakan untuk mempelajari pengkodean yang efisien dari data tanpa label."

Karena kita melatih autoencoder untuk menangkap sebanyak mungkin informasi dari gambar asli agar rekonstruksi akurat, jaringan mencoba menemukan embedding terbaik dari gambar input untuk menangkap maknanya.

Diagram AutoEncoder

Gambar dari Keras blog

Skenario Penggunaan Autoencoders

Meskipun merekonstruksi gambar asli tampaknya tidak terlalu berguna dengan sendirinya, ada beberapa skenario di mana autoencoders sangat berguna:

  • Mengurangi dimensi gambar untuk visualisasi atau melatih embedding gambar. Biasanya autoencoders memberikan hasil yang lebih baik daripada PCA, karena mempertimbangkan sifat spasial gambar dan fitur hierarkis.
  • Denoising, yaitu menghilangkan noise dari gambar. Karena noise membawa banyak informasi yang tidak berguna, autoencoder tidak dapat memuat semuanya ke dalam latent space yang relatif kecil, sehingga hanya menangkap bagian penting dari gambar. Saat melatih denoiser, kita mulai dengan gambar asli, dan menggunakan gambar dengan noise yang ditambahkan secara artifisial sebagai input untuk autoencoder.
  • Super-resolution, meningkatkan resolusi gambar. Kita mulai dengan gambar beresolusi tinggi, dan menggunakan gambar dengan resolusi lebih rendah sebagai input autoencoder.
  • Model generatif. Setelah kita melatih autoencoder, bagian decoder dapat digunakan untuk membuat objek baru mulai dari vektor laten acak.

Variational Autoencoders (VAE)

Autoencoder tradisional mengurangi dimensi data input dengan cara tertentu, menemukan fitur penting dari gambar input. Namun, vektor laten sering kali tidak memiliki makna yang jelas. Dengan kata lain, mengambil dataset MNIST sebagai contoh, menentukan digit mana yang sesuai dengan vektor laten yang berbeda bukanlah tugas yang mudah, karena vektor laten yang berdekatan tidak selalu sesuai dengan digit yang sama.

Di sisi lain, untuk melatih model generatif lebih baik memiliki pemahaman tentang latent space. Ide ini membawa kita ke variational auto-encoder (VAE).

VAE adalah autoencoder yang belajar memprediksi distribusi statistik dari parameter laten, yang disebut latent distribution. Sebagai contoh, kita mungkin ingin vektor laten didistribusikan secara normal dengan rata-rata zmean dan standar deviasi zsigma (baik rata-rata maupun standar deviasi adalah vektor dengan dimensi tertentu d). Encoder dalam VAE belajar memprediksi parameter tersebut, lalu decoder mengambil vektor acak dari distribusi ini untuk merekonstruksi objek.

Ringkasnya:

  • Dari vektor input, kita memprediksi z_mean dan z_log_sigma (alih-alih memprediksi standar deviasi itu sendiri, kita memprediksi logaritmanya)
  • Kita mengambil sampel vektor sample dari distribusi N(zmean,exp(zlog_sigma))
  • Decoder mencoba mendekode gambar asli menggunakan sample sebagai vektor input

Gambar dari blog post ini oleh Isaak Dykeman

Variational auto-encoders menggunakan fungsi loss yang kompleks yang terdiri dari dua bagian:

  • Reconstruction loss adalah fungsi loss yang menunjukkan seberapa dekat gambar yang direkonstruksi dengan target (bisa berupa Mean Squared Error, atau MSE). Ini adalah fungsi loss yang sama seperti pada autoencoders biasa.
  • KL loss, yang memastikan distribusi variabel laten tetap dekat dengan distribusi normal. Ini didasarkan pada konsep Kullback-Leibler divergence - metrik untuk memperkirakan seberapa mirip dua distribusi statistik.

Salah satu keuntungan penting dari VAE adalah memungkinkan kita untuk menghasilkan gambar baru dengan relatif mudah, karena kita tahu distribusi mana yang digunakan untuk mengambil sampel vektor laten. Sebagai contoh, jika kita melatih VAE dengan vektor laten 2D pada MNIST, kita kemudian dapat memvariasikan komponen vektor laten untuk mendapatkan digit yang berbeda:

vaemnist

Gambar oleh Dmitry Soshnikov

Perhatikan bagaimana gambar saling menyatu, saat kita mulai mendapatkan vektor laten dari bagian yang berbeda dari ruang parameter laten. Kita juga dapat memvisualisasikan ruang ini dalam 2D:

vaemnist cluster

Gambar oleh Dmitry Soshnikov

✍️ Latihan: Autoencoders

Pelajari lebih lanjut tentang autoencoders dalam notebook berikut:

Properti Autoencoders

  • Spesifik Data - mereka hanya bekerja dengan baik pada jenis gambar yang telah dilatih. Sebagai contoh, jika kita melatih jaringan super-resolution pada bunga, itu tidak akan bekerja dengan baik pada potret. Hal ini karena jaringan dapat menghasilkan gambar beresolusi lebih tinggi dengan mengambil detail halus dari fitur yang dipelajari dari dataset pelatihan.
  • Lossy - gambar yang direkonstruksi tidak sama dengan gambar asli. Sifat loss ditentukan oleh fungsi loss yang digunakan selama pelatihan.
  • Bekerja pada data tanpa label

Post-lecture quiz

Kesimpulan

Dalam pelajaran ini, Anda belajar tentang berbagai jenis autoencoders yang tersedia untuk ilmuwan AI. Anda belajar cara membangunnya, dan cara menggunakannya untuk merekonstruksi gambar. Anda juga belajar tentang VAE dan cara menggunakannya untuk menghasilkan gambar baru.

🚀 Tantangan

Dalam pelajaran ini, Anda belajar tentang penggunaan autoencoders untuk gambar. Tetapi mereka juga dapat digunakan untuk musik! Lihat proyek Magenta MusicVAE, yang menggunakan autoencoders untuk belajar merekonstruksi musik. Lakukan beberapa eksperimen dengan pustaka ini untuk melihat apa yang dapat Anda buat.

Post-lecture quiz

Tinjauan & Studi Mandiri

Sebagai referensi, baca lebih lanjut tentang autoencoders dalam sumber berikut:

Tugas

Di akhir notebook ini menggunakan TensorFlow, Anda akan menemukan 'tugas' - gunakan ini sebagai tugas Anda.


Penafian:
Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI Co-op Translator. Meskipun kami berupaya untuk memberikan hasil yang akurat, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang berwenang. Untuk informasi yang bersifat kritis, disarankan menggunakan jasa penerjemah manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.