Ini adalah pertanyaan tentang terminologi. Kadang-kadang saya melihat orang menyebut jaringan saraf yang dalam sebagai "perceptrons berlapis-lapis", mengapa demikian? Saya diajari perceptron, adalah pengklasifikasi lapisan tunggal (atau regresi) dengan keluaran ambang biner menggunakan cara spesifik untuk melatih bobot (bukan back-prop). Jika output perceptron tidak sesuai dengan target output, kami menambah atau mengurangi vektor input ke bobot (tergantung pada apakah perceptron memberikan positif palsu atau negatif palsu). Ini adalah algoritma pembelajaran mesin yang cukup primitif. Prosedur pelatihan tampaknya tidak menggeneralisasi ke casing multi-layer (setidaknya bukan tanpa modifikasi). Jaringan saraf dalam dilatih melalui backprop yang menggunakan aturan rantai untuk menyebarkan gradien fungsi biaya kembali melalui semua bobot jaringan.
Jadi, pertanyaannya adalah. Apakah "multi-layer perceptron" sama dengan "deep neural network"? Jika demikian, mengapa terminologi ini digunakan? Tampaknya tidak perlu membingungkan. Selain itu, dengan asumsi terminologi agak dapat dipertukarkan, saya hanya melihat terminologi "multi-layer perceptron" ketika merujuk ke jaringan umpan-maju yang terdiri dari lapisan yang sepenuhnya terhubung (tidak ada lapisan konvolusional, atau koneksi berulang). Seberapa luas terminologi ini? Apakah orang akan menggunakan istilah "multi-layered perceptron" ketika merujuk pada, misalnya, Inception net? Bagaimana dengan jaringan berulang menggunakan modul LSTM yang digunakan dalam NLP?
sumber
Jawaban:
Seseorang dapat menganggap multi-layer perceptron (MLP) sebagai bagian dari jaringan saraf dalam (DNN), tetapi sering digunakan secara bergantian dalam literatur.
Asumsi bahwa perceptrons dinamai berdasarkan aturan belajar mereka salah. "Aturan pembaruan perceptron" klasik adalah salah satu cara yang dapat digunakan untuk melatihnya. Penolakan awal jaringan saraf adalah karena alasan ini, karena aturan pembaruan perceptron cenderung menghilang dan meledak gradien, sehingga tidak mungkin untuk melatih jaringan dengan lebih dari satu lapisan.
Penggunaan back-propagasi dalam jaringan pelatihan menyebabkan penggunaan fungsi aktivasi squashing alternatif seperti tanh dan sigmoid .
Jadi, untuk menjawab pertanyaan,
MLP adalah bagian dari DNN. Sementara DNN dapat memiliki loop dan MLP selalu meneruskan, yaitu,
Multi layer perceptrons (MLP) adalah grafik asiklik yang terbatas
Banyak terminologi yang digunakan dalam literatur sains berkaitan dengan tren zaman dan terus berkembang.
Jadi, ya permulaan, jaringan konvolusional, resnet dll semua adalah MLP karena tidak ada siklus antar koneksi. Bahkan jika ada koneksi jalan pintas yang melewatkan lapisan, selama berada di arah maju, itu bisa disebut perceptron multilayer. Tetapi, LSTMs, atau Vanilla RNNs dll memiliki koneksi siklik, karenanya tidak dapat disebut MLP tetapi merupakan bagian dari DNN.
Ini adalah pemahaman saya tentang banyak hal. Tolong koreksi saya jika saya salah.
Tautan Referensi:
/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network
https://en.wikipedia.org/wiki/Multilayer_perceptron
https://en.wikipedia.org/wiki/Perceptron
http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf
sumber
Pertanyaan bagus: perhatikan bahwa dalam bidang Pembelajaran Mendalam hal-hal tidak selalu begitu baik dan didefinisikan dengan jelas seperti dalam Pembelajaran Statistik (juga karena ada banyak hype), jadi jangan berharap untuk menemukan definisi seketat dalam Matematika. Bagaimanapun, multilayer perceptron adalah arsitektur jaringan saraf umpan-maju khusus, di mana Anda menumpuk beberapa lapisan yang sepenuhnya terhubung (jadi, tidak ada lapisan konvolusi sama sekali), di mana fungsi aktivasi unit tersembunyi sering berupa sigmoid atau tanh. Node pada layer output biasanya memiliki fungsi aktivasi softmax (untuk klasifikasi) atau fungsi aktivasi linier (untuk regresi). Arsitektur MLP yang khas tidak "dalam", yaitu, kami tidak memiliki banyak lapisan tersembunyi. Anda biasanya memiliki, misalnya, 1 hingga 5 lapisan tersembunyi. Jaringan saraf ini umum di tahun '80,
Sekarang, dengan Deep Neural Network yang kami maksudkan adalah jaringan yang memiliki banyak lapisan (19, 22, 152, ... bahkan > 1200 , meskipun itu diakui sangat ekstrem). Catat itu
Dan ini adalah jaringan kecil - Jaringan Neural Konvolusional mendalam yang disebut AlexNet memiliki 5 lapisan tetapi 60 juta bobot, dan itu dianggap kecil menurut standar saat ini! Ketika Anda memiliki begitu banyak bobot, maka kumpulan data apa pun adalah "kecil" - bahkan ImageNet, kumpulan data gambar yang digunakan untuk klasifikasi, memiliki "hanya" sekitar 1 juta gambar, sehingga risiko overfitting jauh lebih besar daripada jaringan dangkal.
Deep Learning dengan demikian dapat dipahami sebagai seperangkat alat yang digunakan dalam praktik untuk melatih jaringan saraf dengan sejumlah besar lapisan dan berat, mencapai kesalahan generalisasi yang rendah. Tugas ini menimbulkan lebih banyak tantangan daripada jaringan yang lebih kecil. Anda pasti dapat membangun Deep Multilayer Perceptron dan melatihnya - tetapi (terlepas dari kenyataan bahwa itu bukan arsitektur yang optimal untuk banyak tugas di mana Deep Learning digunakan hari ini), Anda mungkin akan menggunakan alat yang berbeda dari yang digunakan ketika jaringan dulu "dangkal". Misalnya, Anda dapat memilih unit aktivasi ReLU daripada sigmoid atau tanh, karena mereka melunakkan masalah gradien menghilang.
sumber
a "multi-layer perceptron" the same thing as a "deep neural network"
: pertanyaan ini telah dijawab secara terperinci, baik dalam jawaban saya dan m1cro1ce. Sekarang Anda mengajukan pertanyaan, "Apakah CNN adalah bagian dari MLP?" - situs Stack Exchange memiliki kebijakan satu pertanyaan untuk posting .Saya ingin menambahkan itu sesuai dengan apa yang saya baca dari banyak posting:
Ada banyak arsitektur yang berbeda melalui DNN seperti: MLP (Multi-Layer Perceptron) dan CNNs (Convolutional Neural Networks) .Jadi berbagai jenis DNN dirancang untuk memecahkan berbagai jenis masalah.
MLP adalah tipe klasik NN yang digunakan untuk:
MLP sangat dan dapat digunakan secara umum untuk memiringkan pemetaan dari dalam ke keluaran.
Tetapi Anda dapat mencoba format lain seperti data gambar sebagai titik perbandingan garis dasar untuk mengonfirmasi bahwa model lain lebih cocok.
CNN dirancang untuk memetakan data gambar ke variabel output. ini digunakan untuk:
Ini bekerja dengan baik dengan data yang memiliki hubungan spasial .
Ini secara tradisional digunakan untuk data 2D tetapi dapat digunakan untuk data 1D, CNN mencapai keadaan paling mutakhir pada beberapa 1D pbs.
Anda harus terlebih dahulu "mendefinisikan dengan jelas" apa yang ingin Anda pecahkan sebagai masalah (data seperti apa yang harus dikerjakan, masalah klasifikasi / regresi ... dll) untuk mengetahui jenis arsitektur yang digunakan.
Anda dapat merujuk tautan-tautan yang sangat berguna bagi saya untuk memahami lebih lanjut tentang konsep-konsep itu :).
Semoga penambahan ini bermanfaat: hal.
sumber