Saya ingin meningkatkan pemahaman saya tentang jaringan saraf dan manfaatnya dibandingkan dengan algoritma pembelajaran mesin lainnya. Pemahaman saya seperti di bawah ini dan pertanyaan saya adalah:
Bisakah Anda memperbaiki dan menambah pemahaman saya? :)
Pemahaman saya:
(1) Jaringan saraf tiruan = Suatu fungsi, yang memprediksi nilai output dari nilai input. Menurut Teorema Approximation Universal ( https://en.wikipedia.org/wiki/Universal_approximation_theorem ), Anda biasanya dapat memiliki fungsi prediksi yang mungkin (meskipun harus berperilaku baik), dengan diberikan neuron yang cukup.
(2) Hal yang sama berlaku untuk regresi linier, dengan mengambil polinomial dari nilai input sebagai nilai input tambahan, karena Anda dapat memperkirakan (membandingkan ekspansi Taylor) setiap fungsi dengan baik oleh polinomial.
(3) Ini berarti, bahwa (dalam arti, sehubungan dengan hasil terbaik), kedua metode itu setara.
(4) Oleh karena itu, perbedaan utama mereka terletak pada metode mana yang cocok untuk implementasi komputasi yang lebih baik. Dengan kata lain, dengan metode mana Anda dapat menemukan, berdasarkan contoh pelatihan, nilai yang lebih baik untuk parameter yang akhirnya menentukan fungsi prediksi.
Saya menyambut setiap pemikiran, komentar dan rekomendasi untuk tautan atau buku lain untuk meningkatkan pemikiran saya.
sumber
Jawaban:
Inilah kesepakatannya:
Secara teknis Anda memang menulis kalimat yang benar (kedua model dapat memperkirakan fungsi 'tidak terlalu gila' dengan parameter yang cukup), tetapi kalimat-kalimat itu tidak membuat Anda ke mana pun!
Mengapa demikian? Nah, lihat lebih dekat pada teori aproksimasi universal, atau bukti formal lainnya bahwa jaringan saraf dapat menghitung f (x) jika ada neuron CUKUP.
Semua jenis bukti yang saya lihat hanya menggunakan satu lapisan tersembunyi.
Lihatlah di sini http://neuralnetworksanddeeplearning.com/chap5.html untuk intuisi. Ada karya yang menunjukkan bahwa jumlah neuron yang dibutuhkan tumbuh secara eksponensial jika Anda hanya menggunakan satu lapisan.
Jadi, sementara dalam teori Anda benar, dalam praktiknya, Anda tidak memiliki jumlah memori yang tak terbatas, jadi Anda tidak benar-benar ingin melatih jaring 2 ^ 1000 neuron, bukan? Bahkan jika Anda memang memiliki jumlah memori yang tak terbatas, jaring itu pasti akan sesuai.
Menurut saya, poin terpenting dari ML adalah poin praktis! Mari kita bahas sedikit tentang itu. Masalah besar sebenarnya di sini bukan hanya bagaimana polinomial naik / turun dengan sangat cepat di luar rangkaian pelatihan. Tidak semuanya. Sebagai contoh cepat, piksel gambar apa pun berada dalam kisaran yang sangat spesifik ([0,255] untuk setiap warna RGB) sehingga Anda dapat yakin bahwa sampel baru akan berada dalam kisaran nilai rangkaian pelatihan Anda. Tidak. Masalah besarnya adalah: Perbandingan ini tidak berguna untuk memulai dengan (!).
Saya menyarankan Anda untuk sedikit bereksperimen dengan MNIST, dan mencoba dan melihat hasil aktual yang dapat Anda buat dengan menggunakan hanya satu lapisan.
Jaring praktis menggunakan cara lebih dari satu lapisan tersembunyi, kadang-kadang lusinan (well, Resnet bahkan lebih ...) dari lapisan. Untuk sebuah alasan. Alasan itu tidak terbukti, dan secara umum, memilih arsitektur untuk jaringan syaraf adalah bidang penelitian yang panas. Dengan kata lain, sementara kita masih perlu tahu lebih banyak, kedua model yang telah Anda bandingkan (regresi linier dan NN hanya dengan satu lapisan tersembunyi), untuk banyak set data, tidak berguna sama sekali!
Omong-omong, jika Anda akan masuk ke ML, ada teorema lain yang tidak berguna yang sebenarnya merupakan 'area penelitian' saat ini - PAC (mungkin kira-kira benar) / dimensi VC. Saya akan mengembangkannya sebagai bonus:
Jika perkiraan universal pada dasarnya menyatakan bahwa dengan memberikan jumlah neuron yang tak terbatas, kita dapat memperkirakan fungsi apa pun (terima kasih banyak?), Yang dikatakan PAC dalam istilah praktis adalah, mengingat (secara praktis!) Jumlah tak terbatas contoh berlabel yang bisa kita dapatkan sedekat yang kita bisa ingin hipotesis terbaik dalam model kami. Itu benar-benar lucu ketika saya menghitung jumlah aktual contoh yang diperlukan untuk jaring praktis berada dalam beberapa tingkat kesalahan praktis yang diinginkan dengan beberapa probabilitas okish :) Itu lebih dari jumlah elektron di alam semesta. PS untuk meningkatkannya juga mengasumsikan bahwa sampel adalah IID (itu tidak pernah benar!).
sumber
Memang benar bahwa setiap fungsi dapat didekati secara sewenang-wenang baik oleh sesuatu yang dianggap sebagai jaringan saraf dan sesuatu yang dianggap sebagai polinomial.
Pertama-tama, perlu diingat bahwa ini berlaku untuk banyak konstruksi. Anda dapat memperkirakan fungsi apa pun dengan menggabungkan sinus dan cosinus (transformasi Fourier), atau hanya dengan menambahkan banyak "persegi panjang" (bukan definisi yang tepat, tapi saya harap Anda mengerti maksudnya).
Kedua, sama seperti jawaban Yoni, setiap kali Anda melatih jaringan, atau menyesuaikan regresi dengan banyak kekuatan, jumlah neuron, atau jumlah kekuatan, adalah tetap. Kemudian Anda menerapkan beberapa algoritma, mungkin gradient descent atau sesuatu, dan menemukan parameter terbaik dengan itu. Parameternya adalah bobot dalam jaringan, dan koefisien untuk polinomial besar. Kekuatan maksimum yang Anda ambil dalam polinomial, atau jumlah neuron yang digunakan, disebut hiperparameter. Dalam praktiknya, Anda akan mencoba beberapa di antaranya. Anda dapat membuat case bahwa parameter adalah parameter, tentu saja, tetapi bukan itu yang dilakukan dalam praktiknya.
Intinya, dengan pembelajaran mesin, Anda tidak benar-benar menginginkan fungsi yang sesuai dengan data Anda dengan sempurna. Sebenarnya itu tidak terlalu sulit untuk dicapai. Anda menginginkan sesuatu yang cocok, tetapi mungkin juga cocok untuk poin yang belum Anda lihat. Lihat gambar ini misalnya, diambil dari dokumentasi untuk
scikit-learn
.Garis terlalu sederhana, tetapi perkiraan terbaik tidak di kanan, itu di tengah, meskipun fungsi di kanan paling cocok. Fungsi di sebelah kanan akan membuat beberapa prediksi yang cukup aneh (dan mungkin kurang optimal) untuk titik data baru, terutama jika mereka berada di dekat bit gerak di sebelah kiri.
Alasan utama untuk jaringan saraf dengan beberapa parameter bekerja dengan baik, adalah bahwa mereka dapat memuat sesuatu tetapi tidak benar-benar mengenakannya. Ini juga ada hubungannya dengan cara mereka dilatih, dengan beberapa bentuk keturunan gradien stokastik.
sumber
Karena belum ada jawaban yang diberikan (meskipun saya akan menerima komentar dari pengguna1952009 apakah itu diposting sebagai jawaban), izinkan saya berbagi apa yang telah saya pelajari sementara itu:
(1) Menurut saya, pemahaman saya pada umumnya benar, tetapi iblis ada dalam rinciannya.
(2) Satu hal yang terlewatkan dalam "pemahaman saya": Seberapa baik hipotesis parametri akan digeneralisasikan ke data di luar rangkaian pelatihan? Sifat non-polinom dari prediksi jaringan saraf mungkin lebih baik di sana daripada regresi linier / polinomial sederhana (ingat bagaimana polinomial naik / turun dengan sangat cepat di luar rangkaian pelatihan).
(3) Tautan yang lebih jauh menjelaskan pentingnya kemampuan untuk menghitung parameter dengan cepat: http://www.heatonresearch.com/2017/06/01/hidden-layers.html
sumber
Mungkin tulisan ini dapat membantu Anda:
Regresi Polinomial Sebagai Alternatif Jaring Saraf Tiruan
Abstrak mengatakan:
sumber