Bir sinir ağı ile derin bir sinir ağı arasındaki fark nedir ve neden derin olanlar daha iyi çalışır?


114

Bu terimlerle tam olarak belirtilen soruyu görmedim ve bu yüzden yeni bir soru yapıyorum.

Bilmek istediğim şey sinir ağının tanımı değil, derin bir sinir ağıyla gerçek farkı anlamak.

Daha fazla bağlam için: Sinir ağının ne olduğunu ve geri yayılımın nasıl çalıştığını biliyorum. Bir DNN'nin birden çok gizli katmana sahip olması gerektiğini biliyorum. Ancak, sınıfta 10 yıl önce birkaç katmana veya bir katmana sahip olmanın (giriş ve çıkış katmanlarını saymamaya) bir sinir ağının temsil edebileceği fonksiyonlar açısından eşdeğer olduğunu öğrendim (bkz. Cybenko'nun Evrensel yaklaşım teoremi ) ve Daha fazla katman, performansta kazanç olmadan analiz etmeyi daha karmaşık hale getirdi. Açıkçası, artık durum böyle değil.

Sanırım, belki de yanlış, farklılıkların yapı değil, eğitim algoritması ve özellikleri anlamında olduğunu düşünüyorum ve bu nedenle cevabın DNN'ye geçişi mümkün kılan nedenlerin altını çizebilirse gerçekten takdir edeceğim (örn. Matematiksel kanıt veya rasgele ağlarla oynatma) ?) ve arzu edilir (örneğin yakınsama hızı?)



Eğer yaklaştırmak istediğiniz fonksiyon kompozisyonsal bir fonksiyon ise (görüntü işlemede ve fizik kanununa bağlı olarak birçok doğal alan için ortaktır). Derin ağların bu kompozisyonellikten yararlanabileceği ve katlanarak daha az sayıda nöronla (tek bir gizli katman ağına kıyasla) aynı yaklaşım hatası seviyesine ulaşabileceği kanıtlanabilir. Ref: Poggio, Tomaso ve ark. “Neden ve ne zaman derin ama sığ olmayan ağlar boyutsallığın lanetinden kaçınabiliyor: bir inceleme.” Uluslararası Otomasyon ve Bilgisayar Dergisi (2017)
DataHungry

Yanıtlar:


152

Önemsizce başlayalım: Derin sinir ağı, pek çok gizli katmanı olan basit bir ağdır.

Bu tanım hakkında söylenecek tek şey, az ya da çok. Yapay sinir ağları tekrarlayan veya ileriye dönük olabilir; feedforward olanlar grafiklerinde ilmek yapmazlar ve katmanlar halinde düzenlenebilirler. Eğer "birçok" katman varsa, o zaman ağın derin olduğunu söyleriz .

Nasıl birçok tabakalar bir ağ olarak derin hak kazanmak için var zorunda? Bunun kesin bir cevabı yoktur (bir kaç tane tanenin bir yığın oluşturduğunu sormak gibidir ), ancak genellikle iki veya daha fazla gizli katmana sahip olmak derin sayılır. Buna karşılık, sadece tek bir gizli katmana sahip bir ağ geleneksel olarak "sığ" olarak adlandırılmaktadır. Burada bir miktar enflasyon olacağından şüpheleniyorum ve on yıl içinde insanlar, 10 kattan az olan her şeyin sadece anaokulu çalışmaları için sığ ve uygun olduğunu düşünebilirler. Gayrı resmi olarak, "derin" ağın ele alınması zor olduğunu göstermektedir.

Burada uyarlanmış bir gösterimidir buradan :

Derin ve derin olmayan sinir ağı

Fakat sorduğunuz asıl soru, elbette, Neden birçok katmana sahip olmak faydalı olsun?

Bence biraz şaşırtıcı cevap, kimsenin bilmediği. Orada aşağıda kısaca gözden geçirecek bazı ortak açıklamalar vardır, ama bunların hiçbiri ikna edici gerçek olamayacak gösterilmiştir ve bir hatta birçok tabakalara sahip olduğundan emin olamaz olduğu gerçekten faydalıdır.

Bunun şaşırtıcı olduğunu söylüyorum, çünkü derin öğrenme kitlesel olarak popüler, her yıl (görüntü tanıma, Go oynamaya, otomatik çeviriye, vb.) Tüm rekorları kırıyor sanayi tarafından kullanılıyor. Neden bu kadar iyi çalıştığını hala tam olarak bilmiyoruz.

Ben benim tartışma dayandırmak Derin Öğrenme 2017 yılında çıktı ve yaygın olarak kabul edilir Goodfellow, Bengio ve Courville kitabından derin öğrenme kitap. (İnternetten ücretsiz olarak erişilebilir.) İlgili bölüm 6.4.1 Genel Yaklaşım Özellikleri ve Derinliktir .

Sen yazdın

10 yıl önce sınıfta, birkaç katmana ya da bir katmana sahip olmanın (giriş ve çıkış katmanlarını saymamaya) bir sinir ağının temsil edebileceği fonksiyonlar açısından eşdeğer olduğunu öğrendim [...]

