Feedforward bir sinir ağındaki gizli katman ve düğüm sayısını nasıl seçersiniz?


540

İleri beslemeli bir sinir ağında katman sayısını ve her katmandaki düğüm sayısını seçmek için standart ve kabul edilmiş bir yöntem var mı? Yapay sinir ağları oluşturmanın otomatik yollarıyla ilgileniyorum.


4
Tüm bu güzel cevaplar arasında bu yazıyı
Debpriya Seal

@DebpriyaSeal olsa da yararlı değil ...
DarkCygnus

Yanıtlar:


468

Bu sorunun cevaplandığını fark ediyorum, ancak mevcut cevabın soruyu gerçekten sorunun konusu ile ilgili olan bir bağlantıya işaret etmekten öteye geçtiğini sanmıyorum. Özellikle, bağlantı programlı ağ yapılandırması için bir tekniği açıklar, ancak bu ağ yapılandırması için " [a] standart ve kabul edilen bir yöntem " değildir.

Küçük bir açık kurallar dizisi uygulanarak, programatik olarak yetkin bir ağ mimarisi belirlenebilir (yani, nöronal katmanların sayısı ve türü ve her katmanı içeren nöronların sayısı). Bu şemanın ardından, bu size yetkin bir mimari verecektir, ancak muhtemelen optimal bir yapı sunmayacaktır.

Ancak bu ağ başlatıldıktan sonra, birkaç yardımcı algoritma kullanarak egzersiz sırasında yapılandırmayı yinelemeli olarak ayarlayabilirsiniz; tarafından bu çalışmaların bir aile budama başka bir deyişle, (aşağıda Bu konuda daha fazla) gereksiz / gereksiz düğümleri ortadan kaldırarak - Eğitim dönemlerini belli bir sayıdan sonra ağırlık vektörü (küçük) değerlerine göre düğümler.

Böylece her NN üç tür katmana sahiptir: giriş , gizli ve çıkış .


NN mimarisini oluşturmak, bu nedenle, her bir türdeki katman sayısı ve bu katmanların her birindeki düğüm sayısı için değerler bulmak anlamına gelir.

Giriş Katmanı

Basit - Her NN'de onlardan biri vardır - bildiğim hiçbir istisna yok.

Bu katmanı oluşturan nöronların sayısıyla ilgili olarak, bu parametre egzersiz verilerinizin şeklini öğrendiğinizde tamamen ve benzersiz bir şekilde belirlenir. Spesifik olarak, bu katmanı içeren nöronların sayısı, verilerinizdeki özelliklerin (sütunların) sayısına eşittir . Bazı NN yapılandırmaları, önyargı terimi için bir ek düğüm ekler.


Çıktı Katmanı

Giriş katmanı gibi, her NN tam olarak bir çıkış katmanına sahiptir. Boyutunun belirlenmesi (nöron sayısı) basittir; tamamen seçilen model konfigürasyonu ile belirlenir.

NN'niz Makine Modunda mı, yoksa Regresyon Modunda mı çalışıyor (ML, istatistiklerde de kullanılan ancak farklı bir anlam atayan bir terim kullanmanın konvansiyonu çok kafa karıştırıcıdır). Makine modu: bir sınıf etiketi döndürür (örneğin, "Premium Hesap" / "Temel Hesap"). Regresyon Modu bir değer döndürür (örneğin, fiyat).

NN bir regresör ise, çıkış katmanı tek bir düğüme sahiptir.

NN bir sınıflandırıcıysa, softmax kullanılmadığı sürece tek bir düğüme de sahiptir , bu durumda çıkış katmanı modelinizde sınıf etiketi başına bir düğüme sahiptir.

Gizli Katmanlar

Böylece bu birkaç kural hem giriş hem de çıkış katmanları için katman sayısını ve boyutunu (nöronlar / katman) belirler. Bu gizli katmanları bırakır.

