Apa perbedaan antara pengkodean jarang dan autoencoder?

35

Pengkodean jarang didefinisikan sebagai pembelajaran kumpulan vektor basis yang terlalu lengkap untuk mewakili vektor input (<- mengapa kita menginginkan ini). Apa perbedaan antara pengkodean jarang dan autoencoder? Kapan kita akan menggunakan pengkodean dan autoencoder yang jarang?

RockTheStar
sumber
1
Pengkodean yang jarang sebenarnya merupakan jenis autencoder khusus yang dikenal sebagai autoencoder yang jarang . Jadi, Anda dapat mempertimbangkan pengkodean yang jarang sebagai subset dari autoencoder jika Anda mau.
HelloGoodbye

Jawaban:

34

Menemukan perbedaan dapat dilakukan dengan melihat model. Mari kita lihat pengkodean yang jarang dulu.

Pengkodean yang jarang

Pengodean yang jarang meminimalkan tujuan

Lsc=||WHX||22reconstruction term+λ||H||1sparsity term
mana W adalah matriks basis, H adalah matriks kode dan X adalah matriks data yang ingin kami wakili. λ mengimplementasikan perdagangan antara sparsity dan rekonstruksi. Perhatikan bahwa jika kita diberi H , estimasi W mudah melalui kuadrat terkecil.

Pada awalnya, kami tidak memiliki H namun. Namun, banyak algoritma ada yang dapat memecahkan tujuan di atas sehubungan dengan H . Sebenarnya, ini adalah bagaimana kita melakukan inferensi: kita perlu menyelesaikan masalah optimisasi jika kita ingin mengetahui h milik x yang tidak terlihat x.

Penyandi otomatis

Penyandi otomatis adalah keluarga dari jaringan saraf yang tidak diawasi. Ada cukup banyak dari mereka, misalnya auto encoders yang dalam atau mereka yang memiliki trik regularisasi yang berbeda - misalnya denoising, kontraktif, jarang. Bahkan ada yang probabilistik, seperti jaringan stokastik generatif atau auto encoder variasional. Bentuk paling abstrak mereka adalah tetapi kita akan mengikuti yang lebih sederhana untuk saat ini: mana adalah fungsi nonlinier seperti sigmoid logistik .L ae = | | W σ ( W T X ) - X | | 2 σ σ ( x ) = 1

D(d(e(x;θr);θd),x)
Lae=||Wσ(WTX)X||2
σσ(x)=11+exp(x)

Kesamaan

Perhatikan bahwa terlihat hampir seperti setelah kita menetapkan . Perbedaan keduanya adalah bahwa i) auto encoders tidak mendorong sparsity dalam bentuk umumnya ii) autoencoder menggunakan model untuk menemukan kode, sedangkan pengkodean jarang melakukannya dengan cara optimasi.L a e H=σ( W T X)LscLaeH=σ(WTX)

Untuk data gambar alami, auto encoders yang diregulasi dan pengkodean yang jarang cenderung menghasilkan sangat mirip . Namun, pembuat enkode otomatis jauh lebih efisien dan mudah digeneralisasi ke model yang jauh lebih rumit. Misalnya dekoder bisa sangat nonlinear, misalnya jaringan saraf yang dalam. Selain itu, seseorang tidak terikat pada kerugian kuadrat (di mana estimasi untuk tergantung.)W L s cWWLsc

Juga, berbagai metode regularisasi menghasilkan representasi dengan karakteristika yang berbeda. Encoder otomatis denoising juga telah terbukti setara dengan bentuk tertentu dari RBM dll.

Tapi kenapa?

Jika Anda ingin menyelesaikan masalah prediksi, Anda tidak akan memerlukan penyandiaksaraan otomatis kecuali Anda hanya memiliki sedikit data berlabel dan banyak data yang tidak berlabel. Maka Anda biasanya akan lebih baik untuk melatih auto encoder yang dalam dan meletakkan SVM linear di atas daripada melatih jaring saraf yang dalam.

Namun, mereka adalah model yang sangat kuat untuk menangkap distribusi karakteristik. Ini tidak jelas, tetapi penelitian yang mengubah ini menjadi fakta statistik yang sulit saat ini sedang dilakukan. Model Gaussian laten yang dalam alias Variasi Auto encoders atau jaringan stokastik generatif adalah cara yang cukup menarik untuk memperoleh auto encoders yang dapat memperkirakan distribusi data yang mendasarinya.

