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?
machine-learning
neural-networks
unsupervised-learning
deep-learning
autoencoders
RockTheStar
sumber
sumber
Jawaban:
Menemukan perbedaan dapat dilakukan dengan melihat model. Mari kita lihat pengkodean yang jarang dulu.
Pengkodean yang jarang
Pengodean yang jarang meminimalkan tujuan
Pada awalnya, kami tidak memilikiH 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
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)L.s c L.a e H= σ( 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 cW W L.s c
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.
sumber
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.
sumber
Coder jarang adalah semacam setengah dari auto-encoder. Auto-encoder bekerja seperti:
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:
'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.
sumber
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.
sumber