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?Beberapa bagian dari jawaban Matt Krause menurut saya tidak benar (Lambda dan Beta), juga epsilon tidak disebutkan. Sebenarnya posting ini harus menjadi komentar, tapi saya menjawab pertanyaan karena 50 pembatasan reputasi. Jangan ragu untuk berkomentar jika Anda melihat kesalahan.
Dari http://web.stanford.edu/class/archive/cs/cs294a/cs294a.1104/sparseAutoencoder.pdf Lambda adalah koefisien istilah peluruhan bobot yang mencegah bobot untuk mencapai nilai besar karena mungkin sesuai. Bobot pembusukan berat (atau berat regularisasi istilah) adalah bagian dari fungsi biaya seperti istilah sparsity dijelaskan di bawah ini.
rho adalah batasan sparsity yang mengontrol jumlah rata-rata aktivasi pada lapisan tersembunyi. Ini disertakan untuk membuat autoencoder berfungsi bahkan dengan jumlah unit tersembunyi yang relatif besar sehubungan dengan unit input. Misalnya, jika ukuran input adalah 100 dan ukuran tersembunyi adalah 100 atau lebih besar (bahkan lebih kecil tetapi mendekati 100), output dapat dibangun tanpa kehilangan, karena unit tersembunyi dapat mempelajari fungsi identitas. Beta adalah koefisien dari istilah sparsity yang merupakan bagian dari fungsi biaya. Ini mengontrol kepentingan relatif dari istilah sparsity. Lambda dan Beta menentukan kepentingan relatif dari istilah mereka dalam fungsi biaya.
Epsilon (jika mereka menggunakan notasi yang sama dengan Andrew Ng) adalah parameter regularisasi untuk proses pemutihan yang memiliki efek filter low-pass pada input. Itu memiliki beberapa efek penting pada metode rekonstruksi. Periksa tautan untuk itu dalam model berbasis rekonstruksi. Saya pikir mereka telah menggunakan aktivasi linier untuk lapisan keluaran dan menggunakan beberapa jenis pemutihan (fitur univariat).
Perbarui laju parameter (bobot dan bias) disebut laju pembelajaran dan dilambangkan dengan eta secara umum. Namun, telah digunakan sebagai alpha oleh Andrew Ng. Periksa tautan pertama.
sumber