Mengapa komunitas NLP dan Pembelajaran Mesin tertarik pada pembelajaran yang mendalam?

24

Saya harap Anda dapat membantu saya, karena saya memiliki beberapa pertanyaan tentang topik ini. Saya baru di bidang pembelajaran mendalam, dan sementara saya melakukan beberapa tutorial, saya tidak dapat menghubungkan atau membedakan konsep satu sama lain.

pengguna3352632
sumber
8
Pada dasarnya karena mereka memberikan hasil yang canggih, dan menghilangkan kebutuhan untuk rekayasa fitur.
Emre
2
Saya menyarankan untuk tidak menggunakan NLP dan ML bersama-sama dalam konteks seperti itu, seolah-olah mereka adalah entitas yang sebanding. Mereka adalah IMHO dua bidang yang jelas terpisah. Terlepas dari kenyataan bahwa NLP menggunakan banyak pendekatan ML, metode, algoritma dan alat, NLP adalah bidang terapan, sedangkan ML adalah bidang yang lebih umum.
Aleksandr Blekh

Jawaban:

27

Mengapa menggunakan jaringan yang dalam?

Mari kita coba menyelesaikan tugas klasifikasi yang sangat sederhana. Katakanlah, Anda memoderasi forum web yang terkadang dibanjiri pesan spam. Pesan-pesan ini mudah diidentifikasi - paling sering mengandung kata-kata spesifik seperti "beli", "porno", dll. Dan URL ke sumber daya luar. Anda ingin membuat filter yang akan memberi tahu Anda tentang pesan mencurigakan tersebut. Ternyata cukup mudah - Anda mendapatkan daftar fitur (misalnya daftar kata-kata yang mencurigakan dan keberadaan URL) dan melatih regresi logistik sederhana (alias perceptron), yaitu model seperti:

g(w0 + w1*x1 + w2*x2 + ... + wnxn)

di mana x1..xnfitur Anda (baik keberadaan kata atau URL tertentu), w0..wn- koefisien yang dipelajari dan g()merupakan fungsi logistik untuk membuat hasil antara 0 dan 1. Ini adalah pengelompokan yang sangat sederhana, tetapi untuk tugas sederhana ini dapat memberikan hasil yang sangat baik, menciptakan batas keputusan linear. Dengan asumsi Anda hanya menggunakan 2 fitur, batas ini mungkin terlihat seperti ini:

batas linear

Di sini 2 sumbu mewakili fitur (misalnya jumlah kemunculan kata tertentu dalam pesan, dinormalkan sekitar nol), titik merah tetap untuk spam dan titik biru - untuk pesan normal, sedangkan garis hitam menunjukkan garis pemisahan.

Namun segera Anda perhatikan bahwa beberapa pesan bagus mengandung banyak kemunculan kata "beli", tetapi tidak ada URL, atau diskusi panjang tentang deteksi porno , tidak benar-benar merujuk pada film porno. Batas keputusan linier tidak bisa menangani situasi seperti itu. Sebaliknya Anda membutuhkan sesuatu seperti ini:

batas non-linear

Batas keputusan non-linear baru ini jauh lebih fleksibel , yaitu dapat menyesuaikan data lebih dekat. Ada banyak cara untuk mencapai non-linearitas ini - Anda dapat menggunakan fitur polinom (misalnya x1^2) atau kombinasinya (mis. x1*x2) Atau memproyeksikannya ke dimensi yang lebih tinggi seperti dalam metode kernel . Tetapi dalam jaringan saraf itu biasa untuk menyelesaikannya dengan menggabungkan perceptron atau, dengan kata lain, dengan membangun perceptron multilayer. Non-linearitas di sini berasal dari fungsi logistik antar lapisan. Semakin banyak lapisan, pola yang lebih canggih mungkin tercakup oleh MLP. Satu lapisan (perceptron) dapat menangani deteksi spam sederhana, jaringan dengan 2-3 lapisan dapat menangkap kombinasi fitur yang rumit, dan jaringan 5-9 lapisan, yang digunakan oleh laboratorium penelitian besar dan perusahaan seperti Google, dapat memodelkan seluruh bahasa atau mendeteksi kucing pada gambar.