1989'da Cybenko tarafından kanıtlanan ve 1990'lı yıllarda çeşitli insanlar tarafından genelleştirilen sözde Evrensel yaklaşım teoremine atıfta bulunmalısınız . Temel olarak, sığ bir sinir ağının (1 gizli katmanı olan) herhangi bir işlevi yerine getirebileceğini, yani prensipte her şeyi öğrenebileceğini söylüyor . Bu, çoğu sinir ağının bugün kullandığı rektifiye edilmiş doğrusal birimler de dahil olmak üzere, çeşitli doğrusal olmayan aktivasyon fonksiyonları için geçerlidir (ders kitabı bu sonuç için Leshno ve ark. 1993'e atıfta bulunur ).

Öyleyse, neden herkes derin ağlar kullanıyor?

Saf bir cevap, daha iyi çalıştıkları için. İşte Derin Öğrenme kitabından, belirli bir görevde daha fazla katmana sahip olmanın yardımcı olduğunu gösteren bir rakam , ancak aynı fenomen, çeşitli görevlerde ve alanlarda sıklıkla gözlemlenir:

Daha fazla katman iyidir

Sığ bir ağın daha derin ağlar kadar iyi performans gösterebileceğini biliyoruz . Ama öyle değil; ve genellikle yapmazlar. Soru --- neden? Olası cevaplar:

  1. Belki sığ bir ağ derin olandan daha fazla nörona ihtiyaç duyar?
  2. Belki de sığ bir ağın mevcut algoritmalarımızla eğitilmesi daha zordur (örneğin, daha kötü bir yerel minimaya sahipse ya da yakınsama oranı daha yavaş ya da her neyse)?
  3. Belki sığ bir mimari, genellikle çözmeye çalıştığımız sorunlara uymaz (örneğin, nesne tanıma özünde "derin", hiyerarşik bir süreçtir)?
  4. Başka bir şey?

Derin Öğrenme kitabı mermi noktaları 1. ve 3. savunmaktadır. İlk olarak, sığ bir ağdaki birim sayısının görev karmaşıklığı ile katlanarak arttığını savunuyor. Bu yüzden yararlı olması için sığ bir ağın çok büyük olması gerekebilir; Muhtemelen derin bir ağdan çok daha büyük. Bu, sığ ağların bazı durumlarda üssel olarak birçok nörona ihtiyaç duyacağını kanıtlayan birkaç makaleye dayanmaktadır ; Ancak, örneğin MNIST sınıflandırması veya Go oynama gibi durumlar bu kadar net değildir. İkincisi, kitap şöyle diyor:

Derin bir model seçmek, öğrenmek istediğimiz işlevin birkaç basit işlevin bileşimini içermesi gerektiğine dair çok genel bir inancı kodlar. Bu, bir öğrenme öğrenme bakış açısıyla, öğrenme probleminin, diğer, daha basit olan varyasyon faktörleri açısından açıklanabilecek bir dizi varyasyon faktörü keşfetmekten oluştuğuna inandığımız anlamına geldiği şeklinde yorumlanabilir.

Bence şu anki "fikir birliği" bunun # 1 ve # 3 noktalarının bir birleşimi olduğudur: gerçek dünyadaki görevler için derin mimari genellikle faydalıdır ve sığ mimari verimsizdir ve aynı performans için daha fazla nöron gerektirir.

Ama kanıtlanmış olmaktan uzak. Örneğin, Zagoruyko ve Komodakis, 2016, Geniş Artık Ağları düşünün . 150'den fazla katmana sahip kalıcı ağlar 2015'te ortaya çıktı ve çeşitli görüntü tanıma yarışmaları kazandı. Bu büyük bir başarıydı ve derinliğin lehine zorlayıcı bir argüman gibiydi; Buradaki ilk yazarın artık ağ kağıdındaki sunumundan bir rakamdır (zamanın kafa karıştırıcı bir şekilde sola doğru gittiğini unutmayın):

derin artık ağlar

Ancak, yukarıda bağlanan kağıt, "yalnızca" 16 katmanı olan "geniş" bir artık ağın, 150+ katmanı olan "derin" olanlardan daha iyi performans gösterdiğini göstermektedir. Bu doğruysa, yukarıdaki rakamın bütün noktası bozuluyor.

Veya Ba ve Caruana'yı düşünün , 2014, Derin Ağların Gerçekten Derin Olması Gerekiyor mu? :

Bu yazıda sığ ağların derin ağlarla aynı işlevi ve bazı durumlarda derin ağlarla aynı sayıda parametreyi öğrenebildiğine dair deneysel kanıtlar sunuyoruz. Bunu önce modern bir derin modeli eğiterek, sonra derin modeli taklit etmek için sığ bir modeli eğiterek yapıyoruz. Mimik model, bir sonraki bölümde açıklanan model sıkıştırma şeması kullanılarak eğitilmiştir. Dikkate değer bir şekilde, model sıkıştırma ile sığ ağları bazı derin modellerde olduğu kadar hassas olacak şekilde eğitebiliriz, bu sığ ağları doğrudan sığ ağlar doğrudan orijinal üzerinde eğitildiğinde derin ağlar kadar hassas olacak şekilde eğitmemize rağmen etiketli eğitim verileri. Derin bir ağla aynı sayıda parametreye sahip sığ bir ağ, yüksek kalitede bir derin ağ taklit etmeyi öğrenebilirse,

Eğer doğruysa, bu doğru açıklamanın # 2 veya # 3 değil, benim # 2 mermim olduğu anlamına gelir.

Dediğim gibi --- kimse henüz kesin olarak bilmiyor.


son sözler

Geçen ~ 10 yılda derin öğrenmede kaydedilen ilerleme miktarı gerçekten şaşırtıcı, ama bu ilerlemenin en deneme yanılma yoluyla elde edildi ve biz hala konusunda çok temel bir anlayış eksikliği tam olarak derin ağlar öylesine iyi iş yapar. İnsanların etkili bir derin ağ kurmak için çok önemli olduğunu düşündüğü şeylerin listesi bile her iki yılda bir değişiyor gibi görünüyor.

Derin öğrenme rönesansı, 2006'da Geoffrey Hinton'un (hiç kimsenin ilgisini çekmeden sinir ağları üzerinde çalışan), derin ağları eğitmek için etkili bir yol sunan birkaç yeni makale yayınladığında başladı ( Bilim kağıdı , Sinirsel hesaplama kağıdı ) . İşin püf noktası , gradyan inişine başlamadan önce denetimsiz ön eğitim kullanmaktı . Bu makaleler alanda devrim yarattı ve birkaç yıl boyunca insanlar denetimsiz ön eğitimin anahtar olduğunu düşünüyorlardı.

Daha sonra 2010'da Martens, derin sinir ağlarının ikinci dereceden yöntemlerle (yani Hessian içermeyen yöntemler) eğitilebileceğini ve ön eğitim ile eğitilmiş ağlardan daha iyi bir performans gösterebildiğini gösterdi: Hessen ücretsiz optimizasyonu ile derin öğrenme . Sonra 2013 yılında Sutskever ve ark. Bazı çok zekice hilelerle stokastik eğim inişinin Hessian içermeyen yöntemleri geride bırakabileceğini göstermiştir: Derin öğrenmede başlangıç ​​ve momentumun önemi . Ayrıca, 2010 civarında insanlar sigmoid birimleri yerine rektifiye edilmiş lineer birimler kullanmanın gradyan inişi için büyük bir fark yarattığını fark ettiler. Bırakma ağları 2014 yılında ortaya çıktı. Artık ağlar 2015 yılında ortaya çıktı. İnsanlar derin ağları eğitmek için daha etkili yollar bulmaya devam ediyorlar ve10 yıl önce önemli bir içgörü gibi görünen şey, bugün sık sık sıkıntı verici olarak kabul edilir. Bunların hepsi büyük ölçüde deneme yanılma ile tahrik edilir ve az var anlayış bazı şeyler o kadar iyi çalışmaz ve bazı diğer şeyler değil kılan ait. Derin ağları eğitmek büyük bir püf noktası gibidir. Başarılı hileler, genellikle gerçeğe göre rasyonelleştirilir.

Derin ağların neden bir performans platosuna ulaştığını bile bilmiyoruz; Sadece 10 yıl boyunca insanlar yerel minimayı suçluyorlardı, ama şu anki düşüncemiz bu mesele değil. Bu derin ağlarıyla ilgili böyle bir temel sorudur ve biz bile bilmiyoruz bu .

Güncelleme: Bu, Ali Rahimi'nin NIPS 2017'nin makine öğrenmesiyle ilgili simya olarak konuşmasına konu oluyor: https://www.youtube.com/watch?v=Qi1Yry33TQE .


[Bu cevap Nisan 2017'de tamamen yeniden yazıldı, bu nedenle aşağıdaki yorumlardan bazıları geçerli değil.]


2
Güzel cevap! 1) @Nicolas tarafından da belirtildiği gibi, tek bir gizli katmanı ve sınırlı sayıda nöron içeren ileri beslemeli bir sinir ağının yaklaştırabileceğini iddia eden bir teorem ( en.wikipedia.org/wiki/Universal_approximation_theorem ) olduğu ortaya çıkmıştır. birim hiper küp üzerindeki sürekli işlevler (bir DNN dahil). Bu sonucun aktivasyon fonksiyonunun seçiminden bağımsız olduğu iddia edilmektedir. 2) Son sözünüzün (yani, Hinton’un Google’a katıldığı), DNN’lerin son başarısıyla ilgili olup olmadığından emin değilim; Hinton, DNN'lerin salgın hale gelmesinden çok sonra Google’a katıldı!
Sobi,

