The autoencoder
paket hanya sebuah implementasi dari autoencoder dijelaskan dalam Andrew Ng catatan kelas , yang mungkin menjadi titik awal yang baik untuk membaca lebih lanjut. Sekarang, untuk menjawab pertanyaan Anda
Orang kadang-kadang membedakan antara
parameter , yang menghitung algoritma pembelajaran itu sendiri, dan
hyperparameters , yang mengontrol proses pembelajaran dan perlu disediakan untuk algoritma pembelajaran.
Penting untuk disadari bahwa TIDAK ADA NILAI SIHIR untuk hiperparameter. Nilai optimal akan bervariasi, tergantung pada data yang Anda modelkan: Anda harus mencobanya pada data Anda.
a) Lambda (λ) mengontrol bagaimana bobot diperbarui selama backpropagation. Alih-alih hanya memperbarui bobot berdasarkan perbedaan antara output model dan kebenaran dasar), fungsi biaya mencakup istilah yang menghukum bobot besar (sebenarnya nilai kuadrat dari semua bobot). Lambda mengontrol kepentingan relatif dari hukuman ini, yang cenderung menyeret bobot ke nol dan membantu menghindari overfitting.
b) Rho (ρ ) dan beta ( β) mengontrol sparseness. Rho adalah aktivasi yang diharapkan dari unit tersembunyi (rata-rata di seluruh set pelatihan). Representasi akan menjadi lebih jarang dan lebih jarang karena menjadi lebih kecil. Sparseness ini diberlakukan dengan menyesuaikan istilah bias, dan beta mengontrol ukuran pembaruannya. (Sepertinyaβ sebenarnya hanya meningkatkan kembali tingkat pembelajaran keseluruhan α.)
c) Epsilon (ϵ) mengontrol nilai bobot awal, yang diambil secara acak dari N(0,ϵ2).
Nilai rho Anda tampaknya tidak masuk akal karena keduanya berada di dekat bagian bawah rentang fungsi aktivasi (0 hingga 1 untuk logistik, -1 hingga 1 untuk tanh). Namun, ini jelas tergantung pada jumlah sparseness yang Anda inginkan dan jumlah unit tersembunyi yang Anda gunakan juga.
Perhatian utama LeCunn dengan bobot kecil bahwa permukaan kesalahan menjadi sangat datar di dekat titik asal jika Anda menggunakan sigmoid simetris. Di tempat lain dalam makalah itu, ia merekomendasikan untuk memulai dengan bobot yang diambil secara acak dari distribusi normal dengan nol rata-rata danm−1/2 standar deviasi, di mana m adalah jumlah koneksi yang diterima setiap unit.
Ada banyak "aturan praktis" untuk memilih jumlah unit tersembunyi. Tebakan awal Anda (input 2x) tampaknya sejalan dengan sebagian besar dari mereka. Yang mengatakan, perkiraan waktu ini lebih dari perkiraan. Dengan asumsi Anda memiliki kekuatan pemrosesan, saya akan melakukan kesalahan di sisi unit yang lebih tersembunyi, kemudian menegakkan sparseness dengan nilai rho yang rendah.
Salah satu penggunaan autoencoder yang jelas adalah untuk menghasilkan representasi fitur yang lebih ringkas untuk algoritma pembelajaran lainnya. Gambar mentah mungkin memiliki jutaan piksel, tetapi autoencoder (jarang) dapat merepresentasikan kembali dalam ruang yang jauh lebih kecil.
Geoff Hinton (dan lainnya) telah menunjukkan bahwa mereka menghasilkan fitur yang berguna untuk klasifikasi selanjutnya. Beberapa pekerjaan pembelajaran yang mendalam menggunakan autoencoder atau mirip dengan pra-jaringan.
Vincent et al. gunakan autoencoder secara langsung untuk melakukan klasifikasi.
Kemampuan untuk menghasilkan representasi fitur yang ringkas dapat digunakan dalam konteks lain juga. Berikut adalah proyek kecil yang rapi di mana status autoencoder digunakan untuk memandu algoritma pembelajaran penguatan melalui game Atari .
Akhirnya, kita juga dapat menggunakan autoencoder untuk merekonstruksi input berisik atau terdegradasi, seperti itu , yang dapat menjadi akhir yang berguna dalam dan dari dirinya sendiri.
beta = 6
dalamautoencoder
kode contoh?