Saya baru saja membaca makalah Geoff Hinton tentang mentransformasikan autoencoder
Hinton, Krizhevsky dan Wang: Transforming Auto-encoders . Dalam Jaringan Saraf Tiruan dan Pembelajaran Mesin, 2011.
dan ingin bermain-main dengan sesuatu seperti ini. Tetapi setelah membacanya saya tidak bisa mendapatkan cukup detail dari koran tentang bagaimana saya benar-benar menerapkannya.
- Apakah ada yang tahu bagaimana pemetaan antara piksel input ke kapsul harus berfungsi?
- Apa sebenarnya yang seharusnya terjadi di unit pengakuan?
- Bagaimana seharusnya dilatih? Apakah ini hanya penyangga standar di antara setiap koneksi?
Yang lebih baik lagi adalah tautan ke beberapa kode sumber untuk ini atau yang serupa.
neural-network
deep-learning
autoencoder
Daniel Slater
sumber
sumber
Jawaban:
Saya telah mengumpulkan beberapa contoh kode tensorflow untuk membantu menjelaskan (kode yang lengkap dan berfungsi ada di intisari ini ). Kode ini mengimplementasikan jaringan kapsul dari bagian pertama bagian 2 di kertas yang Anda tautkan:
Ini tergantung pada struktur jaringan. Untuk percobaan pertama dalam makalah itu (dan kode di atas), setiap kapsul memiliki bidang reseptif yang mencakup seluruh gambar input. Itu pengaturan yang paling sederhana. Dalam hal ini, itu adalah lapisan yang sepenuhnya terhubung antara gambar input dan lapisan tersembunyi pertama di setiap kapsul.
Atau, bidang reseptor kapsul dapat diatur lebih seperti kernel CNN dengan langkah, seperti pada percobaan selanjutnya dalam makalah itu.
Unit pengakuan adalah representasi internal yang dimiliki setiap kapsul. Setiap kapsul menggunakan representasi internal ini untuk menghitung
p
, probabilitas bahwa fitur kapsul hadir, danxy
, nilai terjemahan yang disimpulkan. Gambar 2 dalam makalah itu adalah tanda centang untuk memastikan jaringan belajar menggunakanxy
dengan benar (benar).Khususnya, Anda harus melatihnya sebagai autoencoder, menggunakan kerugian yang memberlakukan kesamaan antara output yang dihasilkan dan aslinya. Mean square error bekerja dengan baik di sini. Selain itu, ya, Anda harus menyebarkan gradient descent dengan backprop.
sumber