4
Belki terminolojiyi farklı kullanıyoruz. Algılayıcıların gizli bir katmanı yoktur - girişleri veridir, çıkışları sınıflandırmadır. Bir çok-tabakalı ağ katmanı çıkışı olduğu şekilde, birbirine kablolu algılayıcıların bir grup oluşur formları giriş katman . Tek bir gizli katmana sahip bir ağ bu nedenle üç katmana sahiptir (giriş, gizli, çıkış). Bu gizli katman, evrensel yaklaşımın anahtarıdır: eksik olan algılayıcılar, XOR gibi şeyleri hesaplayamaz, ama çok katmanlı ağlar yapabilir. nn1n
Matt Krause,

2
Doğrusallık olayı iki sorunun birleşimi gibi görünüyor. Algılayıcılar yalnızca doğrusal karar sınırlarını hesaplayabilir - yalnızca iki sınıfı bölmek için yalnızca düz çizgiler çizebilir. Çok katmanlı ağlar daha karmaşık sınırları "çizebilir". Ancak, ne algılayıcılar ne de çok katmanlı ağlar, çok katmanlı bir ağın çıkış katmanı dışında doğrusal aktivasyon fonksiyonlarını kullanmaz. Perceptron aktivasyon işlevi bir ağır çekimdir (1, eğer x> 0, 0 ise); çok katmanlı ağlar genellikle sigmoidler kullanır, ancak evrensel için kısıtlamalar yakl. oldukça hafiftir: sabit değildir, sınırlıdır ve monoton olarak artmaktadır.
Matt Krause,

