Debugging jaringan saraf biasanya melibatkan tweaking hyperparameters, memvisualisasikan filter yang dipelajari, dan merencanakan metrik penting. Bisakah Anda membagikan hyperparameter apa yang telah Anda gunakan?
- Apa ukuran batch Anda?
- Berapa tingkat belajar Anda?
- Apa jenis dari autoencoder yang Anda gunakan?
- Sudahkah Anda mencoba menggunakan Denoising Autoencoder? (Nilai korupsi apa yang sudah Anda coba?)
- Berapa banyak layer tersembunyi dan ukuran apa?
- Apa dimensi gambar input Anda?
Menganalisis log pelatihan juga berguna. Plot grafik kehilangan rekonstruksi Anda (sumbu Y) sebagai fungsi zaman (sumbu X). Apakah kehilangan rekonstruksi Anda menyatu atau menyimpang?
Berikut ini adalah contoh dari autoencoder untuk klasifikasi gender manusia yang berbeda, dihentikan setelah 1500 zaman, memiliki hiperparameter disetel (dalam hal ini pengurangan dalam tingkat pembelajaran), dan memulai kembali dengan bobot yang sama yang menyimpang dan akhirnya bertemu.
Inilah yang konvergen: (kami menginginkan ini)
Vanilla "tidak dibatasi" dapat mengalami masalah di mana mereka hanya belajar pemetaan identitas. Itulah salah satu alasan mengapa komunitas telah menciptakan rasa Denoising, Jarang, dan Kontraktif.
Bisakah Anda memposting sebagian kecil dari data Anda di sini? Saya lebih dari bersedia menunjukkan hasil dari salah satu autoencoder saya.
Di samping catatan: Anda mungkin ingin bertanya pada diri sendiri mengapa Anda menggunakan gambar grafik di tempat pertama ketika grafik tersebut dapat dengan mudah direpresentasikan sebagai vektor data. Yaitu,
[0, 13, 15, 11, 2, 9, 6, 5]
Jika Anda dapat merumuskan kembali masalah seperti di atas, Anda pada dasarnya membuat kehidupan pembuat enkoder Anda lebih mudah. Pertama-tama tidak perlu mempelajari cara melihat gambar sebelum dapat mencoba mempelajari distribusi pembuatan.
Jawaban tindak lanjut (diberikan data.)
Berikut adalah filter dari 1000 unit tersembunyi, single layer Denoising Autoencoder. Perhatikan bahwa beberapa filter tampaknya acak. Itu karena saya berhenti berlatih begitu awal dan jaringan tidak punya waktu untuk mempelajari filter itu.
Berikut adalah hiperparameter yang saya latih:
batch_size = 4
epochs = 100
pretrain_learning_rate = 0.01
finetune_learning_rate = 0.01
corruption_level = 0.2
Saya berhenti pra-pelatihan setelah zaman ke-58 karena filternya cukup bagus untuk dikirim di sini. Jika saya jadi Anda, saya akan melatih Autoencoder 3-layer Stacked Denoising penuh dengan arsitektur 1000x1000x1000 untuk memulai.
Berikut adalah hasil dari langkah fine-tuning:
validation error 24.15 percent
test error 24.15 percent
Jadi pada pandangan pertama, tampaknya lebih baik daripada kebetulan, namun, ketika kita melihat pemecahan data antara kedua label kita melihat bahwa ia memiliki persen yang sama persis (75,85% menguntungkan dan 24,15% tidak menguntungkan). Jadi itu berarti jaringan telah belajar untuk hanya merespons "menguntungkan", terlepas dari sinyal. Saya mungkin akan melatih ini untuk waktu yang lebih lama dengan jaring yang lebih besar untuk melihat apa yang terjadi. Juga, sepertinya data ini dihasilkan dari beberapa jenis dataset keuangan yang mendasarinya. Saya akan merekomendasikan agar Anda melihat ke dalam Jaringan Syaraf Berulang setelah memformulasi ulang masalah Anda ke dalam vektor seperti yang dijelaskan di atas. RNNs dapat membantu menangkap beberapa dependensi temporal yang ditemukan dalam data deret waktu seperti ini. Semoga ini membantu.
Saya tidak punya cukup perwakilan untuk berkomentar, jadi saya akan menjawabnya. Saya tidak tahu alasan pastinya:
Pola di daerah kiri bawah terlihat mirip dengan contoh kedua Anda, dan pola di sudut kanan bawah tampak sangat mirip dengan contoh pertama Anda, ketika diperiksa dengan cermat. Pertanyaannya adalah, berapa banyak variasi dalam data sumber Anda? Jika semua 50.000 gambar adalah variasi dari pola yang sama, 3 peta fitur bermakna yang kami lihat ini cukup memadai bagi autoencoder untuk menjelaskan dan merekonstruksi semua data Anda.
Kedua, Anda mungkin ingin melihat kesalahan rekonstruksi dan gambar yang direkonstruksi aktual. Seberapa baik hasilnya? Jika kesalahan rekonstruksi rendah, Anda mungkin memiliki pakaian yang berlebihan, mungkin karena resons yang dijelaskan di bawah ini (atau mungkin kombinasi dari 3 pola ini hanya cukup untuk menggambarkan semua data yang tertarik). Jika tidak, autoencoder tidak dapat mempelajari cara merekonstruksi data Anda dan Anda memerlukan autoencoder yang lebih besar atau algoritma pelatihan yang lebih baik.
sumber