bayerj
sumber
Terima kasih atas jawaban anda! Jadi, apakah maksudnya jarang pengkodean tidak boleh digunakan, tetapi autoencoder? Juga, harus ada istilah tambahan dalam pengkodean yang jarang yang mengatur W?
RockTheStar
Tidak ada aturan umum seperti itu. SC memiliki satu keunggulan dibandingkan AE: pengodean melalui optimasi bisa sangat kuat.
bayerj
Maaf, bisakah Anda menjelaskan hal ini?
RockTheStar
Memiliki peta tetap yang telah diperkirakan untuk mengikuti beberapa kendala (di sini: hasil jarang) kurang kuat daripada memiliki pengoptimal yang mencoba menemukan solusi seperti itu di atas kemungkinan banyak iterasi.
bayerj
1
Maaf untuk mengajukan pertanyaan ini lagi. Saya pikir Autoencoder dapat mendorong sparsity juga, yaitu autoencoder yang jarang.
RockTheStar
11

Dalam ilmu saraf istilah Neural Coding digunakan untuk merujuk pada pola aktivitas listrik neuron yang disebabkan oleh stimulus. Pengodean yang jarang pada gilirannya adalah salah satu jenis pola. Kode dikatakan jarang ketika stimulus (seperti gambar) memprovokasi aktivasi hanya sejumlah kecil neuron, yang digabungkan mewakili dengan cara yang jarang. Dalam pembelajaran mesin kendala optimasi yang sama digunakan untuk membuat model kode jarang dapat digunakan untuk mengimplementasikan Autoencoder Sparse, yang merupakan autoencoder reguler yang dilatih dengan kendala sparsity. Di bawah ini diberikan penjelasan yang lebih terperinci untuk setiap pertanyaan Anda.

Pengkodean jarang didefinisikan sebagai pembelajaran kumpulan vektor basis yang terlalu lengkap untuk mewakili vektor input (<- mengapa kita menginginkan ini)

Pertama, setidaknya sejak (Hubel & Wiesel, 1968) diketahui bahwa di wilayah V1 ada sel-sel spesifik yang merespons secara maksimal terhadap stimulus mirip-tepi (selain memiliki sifat "berguna" lainnya). Pengodean Jarang adalah model yang menjelaskan banyak karakteristik yang diamati dari sistem ini. Lihat (Olshausen & Field, 1996) untuk lebih jelasnya.

Kedua, ditunjukkan bahwa model yang menggambarkan pengkodean jarang adalah teknik yang berguna untuk ekstraksi fitur dalam Pembelajaran Mesin dan menghasilkan hasil yang baik dalam tugas-tugas pembelajaran transfer. Raina et al. (2007) menunjukkan bahwa seperangkat "vektor basis" (fitur, seperti sapuan dan tepian pena) dipelajari dengan set pelatihan yang terdiri dari karakter tulisan tangan meningkatkan klasifikasi dalam tugas pengenalan digit tulisan tangan. Model berbasis Coding kemudian jarang digunakan untuk melatih jaringan "dalam", menumpuk lapisan detektor fitur jarang untuk membuat "jaring kepercayaan dalam jarang" (Lee et al., 2007). Baru-baru ini hasil yang menakjubkan dalam pengenalan gambar dicapai dengan menggunakan model berbasis pengkodean yang jarang untuk membangun jaringan dengan beberapa lapisan ("Otak Google" yang terkenal), yang mampu membedakan gambar kucing dengan cara yang murni tanpa pengawasan (Le et al. , 2013) .

Ketiga, mungkin menggunakan dasar yang dipelajari untuk melakukan kompresi. A belum melihat ada yang benar-benar melakukannya.

Apa perbedaan antara pengkodean yang jarang dan autoencoder?