Kaç tane gizli katman var? Verileriniz doğrusal olarak ayrılabilirse (ki bir NN'yi kodlamaya başladığınızda sıkça bildiğiniz), o zaman hiçbir gizli katmana ihtiyacınız yoktur. Tabii ki, verilerinizi de çözmek için bir NN'ye ihtiyacınız yok ama yine de işi yapacak.

Bunun ötesinde, muhtemelen bildiğiniz gibi, NN'lerde gizli katman konfigürasyonu sorusu üzerine bir yorum dağı var (bu yorumun mükemmel bir özeti için delicesine eksiksiz ve anlayışlı NN SSS bölümüne bakın ). Bu konuda bir fikir birliği bulunan bir konu, ek gizli katmanları eklemekten performans farkıdır: Performansın bir saniye (veya üçüncü, vb.) Gizli katmanla geliştirildiği durumlar çok azdır. Bir gizli katman, problemlerin büyük çoğunluğu için yeterlidir.

Öyleyse gizli katmanların boyutu ne kadar? Bazı ampirik olarak türetilmiş kurallar vardır, bunlardan en çok dayanan, ' gizli katmanın optimal büyüklüğü genellikle girdi katmanı ve çıktı katlarının büyüklüğü arasındadır '. Java'daki Yapay Sinir Ağlarına Giriş'in yazarı Jeff Heaton birkaç tane daha sunuyor.

Özetle, çoğu sorun için, yalnızca iki kuralı kullanarak gizli katman yapılandırmasını ayarlayarak muhtemelen iyi bir performans elde edilebilir (ikinci bir optimizasyon adımı olmasa bile): (i) gizli katman sayısı bir taneye eşittir; ve (ii) bu katmandaki nöronların sayısı girdi ve çıktı katmanlarındaki nöronların ortalamasıdır.


Ağ Yapılandırmasının Optimizasyonu

Budamahesaplama performansını ve bazen de çözünürlük performansını iyileştirmek için ağ boyutunu (katmanlara değil düğümlere göre) kırpmak için bir teknikler tarif eder. Bu tekniklerin özü, ağdan çıkarılırsa ağ performansını belirgin şekilde etkilemeyecek olan düğümleri (yani verilerin çözünürlüğü) etkilemeyen düğümleri belirleyerek, eğitim sırasında düğümleri ağdan çıkarmaktır. (Resmi bir budama tekniği kullanmasanız bile, antrenmandan sonra ağırlık matrisinize bakarak hangi düğümlerin önemli olmadığına dair kaba bir fikir edinebilirsiniz; sıfıra çok yakın ağırlıklara bakın; budama sırasında kaldırılır.) Açıkçası, eğitim sırasında budama algoritması kullanıyorsanız, o zaman aşırı (yani, 'budalabilir') düğümlere sahip olma olasılığı daha yüksek olan bir ağ yapılandırmasıyla başlayın.

Başka bir deyişle, eğitim sırasında ağınıza budama algoritması uygulayarak, en uygun ağ yapılandırmasına yaklaşabilirsiniz; Bunu tek bir "önden" yapıp yapamayacağınız (genetik algoritma tabanlı bir algoritma gibi) bilmiyorum, şu an için bu iki aşamalı optimizasyonun daha yaygın olduğunu biliyorum.


31
Sorunların çoğunluğu için sadece bir gizli katmana ihtiyaç duyduğunu belirtiyorsunuz. Belki de daha gizli katmanları olan NN'lerin eğitilmesi son derece zor olduğunu söylemek daha iyidir (nasıl yapılacağını bilmek istiyorsanız, Hinton grubunun Uof Toronto'daki yayınlarını kontrol edin, "derin öğrenme" ve bu nedenle gizli olandan daha fazlasını gerektiren sorunları katman sinir ağları tarafından "çözülemez" kabul edilir.
bayerj

13
Sen yazmak NN bir regresör ise, çıkış katmanı tek bir düğüm vardır. . Neden sadece tek bir düğüm? Neden birden fazla sürekli çıkışa sahip olamıyorum?
gerrit

5
@gerrit Hedef çıktınız vektör değerli ise kesinlikle birden fazla sürekli çıktıya sahip olabilirsiniz. Vektör değerli çıkışlar için uygun bir kayıp fonksiyonu tanımlamak, bir çıkıştan biraz daha zor olabilir.
lmjohns3

5
Bunun tam tersi olduğunu düşünmüştüm: NN bir sınıflandırıcıysa, softmax kullanılmadığı sürece tek bir düğüme sahip olabilir; bu durumda, çıkış katmanı modelinizde sınıf etiketi başına bir düğüme sahiptir.
viyps

2
@doug Bu harika cevap için teşekkür ederim. Bu, ANN'imi 3 gizli katmandan 1'e düşürmeme ve doğru sayıda gizli nöron sayısını ayarlayarak aynı sınıflandırma doğruluğunu elde etmeme izin verdi ... Sadece bir araya toplanan girdi ve çıktı ortalamasını kullandım. Teşekkürler!
rayryeng

129

@ doug'un cevabı benim için çalıştı. Denetimli öğrenme problemlerine yardımcı olacak ek bir kural vardır. Nöron numaranızı aşağıda tutarsanız, genellikle fazla uyumu önleyebilirsiniz:

Nh=Ns(α(Ni+No))

Ni = giriş nöron sayısı. = çıkış nöron sayısı. = Eğitim veri setindeki örnek sayısı. = genellikle 2-10 olan rastgele bir ölçeklendirme faktörü
No
Ns
α

Diğerleri, değerini 5 ile 10 arasında bir değere ayarlamanızı önerir , ancak 2 değerinin genellikle fazla takmadan işe yarayacağını düşünüyorum. Alfa'yı, her bir nöron için etkili dallanma faktörü veya sıfır olmayan ağırlık sayısı olarak düşünebilirsiniz. Bırakma katmanları, "etkili" dallanma faktörünü, ağınız için gerçek ortalama dallanma faktöründen aşağıya çeker.alpha

Bu mükemmel NN Tasarım metninde açıklandığı gibi , modelinizdeki serbest parametre sayısını (sıfır ağırlık veya derece ) verilerinizdeki serbestlik derecelerinin küçük bir kısmı ile sınırlandırmak istiyorsunuz . Verilerinizdeki serbestlik dereceleri, her örnekteki * serbestlik dereceleri (boyutlar) veya (hepsinin bağımsız olduğu varsayılarak . Bu yüzden , modelinizin ne kadar genel olmasını istediğinizi veya fazla giydirmeyi ne kadar önlemek istediğinizi belirtmenin bir yoludur.Ns(Ni+No)α

Otomatik bir prosedür için, 2 alfa ile başlarsınız (modelinizle egzersiz verilerinizde iki kat daha fazla serbestlik derecesi) ve egzersiz veri setinizdeki hata (kayıp), olduğundan daha küçükse 10'a kadar çalışırsınız. Test veri kümeniz.


7
Bu formül çok ilginç ve faydalı. Bu formül için referans var mı? Daha yararlı olurdu.
prashanth

2
@prashanth Yukarıda belirtilen NN Tasarım metninde birkaç iddia ve formülü birleştirdim. Ama açıkça gösterdiğim biçimde söylendiğini sanmıyorum. Ve benim versiyonum, birçok basitleştirici varsayımla birlikte kaba bir yaklaşımdır. Yani YMMV.
ocaklar

1
Önce önceki yorumda test seti yerine eğitim seti yazmak istedim. Belki de bu formül, "veri setinden yeterince özellik öğrenmek için (en azından bahsettiğiniz DOF) pek çok nörona ihtiyacınız var" olarak okumamız gerekiyorsa anlamlıdır. Veri setinin özellikleri popülasyonu temsil ediyorsa ve model ne kadar genelleştirebiliyorsa belki de bu farklı bir sorudur (ama önemli bir konu).
kon psych,

3
Bunun birden çok gizli katmanı olan ağlar için iyi bir tahmin olduğundan emin misiniz? Birden fazla gizli katman için, parametre sayısı değerinden daha büyük değil mi? Nh(Ni+No)
Mateusz

2
mateus, belki de çoklu katmanlar için biraz daha iyi bir kural, bunun için N_h(katman başına ortalama gizli nöron sayısı) verilen çözümdür N_s = (N_i + N_o) * N_h ^ N_hidden_layers. Ama yine de bu formülü kullanmazdım. Başka herhangi bir düzenlileştirme yaklaşımını uygulamayı planlamadığınızda sadece çok temel problemler için (oyuncak problemleri).
ocak

60

Gönderen Java için Yapay Sinir Ağlarına Giriş (ikinci baskı) tarafından Jeff Heaton - at serbestçe kullanılabilir önizleme Google Kitaplar ve daha önce de yazarın web sitesine :

Gizli Katman Sayısı

Gizli katmanlara ilişkin verilmesi gereken iki karar var: sinir ağında gerçekte kaç gizli katmana sahip olacağı ve bu katmanların her birinde ne kadar nöron olacağı. Öncelikle sinir ağı ile kullanılacak gizli katmanların sayısını nasıl belirleyeceğimizi inceleyeceğiz.

İki gizli katman gerektiren problemlere nadiren rastlanır. Bununla birlikte, iki gizli katmana sahip sinir ağları, herhangi bir şekilde olan fonksiyonları temsil edebilir. Şu anda sinir ağlarını ikiden fazla gizli katmanla kullanmanın teorik bir nedeni yoktur. Aslında, birçok pratik problem için, birden fazla gizli katman kullanmanın bir nedeni yoktur. Tablo 5.1, sinir ağı mimarilerinin çeşitli gizli katmanlarla yeteneklerini özetlemektedir.

Tablo 5.1: Gizli Katman Sayısının Belirlenmesi

| Gizli Katman Sayısı | Sonuç |

 0 - Yalnızca doğrusal ayrılabilir işlevleri veya kararları temsil edebiliyor.

 1 - Sürekli eşleme içeren herhangi bir işlevi yaklaşık değerlendirebilir
bir sonlu uzaydan diğerine.

 2 - Keyfi bir kararla keyfi bir karar verebiliyor mu?
rasyonel aktivasyon fonksiyonları ile ve herhangi bir pürüzsüz yaklaşık
herhangi bir doğrulukta haritalama.

Gizli nöron katmanlarının sayısına karar vermek, sorunun sadece küçük bir kısmıdır. Ayrıca bu gizli katmanların her birinde kaç tane nöron olacağına karar vermelisiniz. Bu süreç bir sonraki bölümde ele alınmaktadır.

Gizli Katmanlardaki Nöron Sayısı

Gizli katmanlardaki nöronların sayısına karar vermek, genel sinir ağı mimarinize karar vermenin çok önemli bir parçasıdır. Bu katmanlar doğrudan dış çevre ile etkileşime girmese de, nihai çıktı üzerinde büyük bir etkiye sahiptir. Hem gizli katmanların hem de bu gizli katmanların her birindeki nöronların sayısı dikkatlice düşünülmelidir.

Gizli katmanlarda çok az sayıda nöron kullanılması, donukluk denilen bir şeyle sonuçlanacaktır. Underfitting, gizli katmanlarda, karmaşık bir veri setindeki sinyalleri yeterince tespit etmek için çok az nöron olduğunda meydana gelir.

Gizli katmanlarda çok fazla nöron kullanmak, bazı sorunlara neden olabilir. İlk olarak, gizli katmanlardaki çok fazla nöron fazla uyuma neden olabilir. Sinir ağı, eğitim setinde yer alan sınırlı miktarda bilginin gizli katmanlardaki tüm nöronları yetiştirmek için yeterli olmadığı kadar fazla bilgi işleme kapasitesine sahip olduğunda aşırı donanım oluşur. Egzersiz verileri yeterli olsa bile ikinci bir problem ortaya çıkabilir. Gizli katmanlardaki çok fazla sayıda nöron, ağı eğitmek için harcanan zamanı artırabilir. Eğitim süresi, sinir ağının yeterince eğitilmesinin imkansız olduğu noktaya kadar artabilir. Açıkçası, gizli katmanlardaki çok fazla ve çok az nöron arasında bir miktar uzlaşmaya varılmalıdır.

Gizli katmanlarda kullanılacak doğru sayıda nöron sayısını belirlemek için aşağıdakiler gibi birçok temel yöntem vardır:

  • Gizli nöronların sayısı, giriş katmanının boyutu ile çıkış katmanının boyutu arasında olmalıdır.
  • Gizli nöronların sayısı, giriş katmanının 2 / 3'ü artı çıkış katmanının büyüklüğü olmalıdır.
  • Gizli nöronların sayısı, giriş katmanının iki katından daha az olmalıdır.

Bu üç kural, göz önünde bulundurmanız için bir başlangıç ​​noktası sağlar. Nihayetinde, sinir ağınız için bir mimari seçimi deneme yanılma gibi olacaktır. Ama tam olarak deneme yanılma ile ne kastedilmektedir? Ağınıza rastgele sayıda katman ve nöron atmaya başlamak istemezsiniz. Bunu yapmak çok zaman alırdı. Bölüm 8, “Bir Sinir Ağının Budaması”, bir sinir ağı için en uygun yapıyı belirlemek için çeşitli yollar keşfedecektir.


Ayrıca , bir kaç kelimeyle çok şey ifade eden researchgate.net'te bulduğum bir cevaptan aşağıdaki pasajı da seviyorum :

Steffen B Petersen · Aalborg Üniversitesi

[...]

Ağın genelleştirilebilmesi için düğüm sayısını mümkün kılmak için mümkün olduğu kadar düşük tutulmalıdır. Çok fazla sayıda düğümünüz varsa, ağınız, antrenman setini mükemmelliğe geri çekebilecek bir hafıza bankası haline gelir, ancak antrenman setinin bir parçası olmayan örnekler üzerinde iyi performans göstermez.


Steffen B Petersen'ın fiyatının kaynağını biliyor musunuz?
Sebastian Nielsen

Üzgünüm, yapmadım. Aramaya çalıştım ama bulamadım ... Makalenin web'den kaldırıldığını düşünüyorum. Belki doğrudan onunla temasa geçebilirsin?
jj_

Eğitim setinin büyüklüğü dikkate alınmamalı mı? ~ 300.000 tekil numune (araç fiyatları) içeren tablo veri setine sahibim. Giriş katmanı 89 düğüme sahiptir. Düzenleme yapılmayan bir ağı ve tek bir gizli katmanda yalnızca 89 düğümü eğiterek, birkaç çağdan sonra platoda eğitim kaybını alıyorum. RMSE platolarında ~ 1.800 $ (tek çıkış düğümü bu regresyon probleminde fiyattır).
rodrigo-silveira

Ben Steffen B Petersen tarafından alıntı kaynağının burada olduğunu düşünüyorum: researchgate.net/post/…
TripleAntigen

43

Şu an bunun üzerine ampirik bir çalışma üzerinde çalışıyorum (HPC tesisimizde işlemci-yüzyıl simülasyonlarını onaylayarak!). Tavsiyem "büyük" bir ağ ve düzenlileştirme kullanmak olacaktır, eğer düzenlileştirme kullanıyorsanız, ağ mimarisi daha az önemli hale gelir (yakalamak istediğimiz temel işlevi gösterecek kadar büyük olması şartıyla), ancak düzenlemeyi ayarlamanız gerekir Düzgün parametre.

Mimari seçimi ile ilgili sorunlardan biri, modelin karmaşıklığının sürekli kontrolünden ziyade ayrık bir kontrol olmasıdır ve bu nedenle, özellikle ideal karmaşıklık düşük olduğunda, biraz kör bir enstrüman olabilir.

Bununla birlikte, bunların tümü "bedava öğle yemeği yok" teoremlerine tabidir, çoğu durumda yapılan düzenlemeler etkili olmakla birlikte, her zaman mimari seçimin daha iyi çalıştığı durumlar ve eldeki sorunun doğru olup olmadığını anlamanın tek yolu olacaktır. Hem yaklaşımları denemek hem de geçerliliği doğrulamaktır.

Otomatik bir sinir ağı kurucusu yapacak olsaydım, Radford Neal'in Hibrit Monte Carlo (HMC) örnekleme tabanlı Bayesian yaklaşımını kullanırdım ve büyük bir ağ kullanır ve tek bir ağın ağırlığını optimize etmek yerine ağırlıklar üzerinde entegre olurdum. Ancak bu hesaplama açısından pahalıdır ve biraz da "siyah sanat" tır, ancak Prof. Neal'ın elde ettiği sonuç buna değeceğini söylüyor!


“Şu an bunun üzerine ampirik bir çalışma üzerinde çalışıyorum” - Herhangi bir güncelleme var mı?
Martin Thoma

2
hayır, 'doid hayır, hala büyük (ağ) ağ ve düzenlileştirme önerebilirim, ancak gümüş mermi yok, bazı problemler düzenlileşmeye ihtiyaç duymuyor, ancak bazı veri kümelerinin düzenli olmasının yanı sıra gizli katman boyutu ayarlaması gerekiyor. Ne yazık ki hakemler makaleyi beğenmedi :-(
Dikran Marsupial

17

Bildiğim kadarıyla her katmanda otomatik olarak katman ve nöron sayısını seçmenin bir yolu yok. Ancak EANN (topolojiyi geliştirmek için Genetik Algoritmalar kullanan Evrimsel Yapay Sinir Ağları) gibi topolojilerini otomatik olarak oluşturabilen ağlar vardır.

Birkaç yaklaşım var, iyi sonuçlar vermiş gibi görünen modern bir yaklaşım NEAT (Artırılmış Topolojilerin Nöro Evrimi) idi .


13

• Gizli düğüm sayısı: Optimum gizli nöron sayısını seçmek için sihirli bir formül yoktur. Ancak, gizli nöronların sayısını hesaplamak için bazı kurallar vardır. Masters (1993) tarafından önerilen geometrik piramit kuralı ile kaba bir yaklaşım elde edilebilir. N giriş ve m çıkış nöronlarına sahip üç katmanlı bir ağ için, gizli katman nöronlara sahip olacaktır.nm

Ref:

1 Üstatlar, Timothy. C ++ 'da pratik sinir ağı tarifleri. Morgan Kaufmann, 1993.

[2] http://www.iitbhu.ac.in/faculty/min/rajesh-rai/NMEICT-Slope/lecture/c14/l1.html


Bu kural, birkaç farklı veri kümesi ve üç gizli katmanla oldukça iyi çalışıyor gibiydi. Kesin olan, bu kuralı kullanarak, gizli katmanlardaki nöronların sayısı, giriş özelliklerinin sayısından (boyut ) az olacaktır . n
JoleT

6

Global hiper-parametre aramayı kullanarak sinir ağları oluşturmanın otomatik yolları:

Giriş ve çıkış katmanları sabittir.

Neler değişebilir:

  • katman sayısı
  • her katmandaki nöron sayısı
  • katman türü

Bu ayrık optimizasyon problemi için, maliyet fonksiyonu olarak örnek dışı ağ ile birden fazla yöntem kullanılabilir .

  • 1) Biraz daha iyi bir konumdan başlamak için parametre alanı üzerinde Izgara / rasgele arama
  • 2) En uygun mimariyi bulmak için kullanılabilecek birçok yöntem . (Evet, zaman alır).
  • 3) Düzenleme yapın, durulayın, tekrarlayın.

