Multi-layer perceptron vs jaringan saraf dalam

16

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?

enumaris
sumber
1
Deep neural network = neural network dengan> 1 hidden layer, MLP termasuk dalam kategori ini.
Tim
itu hanya rebranding. MLP hyped di tahun 90-an dan digantikan oleh SVM, jadi perlu menyebutnya sesuatu yang berbeda di tahun 2000-an. sarannya adalah bahwa dnn memiliki lebih banyak lapisan, tetapi perbedaannya tidak terlalu besar misalnya Le Net [MLP / CNN] (1998) 2 convolutional 2 sepenuhnya terhubung. alexnet = DNN (2012) 5 convolutional dan 3 sepenuhnya terhubung.
seanv507
SVM didasarkan pada kenaikan gradien, JST didasarkan pada penurunan gradien sehingga mereka benar-benar tidak menggantikan JST. SVM oversold dan terlalu banyak digunakan karena mahasiswa pascasarjana tidak tahu apa-apa tentang ANN. Untuk menjalankan SVM, siswa hanya mengambil paket R dan selesai. Tetapi untuk JST, Anda perlu satu semester penuh untuk memahaminya dari perspektif metode numerik - bukan perspektif bahasa interpretatif (yaitu, menampar kode bersama-sama).
JoleT

Jawaban:

21

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,

pertanyaannya adalah. Apakah "multi-layer perceptron" sama dengan "deep neural network"?

MLP adalah bagian dari DNN. Sementara DNN dapat memiliki loop dan MLP selalu meneruskan, yaitu,

Multi layer perceptrons (MLP) adalah grafik asiklik yang terbatas

mengapa terminologi ini digunakan?

Banyak terminologi yang digunakan dalam literatur sains berkaitan dengan tren zaman dan terus berkembang.

Seberapa luas terminologi ini? Apakah orang akan menggunakan istilah "multi-layered perceptron" ketika merujuk ke, misalnya, Inception net? Bagaimana dengan jaringan berulang menggunakan modul LSTM yang digunakan dalam NLP?

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

m1cro1ce
sumber
1
hanya ingin tahu: Saya pikir regresi logistik adalah teknik regresi karena Anda memperkirakan probabilitas keanggotaan kelas 1, bukan keanggotaan kelas. Karena itu, sepertinya itu bukan teknik klasifikasi bagi saya (peneliti / analis harus memutuskan probabilitas cut-off untuk mengklasifikasikan berdasarkan regresi logistik).
IWS
@IWS kamu benar. Berbagai pengguna di situs ini telah berulang kali menyatakan bahwa regresi logistik adalah model untuk estimasi probabilitas (bersyarat), bukan penggolong. Lihat misalnya di sini .
DeltaIV
1
Diedit tanggapan untuk memperbaiki Misalnya, "regresi logistik" adalah teknik klasifikasi dan tidak boleh disebut sebagai "regresi" jika demikian . Tautan yang dibagikan oleh @DeltaIV membuatnya sangat jelas mengapa ini merupakan regresi dan bukan penggolong.
m1cro1ce
8

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

  • kami belum menentukan arsitektur jaringan, jadi ini bisa menjadi umpan maju, berulang, dll.
  • kami belum menentukan sifat koneksi, sehingga kami bisa memiliki lapisan yang sepenuhnya terhubung, lapisan konvolusional, perulangan, dll.
  • "banyak" lapisan diakui bukan definisi yang ketat.

32×32+32×10=134411584beban. Ini adalah NN yang sangat kecil menurut standar saat ini. Namun, ketika Anda melanjutkan untuk melatihnya pada kumpulan data besar yang sesuai, Anda menemukan bahwa tingkat konvergensi telah melambat sangat. Ini bukan hanya karena jumlah bobot yang lebih besar, tetapi karena masalah gradien menghilang - propagasi balik menghitung gradien fungsi kerugian dengan mengalikan kesalahan di setiap lapisan, dan angka-angka kecil ini menjadi lebih kecil secara eksponensial, semakin banyak lapisan yang Anda tambahkan. Dengan demikian, kesalahan tidak menyebar (atau menyebar sangat lambat) di jaringan Anda, dan sepertinya kesalahan pada set pelatihan berhenti berkurang dengan zaman pelatihan.

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.

DeltaIV
sumber
Jawaban sebelumnya oleh m1cro1ce mengatakan bahwa conv-net (seperti awal) juga dapat diklasifikasikan sebagai MLP, sedangkan Anda menentukan bahwa MLP tidak dapat memiliki lapisan konvolusional (dan sepertinya Anda menyiratkan bahwa pilihan fungsi aktivasi juga mempengaruhi apa yang bisa disebut MLP atau tidak?). Apakah ada kesepakatan dalam literatur (atau di dalam komunitas ML) tentang apa sebenarnya arti MLP dan apa itu tidak berarti? Jika seseorang berkata kepada saya, "Saya ingin Anda membangun MLP untuk tugas X", apa yang harus saya lakukan?
enumaris
@ enumaris Anda tidak dibatasi oleh hukum untuk melakukan apa pun. Terakhir kali saya periksa, masih sah untuk membangun CNN dan menyebutnya MLP. Saya tentu saja akan menolak kertas / poster / apa pun itu, tapi itu saya dan saya tidak bisa berbicara untuk seluruh komunitas DL yang tidak terlalu terkenal karena penggunaan terminologi yang ketat. Bagaimanapun, definisi saya: feed-forward neural network dengan layer yang terhubung penuh dan setidaknya beberapa fungsi aktivasi nonlinier (jika tidak, berapa banyak layer, itu selalu sama dengan jaringan linear satu layer) adalah sama seperti yang Anda temukan di .. .
DeltaIV
... Wikipedia . Perhatikan baris di bagian lapisan "Karena MLP sepenuhnya terhubung [..]". Ini mengesampingkan CNN. Anda dapat menemukan definisi yang sama (umpan maju, terhubung sepenuhnya, setidaknya lapisan tersembunyi memiliki fungsi aktivasi nonlinier) dalam buku ini . Mengenai fungsi aktivasi, sepertinya saya tidak menyiratkan apa pun. Saya hanya mengatakan bahwa MLP biasanya memiliki fungsi aktivasi tanh atau sigmoid, tapi itu tidak wajib.
DeltaIV
Saya ingin menandai salah satu dari 2 jawaban ini sebagai jawaban yang diterima, tetapi karena mereka memberikan jawaban yang bertentangan, saya ingin tahu jawaban mana yang lebih umum ditemukan dalam literatur atau di antara komunitas ML.
enumaris
@enumaris judul pertanyaan Anda adalah "perceptron multi-layer vs deep neural network", dan Anda bertanya apakah 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 .
DeltaIV
0

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:

  • Tabular Data-set (berisi data dalam format kolom seperti pada tabel database).
  • Klasifikasi / Regresi, pbs prediksi.

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:

  • Data gambar,
  • klasifikasi / Regresi prediksi pbs,

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.

DINA TAKLIT
sumber