Çok katmanlı algılayıcı vs derin sinir ağı


17

Bu bir terminoloji meselesidir. Bazen insanların derin sinir ağlarına "çok katmanlı algılayıcılar" adını verdiğini görüyorum, neden bu? Öğretilen bir algılayıcı, ağırlıkların (sırt destekli değil) eğitiminin belirli bir yolunu kullanan ikili eşik çıktısı olan tek katmanlı bir sınıflandırıcıdır (veya regresör). Algılayıcının çıkışı hedef çıktıyla eşleşmezse, girdi vektörünü ağırlıklara ekler veya çıkarırız (algılayıcının yanlış pozitif veya yanlış negatif vermesine bağlı olarak). Oldukça ilkel bir makine öğrenme algoritması. Eğitim prosedürünün çok katmanlı bir vakaya genelleme yaptığı görülmemektedir (en azından modifikasyon olmadan). Derin bir sinir ağı, maliyet fonksiyonunun gradyanlarını ağın tüm ağırlıklarına geri yaymak için zincir kuralını kullanan backprop ile eğitilir.

Yani soru şu. "Çok katmanlı algılayıcı", "derin sinir ağı" ile aynı şey midir? Öyleyse, bu terminoloji neden kullanılıyor? Gereksiz yere kafa karıştırıcı görünüyor. Buna ek olarak, terminolojinin biraz değiştirilebilir olduğunu varsayarsak, tamamen bağlı katmanlardan (evrişimli katmanlar veya tekrarlayan bağlantılar yok) oluşan ileri beslemeli bir ağa atıfta bulunurken "çok katmanlı algılayıcı" terminolojisini gördüm. Bu terminoloji ne kadar geniştir? Örneğin, Başlangıç ​​ağına atıfta bulunurken "çok katmanlı algılayıcı" terimi kullanılabilir mi? NLP'de kullanılan LSTM modüllerini kullanarak tekrarlayan bir ağa ne dersiniz?


1
Derin sinir ağı => 1 gizli katmana sahip sinir ağı, MLP bu kategoriye girer.
Tim

sadece yeniden markalanıyor. MLP'ler 90'larda hiperlendi ve SVM'ler tarafından desteklendi, bu yüzden 2000'lerde farklı bir şey olarak adlandırılması gerekiyor. öneri, dnn'nin daha fazla katmana sahip olması, ancak o kadar büyük bir fark olmamasıdır, örneğin Le Net [MLP / CNN] (1998) 2 evrişimli 2 tam olarak bağlanmıştır. alexnet = DNN (2012) 5 evrişimli ve 3 tam bağlı.
seanv507

SVM'ler gradyan çıkışına, ANN'ler gradyan inişine dayanır, bu nedenle gerçekten ANN'leri desteklemezler. SVM'ler aşırı satıldı ve aşırı kullanıldı çünkü mezun öğrenciler YSA hakkında hiçbir şey bilmiyorlardı. SVM'leri çalıştırmak için, öğrenciler sadece R paketlerini aldı ve yapıldı. Ancak YSA'lar için, bunları sayısal yöntemler perspektifinden anlamak için tüm bir döneme ihtiyacınız vardır - yorumlayıcı bir dil perspektifinden değil (yani kodu birlikte tokatlamak).
JoleT

Yanıtlar:


21

Çok katmanlı algılayıcının (MLP) derin sinir ağlarının (DNN) bir alt kümesi olduğu düşünülebilir, ancak literatürde sıklıkla birbirinin yerine kullanılır.

Algılayıcıların öğrenme kurallarına göre adlandırıldığı varsayımı yanlıştır. Klasik "algılayıcı güncelleme kuralı", onu eğitmek için kullanılabilecek yollardan biridir. Sinir ağlarının erken reddedilmesi bu nedenden ötürü, çünkü algılayıcı güncelleme kuralı gradyanları yok etmeye ve patlatmaya eğilimli olduğundan, bir katmandan daha fazla ağları eğitmeyi imkansız hale getirdi.

Eğitim ağlarında geri yayılım kullanımı, tanh ve sigmoid gibi alternatif ezme aktivasyon fonksiyonlarının kullanılmasına yol açtı .

Soruları cevaplamak için,

soru. "Çok katmanlı algılayıcı", "derin sinir ağı" ile aynı şey midir?

MLP, DNN'nin alt kümesidir. DNN'de döngüler olabilir ve MLP her zaman ileri beslenir, yani,

Çok katmanlı algılayıcılar (MLP) sonlu bir asiklik grafiktir

bu terminoloji neden kullanılıyor?

Bilim literatüründe kullanılan terminolojilerin birçoğu zamanın eğilimleriyle ilgilidir ve yakalanmıştır.

Bu terminoloji ne kadar geniştir? Örneğin, Başlangıç ​​ağına atıfta bulunurken "çok katmanlı algılayıcı" terimi kullanılabilir mi? NLP'de kullanılan LSTM modüllerini kullanarak tekrarlayan bir ağa ne dersiniz?