6

Üzgünüz, henüz bir yorum gönderemiyorum bu yüzden lütfen yanımda ol. Her neyse, bana son zamanlarda gördüğüm bir makaleyi hatırlatan bu tartışma konusuna girdim. Buraya katılan kişilerin ilgisini çekebileceğini düşünüyorum:

AdaNet: Yapay Sinir Ağlarının Uyarlamalı Yapısal Öğrenmesi

Corinna Cortes, Xavier Gonzalvo, Vitaly Kuznetsov, Mehryar Mohri, Scott Yang; 34. Uluslararası Makine Öğrenimi Konferansı Bildirileri, PMLR 70: 874-883, 2017.

Özet Yapay sinir ağlarını analiz etmek ve öğrenmek için yeni bir çerçeve sunuyoruz. Yaklaşımımız aynı anda ve uyarlamalı olarak ağın yapısını ve ağırlıklarını öğrenir. Metodoloji, güçlü veri bağımlı teorik öğrenme garantileri üzerine kuruludur ve bunlara eşlik eder, böylece nihai ağ mimarisi herhangi bir sorunun karmaşıklığına kanıtlanabilir.



3

Daha az yaygın ancak süper etkili bir yöntem önermek istiyorum .

Temel olarak, potansiyel seçeneklerin küçük bir alt kümesini deneyen "genetik algoritmalar" adı verilen bir dizi algoritmadan yararlanabilirsiniz (katman başına rastgele katman ve düğüm sayısı). Daha sonra bu seçenek popülasyonuna, evrimleşen benzer organizmalardan birini veya birkaçını birleştirerek / değiştirerek çocukları yaratan "ebeveynler" gibi davranır. En iyi çocuklar ve bazı rastgele çocuklar, her nesilde ve nesiller boyunca en uygun olanları hayatta kalırlar.