2
@ amoeba büyük cevap, başlangıçtaki resim beni geri kalanını okumak için erteledi, ama en iyisiydi. Perceptron, sınıflandırma için doğrusal regresyonun karşılığıdır, bu yüzden insanlar çevrimiçi (sgd) yöntemleri yerine sorunu çözmek için kapalı form çözümünü (sahte olmayan) kullandıklarında, lojistik (sigmoid işlevi) nedeniyle buna Lojistik Regresyon denir. = algılayıcı. Bir algılayıcı / lojistik regresyon yalnızca doğrusal karar sınırlarını “çizer” ve bu nedenle doğrusal olarak adlandırılır.
shuriken x mavi

2
Bununla birlikte, çok katmanlı algılayıcı (soldaki ilk resminizde çizdikleriniz) bu tür çoklu karar sınırlarını birleştirebilir ve böylece @Matt gibi (doğrusal olmayan) XOR problemini çözmek için alanı bölebilir. Böylece, birçok birçok birleşik doğrusal karar sınırı, örneğin gözlerinizi kısarsanız, bir daire çizebilir. Bu, sizin nasıl düşündüğünüze bağlıdır - karar hala daha yüksek bir alanda doğrusaldır, eğer çekirdeklere aşina iseniz, aynı şeydir.
shuriken x mavi

8

Şimdiye kadar iyi cevap, etrafta hiç kimsenin bahsetmediği birkaç şey olsa da, işte benim 0.02 $

Ben sadece bir hikaye şeklinde cevap vereceğim, işleri daha eğlenceli ve net hale getirmeliyim. Burada tldr yok. Süreçte farkın ne olduğunu anlayabilmelisiniz.

DNN'lerin yaptıklarında kıvılcım oluşturmasının birçok nedeni var (yıldızlar aynı, her şey gibi, aynı zamanda doğru yer, doğru zaman meselesi gibi).

Bunun bir nedeni, verilerin kullanılabilirliği, çok fazla veri (etiketli veri). 'Genel öncelikler' veya 'evrensel öncelikler' (yani, görevler / uygulamalar arasında yeniden kullanılabilecek temel yapı taşları) gibi bir şeyi genelleştirmek ve öğrenmek istiyorsanız, o zaman çok fazla veriye ihtiyacınız vardır. Ve vahşi veriler, kontrollü ışıklandırmalı laboratuarda dikkatlice kaydedilen steril veri kümelerini eklemeyebilir miyim? Mekanik Türk bunu (etiketlemeyi) mümkün kıldı.

İkincisi, GPU'ları kullanarak daha büyük ağları daha hızlı eğitme imkanı denemeyi daha hızlı yapmıştır. ReLU üniteleri işleri hesaplamada daha hızlı hale getirmiş ve düzenli hale getirmişlerdir, çünkü aynı bilgiyi sıkıştırabilmek için bir tabakada daha fazla ünite kullanmanız gerektiğinden, artık tabakalar daha seyrek olduğu için, aynı zamanda bırakma ile de güzelleşmiştir. Ayrıca, birden çok katmanı yığınladığınızda ortaya çıkan önemli bir sorunla da yardımcı oldular. Daha sonra bu konuda daha fazla. Performansı iyileştiren çeşitli çoklu hileler. Mini-partileri (aslında nihai hataya zarar veren) veya konvolüsyonları kullanmak (aslında yerel alıcı alanlar kadar değişkenlik yakalamamaktadır) ancak hesaplamalı olarak daha hızlıdır.

Bu sırada insanlar çileli ya da çilksiz, daha sıska ya da daha fazla tombul, daha küçük ya da daha uzun, hoşlanıp hoşlanmadıklarını tartışıyorlardı. Optimizasyon fizz gibiydi ya da çarpıyor mu? Newton yöntemi, nihayet hepsi bedava öğle yemeği olmadığını anladılar. Ağlar geğiyordu.

İşleri yavaşlatan şey, kaybolan degrade sorunuydu . İnsanlar şöyle oldu: vay, işte bu kadar uzak dostum! Özet olarak, hatayı girdilere daha yakın olan katmanlardaki hatayı ayarlamak zor oldu. Kek üzerine daha fazla katman ekledikçe, çok titrekleşir. Anlamlı bir hatayı ilk katmanlara geri yayamazsın. Daha fazla katman, daha da kötüleşti. Aylak.

Bazı insanlar, çapraz entropiyi bir kayıp fonksiyonu olarak kullanmanın (iyi, yine sınıflandırma ve görüntü tanıma) bir tür düzenlileştirme sağladığını ve ağın doygun hale gelmesine ve bunun sonucunda degradenin bu kadar iyi gizlenememesine yardımcı olduğunu anlamıştır.

Ayrıca, işleri mümkün kılan, denetlenmeyen yöntemler kullanarak kat başına ön eğitimdi. Temel olarak, bir sürü otomatik kodlayıcı alırsınız ve sıkıştırma oranını arttırırken gittikçe daha az soyut gösterimi öğrenirsiniz. Bu ağlardan gelen ağırlıklar, denetlenen sürümü başlatmak için kullanıldı. Bu, kaybolan gradyan sorununu başka bir yolla çözdü: zaten daha iyi bir başlangıç ​​pozisyonundan denetimli eğitime başladınız. Böylece diğer tüm ağlar kalktı ve isyan etmeye başladı. Ancak yine de ağların denetlenmesi gerekiyordu, aksi halde büyük verileri sabit tutmak imkansızdı.

Şimdi, nihayet bir nevi kısaca cevap veremeyecek kadar karmaşık olan cevabınıza neden olan son kısım: neden sadece bir katman değil, daha fazla katman. Çünkü yapabiliriz! ve çünkü bağlam ve değişmez özellik tanımlayıcıları. ve havuzlar.

