Mengapa kita perlu autoencoder?

17

Baru-baru ini, saya telah mempelajari autoencoder. Jika saya mengerti dengan benar, autoencoder adalah jaringan saraf di mana lapisan input identik dengan lapisan keluaran. Jadi, jaringan saraf mencoba untuk memprediksi output menggunakan input sebagai standar emas.

Apa kegunaan model ini? Apa manfaat dari mencoba merekonstruksi beberapa elemen output, menjadikannya sama dengan elemen input? Mengapa seseorang harus menggunakan semua mesin ini untuk mencapai titik awal yang sama?

larry
sumber

Jawaban:

17

Penyandi otomatis memiliki lapisan masukan, lapisan tersembunyi, dan lapisan keluaran. Input dipaksa untuk identik dengan output, jadi itu lapisan tersembunyi yang kami minati.

Lapisan tersembunyi membentuk semacam pengkodean input. "Tujuan dari auto-encoder adalah untuk mempelajari representasi (pengkodean) yang dikompresi dan didistribusikan untuk satu set data." Jika input adalah vektor 100 dimensi, dan Anda memiliki 60 neuron di lapisan tersembunyi, maka algoritma auto encoder akan mereplikasi input sebagai vektor 100 dimensi di layer output, dalam proses memberi Anda vektor 60 dimensi yang mengkodekan input Anda .

Jadi tujuan dari auto encoders adalah pengurangan dimensi , di antara banyak lainnya.

Madhulika Mukherjee
sumber
Terima kasih @Madhulika, mungkin saya sudah mengerti. Algoritma bekerja sebagai berikut: ia memiliki lapisan input, ia melatih jaringan saraf untuk memiliki lapisan output yang identik dengan lapisan input. Daripada membandingkan lapisan input dengan lapisan output, dan jika mereka berbeda, itu terus melatih kembali jaringan saraf. Itu berhenti ketika mereka identik. Ketika selesai, kita mengambil lapisan tersembunyi terakhir sebagai perkiraan pengurangan dimensi terbaik dari lapisan input, dan menggunakannya untuk setiap tujuan yang kita butuhkan. Apakah ini benar?
larry
Yup, Anda hampir benar. :) Baca beberapa literatur lebih lanjut tentang itu.
Madhulika Mukherjee
5

Itu juga dapat memodelkan populasi Anda sehingga ketika Anda memasukkan vektor baru, Anda dapat memeriksa seberapa berbeda output dari input tersebut. Jika "sama", Anda dapat menganggap input cocok dengan populasi. Jika mereka "sangat" berbeda, maka input mungkin bukan milik populasi yang Anda modelkan.

Saya melihatnya sebagai semacam "regresi oleh jaringan saraf" di mana Anda mencoba untuk memiliki fungsi yang menggambarkan data Anda: outputnya sama dengan input.

Matthieu
sumber
3

Mungkin foto-foto ini memberi Anda intuisi. Seperti komentator di atas mengatakan auto encoders mencoba mengekstraksi beberapa fitur tingkat tinggi dari contoh pelatihan. Anda dapat melihat bagaimana algoritma prognostikasi digunakan untuk melatih setiap level tersembunyi secara terpisah untuk NN dalam pada gambar kedua.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Gambar diambil dari wikipedia Rusia.

Marat Zakirov
sumber
2
Mengomentari gambar akan sangat membantu.
Tim