Ini adalah alasan penting untuk memiliki arsitektur yang mendalam - mereka dapat memodelkan pola yang lebih canggih .

Mengapa jaringan yang dalam sulit untuk dilatih?

Dengan hanya satu fitur dan batas keputusan linier, sebenarnya cukup untuk hanya memiliki 2 contoh pelatihan - satu positif dan satu negatif. Dengan beberapa fitur dan / atau batas keputusan non-linear, Anda memerlukan beberapa pesanan lebih banyak contoh untuk mencakup semua kasus yang mungkin (mis. Anda tidak hanya perlu menemukan contoh dengan word1, word2dan word3, tetapi juga dengan semua kemungkinan kombinasi mereka). Dan dalam kehidupan nyata Anda perlu berurusan dengan ratusan dan ribuan fitur (misalnya kata-kata dalam bahasa atau piksel dalam gambar) dan setidaknya beberapa lapisan untuk memiliki cukup non-linearitas. Ukuran kumpulan data, yang diperlukan untuk sepenuhnya melatih jaringan tersebut, dengan mudah melebihi 10 ^ 30 contoh, sehingga sama sekali tidak mungkin untuk mendapatkan data yang cukup. Dengan kata lain, dengan banyak fitur dan banyak lapisan, fungsi keputusan kami menjadi terlalu fleksibeluntuk dapat mempelajarinya secara tepat .

Namun demikian, cara untuk mempelajarinya sekitar . Sebagai contoh, jika kita bekerja dalam pengaturan probabilistik, maka alih-alih mempelajari frekuensi semua kombinasi semua fitur, kita dapat mengasumsikan bahwa mereka independen dan hanya belajar frekuensi individual, mengurangi classifier Bayes penuh dan tidak dibatasi menjadi Naif Bayes dan karenanya membutuhkan banyak, apalagi data untuk dipelajari.

Dalam jaringan saraf ada beberapa upaya untuk (secara bermakna) mengurangi kompleksitas (fleksibilitas) fungsi keputusan. Misalnya, jaringan konvolusional, yang banyak digunakan dalam klasifikasi gambar, hanya mengasumsikan koneksi lokal antara piksel terdekat dan karenanya hanya mencoba mempelajari kombinasi piksel dalam "jendela" kecil (katakanlah, 16x16 piksel = 256 neuron input) sebagai lawan dari gambar penuh (katakanlah, 100x100 piksel = 10.000 input neuron). Pendekatan lain termasuk rekayasa fitur, yaitu mencari deskriptor input data spesifik yang ditemukan manusia.

Fitur yang ditemukan secara manual sebenarnya sangat menjanjikan. Dalam pemrosesan bahasa alami, misalnya, terkadang bermanfaat untuk menggunakan kamus khusus (seperti yang berisi kata-kata khusus spam) atau menangkap negasi (mis. " Tidak baik"). Dan dalam visi komputer hal-hal seperti deskriptor SURF atau fitur seperti Haar hampir tak tergantikan.

Tetapi masalah dengan teknik fitur manual adalah bahwa dibutuhkan beberapa tahun untuk menghasilkan deskriptor yang baik. Selain itu, fitur-fitur ini seringkali spesifik

Pra-pelatihan tanpa pengawasan

Tetapi ternyata kita dapat memperoleh fitur yang baik secara otomatis langsung dari data menggunakan algoritma seperti autoencoder dan mesin Boltzmann terbatas . Saya menjelaskannya secara terperinci dalam jawaban saya yang lain , tetapi singkatnya mereka memungkinkan untuk menemukan pola berulang dalam data input dan mengubahnya menjadi fitur tingkat yang lebih tinggi. Misalnya, hanya diberi nilai piksel baris sebagai input, algoritme ini dapat mengidentifikasi dan melewati seluruh tepi yang lebih tinggi, kemudian dari tepi ini membangun angka dan seterusnya, hingga Anda mendapatkan deskriptor tingkat tinggi seperti variasi di wajah.

