kaç tane gizli katman ?
Sıfır gizli katmana sahip bir model, doğrusal olarak ayrılabilir verileri çözecektir . Dolayısıyla, verilerinizin doğrusal olarak ayrılabilir olmadığını zaten bilmiyorsanız, bunu doğrulamanın bir zararı olmaz - neden görevin gerektirdiğinden daha karmaşık bir model kullanılsın? Doğrusal olarak ayrılabilirse, daha basit bir teknik işe yarayacaktır, ancak bir Perceptron da işi yapacaktır.
Verilerinizin doğrusal olmayan bir teknikle ayrılması gerektiğini varsayarsak, her zaman tek bir gizli katmanla başlayın . Neredeyse kesinlikle ihtiyacınız olan tek şey bu. Verileriniz bir MLP kullanılarak ayrılabilirse, bu MLP'nin muhtemelen yalnızca tek bir gizli katmana ihtiyacı vardır. Bunun teorik gerekçeleri var, ancak benim nedenim tamamen ampirik: Birçok zor sınıflandırma / regresyon problemi, tek gizli katmanlı MLP'ler kullanılarak çözülüyor, ancak verileri başarılı bir şekilde modellemek için kullanılan çok katmanlı MLP'lerle karşılaştığımı hatırlamıyorum. - ML bülten panolarında, ML Ders Kitaplarında, akademik makaleler vb. üzerinde olsunlar, elbette varlar, ancak kullanımlarını haklı çıkaran koşullar ampirik olarak oldukça nadirdir.
Gizli katmanda kaç düğüm var?
MLP akademik literatüründen. kendi deneyimlerim, vb., topladım ve sıklıkla birkaç temel kurala ( RoT ) dayandım ve bunların da güvenilir kılavuzlar olduğunu keşfettim (yani, rehberlik doğruydu ve olmasa bile, genellikle daha sonra ne yapılacağı belliydi):
Yakınsamayı iyileştirmeye dayalı RoT :
Model oluşturmaya başladığınızda , gizli katmandaki daha fazla düğümün yanında hata yapın .
Neden? İlk olarak, gizli katmandaki birkaç ekstra düğüm muhtemelen herhangi bir zarar vermez - MLP'niz yine de birleşecektir. Öte yandan, gizli katmandaki çok az düğüm yakınsamayı engelleyebilir. Bu şekilde düşünün, ek düğümler biraz fazla kapasite sağlar - yineleme sırasında (eğitim veya model oluşturma) sinyali ağa depolamak / bırakmak için ek ağırlıklar. İkinci olarak, gizli katmanınızda ek düğümlerle başlarsanız, onları daha sonra budamak kolaydır (yineleme işlemi sırasında). Bu yaygındır ve size yardımcı olacak teşhis teknikleri vardır (örneğin ağırlık matrislerinin sadece görsel bir tasviri olan Hinton Diyagramı, ağırlık değerlerinin bir 'ısı haritası').
Giriş katmanının boyutuna ve çıktı katmanının boyutuna dayalı RoT'ler :
Bu [gizli] katmanın boyutunun, girdi katmanı boyutu ... ve çıktı katmanı boyutu .... arasında bir yerde olması genel bir kuraldır.
Gizli düğümlerin sayısını hesaplamak için genel bir kural kullanıyoruz: (Giriş sayısı + çıkış sayısı) x 2/3
Temel bileşenlere dayalı RoT :
Tipik olarak, girdi veri kümesinin varyansının% 70-90'ını yakalamak için gereken boyutlar [ana bileşenler] kadar gizli düğüm belirtiriz .
Yine de NN SSS yazarı bu Kuralları "saçma" (kelimenin tam anlamıyla) olarak adlandırır çünkü bunlar: eğitim vakalarının sayısını, hedeflerdeki gürültüyü (yanıt değişkenlerinin değerleri) ve özellik uzayının karmaşıklığını göz ardı eder.
Onun görüşüne göre (ve bana her zaman neden bahsettiğini biliyormuş gibi geldi), gizli katmandaki nöronların sayısını MLP'nizin bir tür düzenleme veya erken durdurma içerip içermediğine göre seçin .
Gizli Katmandaki nöron sayısını optimize etmek için tek geçerli teknik:
Model oluştururken takıntılı bir şekilde test edin; test, "yanlış" ağ mimarisinin imzalarını ortaya çıkaracaktır. Örneğin, az sayıda düğümden oluşan gizli bir katmana sahip bir MLP ile başlarsanız (test sonuçlarına göre gerektiğinde kademeli olarak artıracaksınız) eğitim ve genelleme hatanız hem önyargı hem de yetersiz uyum nedeniyle yüksek olacaktır.
Daha sonra gizli katmandaki düğüm sayısını, genelleme hatası artmaya başlayana kadar teker teker artırın, bu sefer aşırı uyum ve yüksek varyans nedeniyle.
Pratikte bunu şu şekilde yapıyorum:
girdi katmanı : veri boşaltıcımın boyutu (modelimdeki özelliklerin sayısı) sapma düğümü için + 1 ve tabii ki yanıt değişkeni dahil değil
çıktı katmanı : modelim tarafından belirlenen soley: regresyon (bir düğüm) ve sınıflandırma (softmax varsayılarak sınıf sayısına eşdeğer düğüm sayısı)
Gizli katman : başlatmak için , bir gizli katmangiriş katmanının boyutuna eşit sayıda düğüm ile. "İdeal" boyut, daha büyük olmaktan ziyade daha küçüktür (yani, giriş katmanındaki sayı ile çıktı katmanındaki sayı arasındaki bazı düğüm sayısı) - yine, bu yalnızca deneysel bir gözlemdir ve toplu bu gözlem benim kendi deneyimimdir. Proje gerekli ek süreyi haklı çıkardıysa, o zaman az sayıda düğümden oluşan tek bir gizli katmanla başlıyorum, sonra (hemen yukarıda açıkladığım gibi) Genelleştirmeyi hesaplarken Gizli Katmana her seferinde bir düğüm ekliyorum hata, eğitim hatası, önyargı ve varyans. Genelleme hatası azaldığında ve tekrar artmaya başlamadan hemen önce, o noktadaki düğüm sayısı benim seçimim. Aşağıdaki şekle bakın.