İşte size bir örnek: bir görüntü kümeniz var, bu verileri kullanarak bir NN planını nasıl eğiteceksiniz? Şey, saf bir biçimde, her bir satırı söyleyelim ve onu uzun bir vektörde birleştiriyorsunuz ve bu sizin girişiniz. Ne öğreniyorsun? Eh, görüntüdeki nesnelerin içerdiği birçok fark varyasyonları ve alakalı ve alakasız şeyleri ayırt edemediğiniz için hiçbir şeye benzemeyen bazı bulanık saçma fonksiyonlar. Ve bir noktada, ağın yeni şeyleri yeniden öğrenebilmeyi unutması gerekiyor. Yani kapasite sorunu var. Bu daha doğrusal olmayan bir dinamiktir ancak sezgi, ağınıza daha fazla bilgi ekleyebilmeniz için nöron sayısını arttırmanız gerektiğidir.

Bu nedenle, görüntüyü tek parça olarak girerseniz, ekstra katmanlar eklemek sizin için çok fazla bir şey yapmaz çünkü soyutlamalar öğrenemezsiniz , ki bu çok önemlidir. Bunları bütünsel bir şekilde yapmak, ağ ile belirli bir nesne türüne odaklanmak gibi daha basit şeyler yapmadığınız sürece, işe yaramaz, bu nedenle kendinizi bir sınıfa sınırlandırırsınız ve bir sınıflandırma hedefi olarak bazı küresel özellikleri seçersiniz.

Peki yapılacak ne var? Ekranınızın kenarına bakın ve bu metni okumaya çalışın. Sorun? Göründüğü kadar aptalca, okuduklarına bakmalısın. Aksi takdirde çok bulanık / yeterli çözünürlük / ayrıntı düzeyi yok. Odak alanını alıcı alan olarak adlandıralım. Ağların da odaklanabilmesi gerekir. Temel olarak, görüntünün tamamını girdi olarak kullanmak yerine, görüntü boyunca kayan bir pencereyi hareket ettirirsiniz ve daha sonra bunu ağa giriş olarak kullanırsınız (insanların yaptıklarından biraz daha stokastik). Artık pikseller ve dolayısıyla nesneler arasındaki korelasyonları yakalama şansınız da var ve ayrıca koltukta oturan uykulu kedi ile baş aşağı kedi bungee jumping'i de ayırt edebilirsiniz. Düzgün, insanlığa olan inanç restore edildi. Ağ, bir görüntüdeki yerel soyutlamaları çoklu seviyelerde öğrenebilir. Ağ filtreleri öğrenir,

Yani, bir şeyleri özetlemek için: alıcı alanlar / konvolüsyonlar, denetimsiz başlatma, düzeltilmiş doğrusal birimler, bırakma veya diğer düzenlileştirme yöntemleri. Eğer bu konuda çok ciddiysen, Schmidhuber'ın Sinir Ağları'ndaki Derin Öğrenme bölümüne bir göz atmanı öneriyorum : Genel bir bakış için http://arxiv.org/abs/1404.7828

Ve unutmayın: büyük öğrenme, derin veri. Kelime.


Selam Florin, güzel cevap için teşekkürler! Yazma tarzını seviyorum. Sürgülü pencerelerden bahsettiğinizde, evrişimli NN'nin evrişimsel katmanlarının bir görüntünün farklı kısımlarını nasıl gözlemlediğini ve onların aktivasyonlarını daha düşük bir boyutta bir alana yansıtdığını mı kastediyorsunuz?
Nicolas,

hemen hemen evet, konvolüsyon gerekli değildir, ancak ağırlıklar kısıtlandığından hesaplamalı olarak daha hızlıdırlar. konvolüsyon kullanmadıklarını ve yerel alıcı alanlar kullandıklarını kontrol edin. önemli anahtar kelimeler yerel / hiyerarşiktir: arxiv.org/pdf/1112.6209.pdf
shuriken x mavi

Ayrıca en yakın sistematik cevabın Sobi'nin olduğunu düşünüyorum. Benim oyum var. biraz daha tuz ve karabiber ekledim.
shuriken x mavi

6

Layman açısından, klasik Sinir Ağları ile ana fark , çok daha gizli katmanlara sahip olmalarıdır.

Fikir, birkaç soyutlama katmanı yapmak için katmanlara etiketler eklemektir:

Örneğin, nesne tanıma için derin bir sinir ağı :

  • Katman 1: Tek piksel
  • Katman 2: Kenarlar
  • Katman 3: Formlar (daireler, kareler)
  • Katman n: Bütün nesne

Quora'da bu soruya iyi bir açıklama bulabilirsiniz .

Ve, eğer bu konuyla ilgileniyorsanız, bu kitaba bir göz atmayı rica ediyorum .


1
Teşekkürler David, ama sadece nasıl etiket ekleyeceğimi gerçekten anlamadım. Ayrıca, bir fonksiyonun sinir ağı tarafından nasıl kodlandığını anlamak ve ayrıştırmak zor bir problemdi. Daha fazla katmana sahip olmaktan başka bir şey olmalı. Verdiğiniz örneğe gelince, her bir görevi yerine getirebilmek için bireysel (eski okul) sinir ağları yetiştirebileceğinizi düşünüyorum.
Nicolas

Bir boru hattı gibi kullandığınızda güç gelir, bu yüzden katmanın giriş ve çıkışları her katmanda istiflenir.
David Gasquez