pembelajaran yang mendalam

Setelah jaringan pretraining (tanpa pengawasan) tersebut biasanya dikonversi menjadi MLP dan digunakan untuk pelatihan yang diawasi secara normal. Perhatikan, bahwa pretraining dilakukan dengan bijaksana. Ini secara signifikan mengurangi ruang solusi untuk algoritma pembelajaran (dan karenanya dibutuhkan sejumlah contoh pelatihan) karena hanya perlu mempelajari parameter di dalam setiap lapisan tanpa memperhitungkan lapisan lainnya.

Dan seterusnya...

Pretraining tanpa pengawasan telah ada di sini untuk beberapa waktu sekarang, tetapi baru-baru ini algoritma lain ditemukan untuk meningkatkan pembelajaran keduanya - bersama dengan pretraining dan tanpa itu. Salah satu contoh penting dari algoritma tersebut adalah teknik putus sekolah - sederhana, yang secara acak "menjatuhkan" beberapa neuron selama pelatihan, membuat beberapa distorsi dan mencegah jaringan mengikuti data terlalu dekat. Ini masih topik penelitian yang panas, jadi saya serahkan ini pada pembaca.

teman
sumber
3
Penjelasan yang indah ini!
Dawny33
6

Pertama-tama kita perlu memahami mengapa kita membutuhkan pembelajaran yang mendalam. Untuk membangun model ML perlu Uji Data dengan Label (diawasi atau tidak diawasi). Di banyak domain saat data tumbuh mempertahankan data dengan label sulit. Jaringan pembelajaran yang dalam tidak perlu data berlabel. Algoritma pembelajaran mendalam dapat mengetahui label. Jadi ini meniadakan perlunya ahli domain untuk keluar dengan label untuk data yang sangat penting dalam bidang pengenalan suara, visi komputer, dan pemahaman bahasa. Pengenalan gambar Google Cat adalah eksperimen yang sangat menarik. Juga menarik untuk mengetahui "Geoffrey hinton" profesor yang dipekerjakan oleh Google.

http://www.wired.com/2014/01/geoffrey-hinton-deep-learning/

Anda mungkin mendapatkan wawasan lebih saat mengeksplorasi dalam kerangka ini.

i5Vemula
sumber
1
Pembelajaran mendalam tidak dapat menemukan labelnya (bagaimana mungkin?), Tetapi hanya mempelajari fitur. Anda masih memerlukan sejumlah data berlabel dan pembelajaran yang diawasi untuk menyelesaikan tugas-tugas seperti klasifikasi atau regresi.
Berteman
0

Pembelajaran yang mendalam telah ada sejak lama. CNN, RNN, Mesin Boltzmann benar-benar terlihat seperti teknik baru tetapi mereka dikembangkan sejak lama. Periksa sejarah pembelajaran mendalam

https://en.wikipedia.org/wiki/Deep_learning#History

Kebangkitan Deep Learning disebabkan oleh fakta bahwa kekuatan komputasi meningkat secara eksponensial sejak saat itu. Dengan laptop yang dilengkapi GPU Anda dapat melatih model Deep Learning yang kompleks adalah waktu yang sangat kecil dibandingkan dengan hari-hari sebelumnya. Model pembelajaran yang mendalam juga sangat efisien secara empiris. Keadaan terkini dalam Images, Speech dan banyak bidang adalah model Deep Learning.

Saya percaya karena faktor-faktor ini kita dapat melihat banyak komunitas NLP / ML telah mengalihkan fokusnya pada Deep Learning.

SHASHANK GUPTA
sumber