Evet, başlangıç, evrişim ağı, resnet vb. Hepsi MLP'dir, çünkü bağlantılar arasında bir döngü yoktur. Katmanları atlayan bir kısayol bağlantısı olsa bile, ileri yönde olduğu sürece, çok katmanlı bir algılayıcı olarak adlandırılabilir. Ancak, LSTM'ler veya Vanilya RNN'leri vb. Döngüsel bağlantılara sahiptir, bu nedenle MLP'ler olarak adlandırılamaz, ancak DNN'nin bir alt kümesidir.

Bu benim şeyleri anlamam. Yanlışım varsa lütfen düzelt.

Referans Bağlantıları:

/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


1
sadece meraktan: Ben lojistik regresyon düşünce olduğunu yerine sınıf üyelik, sınıf 1 üyelik olasılığının tahmini çünkü bir regresyon tekniği. Bu nedenle benim için bir sınıflandırma tekniği gibi görünmüyor (araştırmacı / analist, lojistik regresyona dayalı olarak sınıflandırmak için bir olasılık kesintisine karar vermek zorundadır).
IWS

@IWS haklısın. Bu sitedeki çeşitli kullanıcılar defalarca lojistik regresyonun bir sınıflandırıcı değil, (koşullu) olasılık tahmini için bir model olduğunu belirtmiştir. Örneğin buraya bakınız .
DeltaIV

1
Düzeltmek için yanıtı düzenledi Örneğin, "lojistik regresyon" bir sınıflandırma tekniğidir ve eğer söz konusuysa "regresyon" olarak adlandırılmamalıdır . @DeltaIV tarafından paylaşılan bağlantı, neden bir sınıflandırıcı değil, bir gerileme olduğunu çok açık bir şekilde ortaya koyuyor.
m1cro1ce

8

İyi soru: Derin Öğrenme alanında, şeylerin her zaman İstatistiksel Öğrenme'deki kadar iyi kesilmediğini ve açıkça tanımlanmadığını (ayrıca çok fazla hype olduğu için) unutmayın, bu yüzden tanımları Matematik'teki kadar titiz bulmayı beklemeyin. Her neyse, çok katmanlı algılayıcı, gizli birimlerin aktivasyon işlevlerinin genellikle bir sigmoid veya tanh olduğu, çok sayıda tam bağlantılı katmanı (yani, hiçbir kıvrım katmanı yok) biriktirdiğiniz belirli bir ileri beslemeli sinir ağı mimarisidir. Çıktı katmanının düğümleri genellikle softmax aktivasyon fonksiyonlarına (sınıflandırma için) veya doğrusal aktivasyon fonksiyonlarına (regresyon için) sahiptir. Tipik MLP mimarileri "derin" değildir, yani çok fazla gizli katmanımız yoktur. Genellikle 1 ila 5 gizli katmanınız vardır. Bu sinir ağları 80'lerde yaygındı,

Şimdi, Derin Sinir Ağı ile birçok katmanı olan bir ağı kastediyoruz (19, 22, 152, ... hatta > 1200 , ancak bu çok aşırı olsa da). Bunu not et

  • ağın mimarisini belirtmedik, bu nedenle ileri besleme, tekrarlayan vb. olabilir.
  • bağlantıların doğasını belirtmedik, bu nedenle tamamen bağlantılı katmanlara, evrişimli katmanlara, tekrarlara vb. sahip olabiliriz.
  • Kuşkusuz "birçok" katman titiz bir tanım değildir .

32x32+32x10=134411584ağırlıklar. Bu, günümüz standartlarına göre küçük bir NN'dir. Bununla birlikte, uygun büyüklükte bir veri kümesi üzerinde eğitmeye devam ettiğinizde, yakınsama oranının çok yavaşladığını görüyorsunuz. Bunun nedeni yalnızca daha fazla ağırlık değil, aynı zamanda kaybolan gradyan sorunudur - geri yayılım, kayıp işlevinin gradyanını, her katmandaki hataları çarparak hesaplar ve bu küçük sayılar, daha fazla katman eklediğinizde katlanarak küçülür. Bu nedenle, hatalar ağınızda yayılmaz (veya çok yavaş yayılır) ve eğitim setindeki hata, eğitim çağlarında azalmayı durdurur gibi görünüyor.

Ve bu küçük bir ağdı - AlexNet adlı derin Konvolüsyonel Sinir Ağlarının 5 katmanı ancak 60 milyon ağırlığı vardı ve bugünün standartlarına göre küçük kabul ediliyor! Çok fazla ağırlığa sahip olduğunuzda, herhangi bir veri kümesi "küçük" olur - sınıflandırma için kullanılan bir veri kümesi olan ImageNet bile yaklaşık 1 milyon görüntüye sahiptir, bu nedenle fazla sığdırma riski sığ ağdakinden çok daha büyüktür.