İyi bir kaynak olan ilk bağlantınızı ve quora ve se ile ilgili diğer soruları okudum, ancak verdiğiniz örnek okuduklarım ile doğru görünmüyor. Tezleri özetleyerek kendi soruma cevap vermeye çalışacağım.
Nicolas

2
İşaretlenen kaynağın ilgi çekici olmasına rağmen, cevap güncellemesi soruyu cevaplamıyor.
Nicolas,

Katmanların etiketlendiği bir örneği işaret edebilir misiniz (tamamen açıklayıcı bir şekilde değil)? Gizli katmanların her gizli katmandaki art arda daha karmaşık özelliklere sahip olduğu kesinlikle doğrudur, ancak "etiket ekleme" onların bunu yapmak için özel olarak eğitilmiş oldukları anlamına gelir.
Matt Krause

2

Ayrıca başlangıçta sinir ağları (NN) ve derin sinir ağları (DNN) arasındaki fark ile biraz kafam karıştı, ancak 'derinlik' maalesef sadece parametre ve katman sayısını ifade ediyor. Kanada Mafyası denilen bir çeşit yeniden markalaşma olarak kabul edebilirsiniz.

Birkaç yıl önce, bir sınıfın bir parçası olarak Sinir Ağları vardı ve çok sayıda gizli katman ve çıktısı olan NN'yi ve DNN'nin sahip olduğu tüm cazları kullanarak sayısal tanıma, dalga yaklaşımı ve benzeri uygulamalar yaptık. Ancak, o zaman sahip olmadığımız şey gücü hesaplama idi.

DNN'ye geçişi mümkün ve arzulanan hale getiren sebep, donanım geliştirmedeki gelişmelerdir. Basitçe söylemek gerekirse, şimdi daha fazla, daha hızlı ve daha paralel bir şekilde hesaplayabiliriz (GPU'larda DNN), daha önce NN'ler için bir darboğaz vardı.

Wikipedia'nın Derin Öğrenme sayfasında belirtildiği gibi, 'derin' bölüm çoğunlukla özelliklerin doğrusal olmayan bir biçimde birden çok katmanda etkileşime girmesini, dolayısıyla özellik çıkarma ve dönüştürme işlemini ifade eder. Bu aynı zamanda standart NN'lerde, ancak daha küçük bir ölçekte yapıldı.

Aynı sayfada, burada “Derin bir sinir ağı (DNN), giriş ve çıkış katmanları arasında birden fazla gizli birim katmanı olan yapay bir sinir ağıdır (ANN)” tanımına sahipsiniz .


Merhaba Mttk, cevabınız için teşekkürler, bu soruya daha fazla ışık tuttu. Son noktanızla ilgili olarak, evet, yapısal olarak farklılığı açıklamak çok kolaydır (1'e karşılık çoklu tabakalar), ancak bu çoklu tabakaların nasıl kullanıldığındaki fark çok önemli ve daha az belirgindir. Ben yapısına değil soruyu odaklı nedeni budur ..
Nicolas

Dürüst olmak gerekirse, başvurduğum son tanıma katılmıyorum - çünkü bir gizli katmanı olan ANN / NN gerçekten verimli değil ve daha karmaşık bir tahmin için birden çok kişiye ihtiyacınız vardı (bunu söylüyorum çünkü DNN bir işe yaramaz buzzword zaten iyi bir terim olan NN'ye eklendi. Bence NN ve DNN'yi birbirlerinin yerine kullanabileceğinizi düşünüyorum (çünkü günümüzde hiç kimse bir gizli katman NN kullanmıyor), katmanların kullanımı ise DNN tipleri (CNN, RBM, RNN, LSTM, CW-RNN, ...) arasında farklılık gösteriyor. ve DNN'nin kendisi fikri değil.
Aralık’ta

2

Bildiğim kadarıyla, Günümüzde Derin Sinir Ağı (DNN) olarak adlandırılan şeyin, temel olarak veya felsefi olarak eski standart Sinir Ağı'ndan (NN) hiçbir farkı yoktur. Her ne kadar teoride, yalnızca bir gizli katmanı olan sığ bir NN kullanarak keyfi bir NN'ye yaklaşılabilir , ancak bu, iki ağın aynı algoritma ve eğitim verilerini kullanarak eğitildiğinde benzer şekilde performans göstereceği anlamına gelmez. Aslında, derin ağlara benzer şekilde çalışan sığ ağların eğitimine ilgi artmaktadır. Bununla birlikte, bunun yapılma şekli ilk önce derin bir ağı eğitmek ve daha sonra sığ ağı taklit etmek için eğitmektir.derin ağın nihai çıktısı (yani son katın çıktısı). Bakın, derin mimarileri olumlu kılan şey, günümüzün eğitim tekniklerinin (geri yayma) nöronlar hiyerarşik bir yapıya yerleştirildiğinde daha iyi işe yaradığıdır.

Sorulabilecek bir başka soru da: Neden Sinir Ağları'nın (özellikle DNN'ler) aniden bu kadar popüler hale geldiğidir. Anladığım kadarıyla, DNN'leri son zamanlarda bu kadar popüler yapan sihirli içerikler şunlardır:

A. Geliştirilmiş veri kümeleri ve veri işleme yetenekleri

1. Milyonlarca farklı görüntü içeren büyük ölçekli veri setleri kullanıma sunuldu

2. Hızlı GPU uygulaması halka açıklandı

B. Geliştirilmiş eğitim algoritmaları ve ağ mimarileri

1. Sigmoid veya tanh yerine Rektifiye Doğrusal Birimler (ReLU)

2. Derin ağ mimarileri yıllar içinde gelişti


A-1) Çok yakın zamana kadar, en azından Computer Vision'da milyonlarca etiketli görüntü üzerinde modeller yetiştiremedik; çünkü bu büyüklükte etiketli veri setleri mevcut değildi. Görüntü sayısının yanı sıra, etiket setinin tanecikliğinin de DNN'lerin başarısında çok önemli bir faktör olduğu ortaya çıkmıştır ( bu yazıda Azizpour ve ark. Tarafından buradaki Şekil 8'e bakınız ).

A-2) Pratikte iyi çalışan DNN'lerin, özellikle de GPU uygulamalarının ortaya çıkmasına neden olan DNN'lerin eğitilmesini mümkün kılmak için çok sayıda mühendislik çalışması yapıldı. DNN'lerin ilk başarılı GPU uygulamalarından biri, iki paralel GPU üzerinde çalışıyor; Bununla birlikte, üst düzey GPU'ları kullanarak 1000 kategorideki 1.2 milyon görüntüde bir DNN eğitmek yaklaşık bir hafta alır ( bu makaleye bakınız , Krizhevsky ve ark.).