~ 100 veya daha az parametre için (katman sayısı, katman türleri ve katman başına nöronların sayısı gibi) bu yöntem süper etkilidir. Her nesil için bir dizi potansiyel ağ mimarisi oluşturarak ve bunları öğrenme eğrisi tahmin edilinceye kadar kısmen eğiterek kullanın (tipik olarak birçok parametreye bağlı olarak 100-10k mini gruplar). Birkaç jenerasyondan sonra, tren ve onaylama işleminin çocuk seçiminde amaç işleviniz olarak önemli ölçüde farklı hata oranlarına (aşırı uyarlama) sahip olmaya başladığı noktayı düşünebilirsiniz. Sonuca daha hızlı ulaşmak için son bir model seçinceye kadar verilerinizin çok küçük bir alt kümesini (% 10-20) kullanmak iyi bir fikir olabilir. Ayrıca, sonuçları doğru şekilde karşılaştırmak için ağınızın başlatılması için tek bir tohum kullanın.

10-50 kuşak, iyi bir büyüklükteki ağ için mükemmel sonuçlar vermelidir.


Çok ilginç bir başka yol da nispeten az sayıda parametre için son derece etkili bir kara kutu optimizasyon yöntemi olan Bayesian optimizasyonu. arxiv.org/pdf/1206.2944.pdf
Dan Erez

2

Gizli Katman Sayısı ve Neler Yapabilecekleri:

0 - Yalnızca doğrusal ayrılabilir işlevleri veya kararları temsil edebiliyor.

1 - Bir sonlu uzaydan diğerine sürekli bir haritalama içeren herhangi bir işlevi yaklaşık değerlendirebilir.

2 - Rasyonel aktivasyon fonksiyonları ile keyfi doğruluk sınırına rastgele bir karar sınırını temsil edebilir ve herhangi bir kesin eşleştirmeyi herhangi bir kesinliğe yaklaştırabilir.

2'den fazla - Ek katmanlar, katman katmanları için karmaşık gösterimleri (otomatik özellik mühendisliği türünü) öğrenebilir.


8
Kaynak (lar) lütfen. - Hakem
Jim
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.