Autoencoder adalah model yang mencoba merekonstruksi inputnya, biasanya menggunakan semacam kendala. Menurut Wikipedia itu "adalah jaringan saraf tiruan yang digunakan untuk mempelajari pengkodean yang efisien". Tidak ada dalam definisi autoencoder yang membutuhkan sparsity. Kontraint berbasis pengkodean jarang adalah salah satu teknik yang tersedia, tetapi ada yang lain, misalnya Denoising Autoencoder, Autoencoder Kontraktif dan RBM. Semua membuat jaringan belajar representasi input yang baik (yang juga biasanya "jarang").

Kapan kita akan menggunakan pengkodean dan autoencoder yang jarang?

Anda mungkin tertarik menggunakan auto-encoder untuk ekstraksi fitur dan / atau pra-pelatihan jaringan dalam. Jika Anda menerapkan autoencoder dengan batasan sparsity, Anda akan menggunakan keduanya.

Saul Berardo
sumber
Jawaban ini memiliki banyak poin menarik dan referensi penting. Namun, paragraf pertama salah . Pengkodean yang jarang dan pengkodean otomatis yang jarang adalah binatang buas yang berbeda.
bayerj
Di mana dinyatakan bahwa mereka adalah hal yang sama? Tolong, beri tahu saya dan saya akan memperbaiki jawabannya.
Saul Berardo
Di kalimat pertama.
bayerj
"Pengodean Jarang adalah salah satu teknik yang tersedia untuk melatih autoencoder". Kalimat ini tidak mendefinisikan "Penyandian Jarang" sebagai "binatang" yang sama dengan autoencoder. Dikatakan bahwa, di antara semua teknik yang tersedia untuk autoencoder pelatihan, salah satunya adalah "Penyandian Jarang". Saya setuju bahwa kalimat itu memang memiliki beberapa ambiguitas, yang saya percaya akan diklarifikasi oleh sisa jawabannya.
Saul Berardo
Anda mengatakan bahwa pengkodean jarang adalah metode untuk melatih pembuat enkode otomatis. Jelas bukan itu masalahnya, karena pembuat enkode otomatis memiliki dekoder eksplisit yang tidak diimplementasikan dengan algoritme pengoptimalan. Diberi encoder otomatis yang sewenang-wenang, Anda tidak dapat melatihnya dengan pengkodean yang jarang.
bayerj
1

Coder jarang adalah semacam setengah dari auto-encoder. Auto-encoder bekerja seperti:

input  =>  neural net layer  =>  hidden outputs => neural net layer => output

Untuk propagasi balik, sinyal kesalahan, kerugian, adalah: input - output

Jika kita menerapkan batasan sparsity pada output tersembunyi, maka sebagian besar akan nol, dan beberapa akan menjadi 1s. Kemudian lapisan kedua pada dasarnya adalah seperangkat fungsi dasar linear, yang ditambahkan bersama-sama, sesuai dengan output tersembunyi yang 1s.

Dalam pengkodean yang jarang, kami hanya memiliki bagian kedua dari ini:

                                codes => neural net layer => output

'Kode' adalah sekelompok bilangan real, memilih untuk fungsi dasar yang diwakili oleh bobot dalam lapisan jaring saraf. Karena dalam makalah Olshausen, mereka menerapkan batasan sparsity pada kode, kodenya, seperti pada auto-encoder yang jarang, jarang: sebagian besar nol dengan beberapa yang lain.

Perbedaannya sekarang dapat kita lihat dengan jelas: untuk pengkodean yang jarang, tidak ada paruh pertama dari jaringan saraf: kodenya tidak disediakan untuk kita secara otomatis oleh jaring saraf.

Bagaimana kita mendapatkan kode dalam pengkodean yang jarang? Kita harus mengoptimalkan diri kita sendiri, yang kita lakukan dengan menggunakan gradient descent atau yang serupa, untuk menemukan sekumpulan kode yang paling baik menyediakan keluaran yang cocok dengan gambar input. Kita harus melakukan ini untuk setiap gambar, termasuk untuk setiap gambar uji, setiap kali.

Hugh Perkins
sumber
0

Anda mungkin ingin membaca makalah terbaru ini, https://arxiv.org/abs/1708.03735v2 tentang topik yang sama persis ini. Dalam tulisan ini penulis menunjukkan bahwa memang seseorang dapat mengatur autoencoder sedemikian rupa sehingga kamus kebenaran dasar adalah titik kritis dari fungsi kehilangan kuadrat autoencoder itu.

lulusan
sumber