B-1) Sigmoid ve tanh işlevleri yerine basit Rektifiye Doğrusal Birimlerin (ReLU) kullanılması, DNN'lerin eğitimini mümkün kılmada muhtemelen en büyük yapı taşıdır. Hem sigmoid hem de tanh fonksiyonlarının , düşük aktivasyon seviyesinden yüksek hıza ne kadar hızlı geçtiklerine bağlı olarak hemen hemen her yerde neredeyse sıfır gradyana sahip olduğunu unutmayın ; Aşırı durumda, geçiş ani olduğunda, geçişin gerçekleştiği bir nokta dışında her yerde sıfır eğimi olan bir adım işlevi elde ederiz .

B-2) Sinir ağları mimarisinin yıllar içinde nasıl geliştiğinin hikayesi, evrimin bir organizmanın doğadaki yapısını nasıl değiştirdiğini hatırlatıyor. Parametre paylaşımı (örneğin evrişimli katmanlarda), bırakma düzenlenmesi, başlatma, öğrenme hızı çizelgesi, uzamsal havuzlama, daha derin katmanlarda alt örnekleme ve şimdi DNN'lerin eğitiminde standart olarak kabul edilen birçok diğer hileler , geliştirilen, son Derin ağların eğitimini bugün olduğu gibi mümkün kılacak yıllar.


3
+1. OP'nin sorularına yeterli cevap sağlayan bu konudaki ilk cevap. Burada birçok iyi nokta. Tek önemli yorumum, A ve B'nize ek olarak, C: mevcut eğitim veri setlerinin boyutunda büyük bir artış olduğu yönünde olacaktır. Bu en azından A ve B kadar önemli gözüküyor
amip

1
Relunun bu kadar önemli olduğunu sanmıyorum: Alex krizhevsky gazetesi 6 kat daha hızlı öğrendiğini iddia etti.
Bahsettiğiniz

1
@ amoeba: veri kümesinin boyutu A altında. Vurgulamak için metni güncelledim.
Sobi

@ seanv507: Gerçekten, cevabı yazarken aklımda evri ağları (ConvNets) vardı. Eğer kaçırdığım diğer önemli faktörler (ConvNets ile ilgisi olmayan) varsa, onlardan bahsederseniz memnun olurum. Cevabımı buna göre güncellemekten memnuniyet duyarım. ReLU'larla ilgili olarak, tanh ve sigmoid ile yapılan eğitim çalışmaları, yok olma dereceleri nedeniyle, ReLU'lara göre çok daha zordur: üniteler kolayca doygun hale gelir ve bir kez gerçekleştiğinde, tekrar doymamış olmaları çok uzun sürer (üniteler çok küçük olduğunda doymuş)
Sobi

2

Bir "Deep" NN ve standart NN arasındaki fark tamamen nitelikseldir: "Deep" in ne anlama geldiğinin bir tanımı yoktur. "Derin", Google, Facebook ve 50-80 veya daha fazla katmana sahip co tarafından kullanılan son derece gelişmiş mimarilerden 2 gizli katmana (toplam 4 katman) mimariye kadar her şey anlamına gelebilir. Tek bir gizli katmanla derin öğrenme yapmakta olduğunu iddia eden makaleler bulabilirseniz bile şaşırmam, çünkü "derin" pek bir şey ifade etmiyor.

“Sinir ağı” aynı zamanda çok kesin bir anlamı olmayan bir kelimedir. Çeşitli aktivasyon fonksiyonlarına sahip rastgele boltzman makinelerinden (yönlendirilmemiş grafikler) ileri beslemeli mimarilere kadar oldukça geniş bir model grubunu kapsar. Çoğu NN backprop kullanılarak eğitilecektir, ancak durum böyle olmak zorunda değil, bu yüzden eğitim algoritmaları bile çok homojen değil.

Genel olarak, derin öğrenme, derin NN'ler ve NN'lerin hepsi çok sayıda yaklaşımı yakalayan kelimeleri yakaladı.

“Neyin değiştiğini” iyi tanıtmak için: Temsilcilerin Derin Öğrenilmesi: İleriye Bakış , Bengio, 2013 gelecek için iyi bir inceleme + bakış açısıdır. Ayrıca bkz. Derin Ağların Gerçekten Derin Olması Gerekiyor mu? Ba ve Caruana, 2013, derin olmanın temsil için değil öğrenme için faydalı olabileceğini göstermektedir .