Derin Öğrenme böylece pratikte çok sayıda katman ve ağırlıkla sinir ağlarını eğitmek ve düşük genelleme hatası elde etmek için kullanılan araçlar kümesi olarak anlaşılabilir. Bu görev, küçük ağlardan daha fazla zorluk çıkarır. Kesinlikle bir Derin Çok Katmanlı Perceptron oluşturabilir ve eğitebilirsiniz - ancak (bugün Derin Öğrenmenin kullanıldığı birçok görev için en uygun mimari olmadığı gerçeği dışında) muhtemelen ağlar eskiden kullanılanlardan farklı araçlar kullanacaksınız. "sığ". Örneğin, kaybolan gradyan sorununu yumuşattıkları için ReLU aktivasyon birimlerini sigmoid veya tanh olarak tercih edebilirsiniz.


Önceki m1cro1ce cevabı, bir conv-net'in (başlangıç ​​gibi) MLP olarak da sınıflandırılabileceğini söylerken, MLP'nin evrişimli katmanlara sahip olamayacağını belirtirsiniz (ve aktivasyon fonksiyonlarının seçiminin de MLP olarak adlandırılabilecek olanı değil). Literatürde (veya ML topluluğunda) MLP'nin tam olarak ne anlama geldiği ve ne anlama gelmediği konusunda mutabakat var mı? Birisi bana "X görevi için bir MLP oluşturmanızı istiyorum" derse, ne yapmakla sınırlıyım?
enumaris

@enumaris, yasalar tarafından hiçbir şey yapmamanızla sınırlı değildir. En son kontrol ettiğimde, bir CNN oluşturmak ve buna MLP demek hala yasaldı. Elbette böyle bir kağıdı / posteri / her şeyi reddederdim, ama bu benim ve terminolojinin katı kullanımı ile tam olarak ünlü olmayan tüm DL topluluğu için konuşamam. Her neyse, benim tanımım: tamamen bağlı katman ve en azından bazı doğrusal olmayan aktivasyon fonksiyonu ile ileri besleme sinir ağı (aksi takdirde, kaç katman olursa olsun, her zaman tek katmanlı doğrusal ağa eşdeğerdir) bulabileceğinizle aynıdır .. .
DeltaIV

... Wikipedia . "MLP'ler tamamen bağlı olduğundan [..]" katmanlar bölümündeki satıra dikkat edin. Bu CNN'leri dışlar. Bu kitapta aynı tanımı (ileri beslemeli, tam bağlantılı, en azından gizli katmanların doğrusal olmayan etkinleştirme işlevlerine sahip olduğunu) bulabilirsiniz . Aktivasyon fonksiyonları ile ilgili olarak, kesinlikle hiçbir şey ima etmiyorum. MLP'lerin genellikle tanh veya sigmoid aktivasyon fonksiyonlarına sahip olduğunu söyledim, ancak bu zorunlu değil.
DeltaIV

Bu 2 cevaptan birini kabul edilen cevap olarak işaretlemek istiyorum, ancak çelişkili cevaplar verdikleri için, hangi cevabın literatürde veya ML topluluğu arasında daha yaygın olarak bulunan cevap olduğunu bilmek istiyorum.
enumaris

@enumaris, sorunuzun başlığı "Çok katmanlı algılayıcıya karşı derin sinir ağına karşı" a "multi-layer perceptron" the same thing as a "deep neural network"ve sorup sormadığınızı soruyorsunuz : Bu soru hem benim hem de m1cro1ce'nin cevabında ayrıntılı olarak cevaplandı. Şimdi "CNN'ler MLP'nin bir alt grubu mu?" - Stack Exchange sitelerinin posta için bir soru politikası vardır .
DeltaIV

0

Bunu birçok gönderiden okuduğum şeye göre eklemek istiyorum:

DNN aracılığıyla birçok farklı mimari vardır: MLP'ler (Çok Katmanlı Perceptron) ve CNN'ler (Evrişimli Sinir Ağları).

MLP'ler aşağıdakiler için kullanılan klasik NN türüdür:

  • Tablo Şekilli Veri Kümeleri (veritabanı tablosunda olduğu gibi sütun biçimindeki verileri içerir).
  • Sınıflandırma / Regresyon, tahmin pbs.

MLP'ler çok fazladır ve genellikle eşlemeden çıktılara eşlemeyi eğmek için kullanılabilir.

Ancak, diğer modellerin daha uygun olduğunu doğrulamak için temel çizgi karşılaştırma noktası olarak görüntü verileri gibi diğer formatları deneyebilirsiniz.

Görüntü verilerini çıktı değişkenine eşlemek için tasarlanmış CNN'ler . için kullanılır:

  • Görüntü verileri,
  • sınıflandırma / Regresyon tahmini pbs,

Spacial ilişkileri olan verilerle iyi çalışır .

Geleneksel olarak 2D veriler için kullanılır, ancak 1D verileri için kullanılabilir, CNN'ler bazı 1D pbs'lerde en son teknolojiye ulaşır.

Hangi tür mimariyi kullanacağınızı bilmek için öncelikle problem olarak neyi çözmeyi amaçladığınızı (ne tür verilerle çalışılacağına, sınıflandırma / regresyon problemine vb.) "Açık bir şekilde" tanımlamanız gerekir .

Bu kavramlar hakkında daha fazla bilgi edinmek için benim için çok yararlı olan bağlantılara başvurabilirsiniz :).

Bu ekleme yararlı olacağını umuyoruz: s.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.