Verdiğiniz referanslar çok faydalıdır, ancak mevcut formdaki cevabın geri kalanı ("NN bir şey ifade etmiyor, DNN hiç bir şey ifade etmiyor, NN ve DNN bir çok şey yapabilir" anlamına geliyor) yazıyor. revize etmeyi düşünür müsün?
Nicolas,

1

David Gasquez'in cevabını genişletmek için, derin sinir ağları ve geleneksel sinir ağları arasındaki temel farklılıklardan biri, derin sinir ağları için sadece geri yayılım kullanmamaktır.

Neden? Geriye doğru yayılma, katmanları önceki katmanlara göre daha verimli bir şekilde eğittiğinden, ağda daha erken ve daha erken ilerlerken, hatalar küçülür ve dağılır. Böylece, on katmanlı bir ağ, temel olarak yedi kat rastgele ağırlık ve ardından üç kat bağlı ağırlık olacak ve sadece üç katmanlı bir ağ oluşturacaktır. Daha fazlası için buraya bakınız .

Dolayısıyla, kavramsal atılım, ayrı problemleri (etiketli katmanlar) ayrı problemler olarak ele alıyor - ilk önce genel olarak iyi bir ilk katman oluşturma sorununu çözmeye çalışırsak ve sonra genel olarak iyi bir ikinci katman oluşturma sorununu çözmeye çalışırsanız, Sonunda asıl sorunumuza besleyebileceğimiz derin bir özellik alanına sahip olacağız.


1

NN:

  • bir gizli katman yeterlidir, ancak yine de birden fazla katmana sahip olabilir, soldan sağa sıralama (model: ileri besleme NN)
  • sadece denetimli bir şekilde eğitilmiş (geri yayılım)
  • Birden çok katman kullanıldığında, tüm katmanları aynı anda eğitin (aynı algoritma: geri yayılma), daha fazla katman hataların çok küçük olması nedeniyle kullanımını zorlaştırır
  • her katmanda ne öğrenildiğini anlamak zor

DNN:

  • çoklu katmanlar gereklidir, yönlendirilmemiş kenarlar (model: kısıtlı boltzman makinesi)
  • ilk önce ağların girişini yeniden üretmeyi öğrenerek ilgili özellikleri öğrendiği denetlenmemiş bir şekilde eğitilmiş, daha sonra sınıflandırmak için özellikleri ayarlayan para cezaları konusunda denetimli bir şekilde eğitilmiş
  • tabakaları girdiden çıktı katmanına birer birer eğitin (algoritma: kontrast sapma)
  • Her bir katman açıkça soyutlamanın artan özelliklerini içerir.

DNN'ye geçiş, 2006'da gerçekleşen üç bağımsız buluştan kaynaklanıyor.

NN ile ilgili teoremler söz konusu olduğunda, sorulan soru şudur:

  • evrensel yaklaşım teoremi veya Cybenko teoremi: tek bir gizli katmana sahip ileri beslemeli bir sinir ağı, herhangi bir sürekli işlevi yerine getirebilir. Bununla birlikte, pratikte, tek bir gizli katman kullanılıyorsa, çok daha fazla nöron gerekebilir.

2
-1? Gerçekten mi? Tüm bunları literatürde okudum ve her iki yaklaşımın da nokta nokta karşılaştırmalarını yaptım! Lütfen en azından doğru olmadığını
Nicolas

3
Düşürmedim (belki bir düşürücü kendi sorunuza cevap vermekten hoşlanmadı mı? Ama bu elbette burada gayet iyi), ama burada tamamen doğru olmayan bir şey var. DNN'nin özellikleri olarak listeledikleriniz: kenarların yönlendirilmemiş olması, ilk önce denetimsiz bir şekilde eğitilmiş olması, katmanların tek tek eğitilmesi - bunların hepsi 2006'da Hinton tarafından önerilen derin inanç ağlarına atıfta bulunuyor. genel olarak derin sinir ağları için mutlaka doğru ve aslında bunların hiçbiri olmadan derin bir ağı eğitmenin birçok yolu var. Cevabımı gör.
amip

1

O(n)

Bence geri adım atmanız ve bunun sığ AI'da bir canlanma yarattığını görmelisiniz - örneğin duyarlılık analizi ve diğer dil uygulamaları için sözcük torbası ve sözcüklerin görsel torbası, DNN'den önce görüntü tanıma yaklaşımında öncüdür. Hiç kimse bir kelime çuvalının gerçek bir dil modeli olduğunu söylemiyor ama etkili bir mühendislik çözümü. Bu yüzden, DNN'nin daha iyi bir "görsel çanta kelimesi" olduğunu söyleyebilirim - bakınız örneğin Szegedy ve ark. 2013 Sinir ağlarının ilgi çekici özellikleri ve Nguyen ve ark. Derin Sinir Ağları Kolayca Kanıtlanır: Tanınamayan Resimler için Yüksek Güven Tahminleri , daha yüksek dereceli yapıların vb. Öğrenilmediği (ya da DNN için talep edilenler) olmadığı açıktır.


@ amoeba bu diğer makale neredeyse birincisine eşlik eden bir yazıdır (yine çok sayıda
resimle

0

Derin Öğrenme, çok sayıda doğrusal olmayan dönüşümden oluşan mimarileri kullanarak verilerdeki üst düzey soyutlamaları modellemeye çalışan bir dizi algoritmadır .

Kaynak: Arno Candel

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.