Bu harika bir soru ve aslında bahsettiğiniz kapasite / derinlik sorunları ile ilgili bazı araştırmalar yapıldı.
Evrişimli sinir ağlarındaki derinliğin, daha zengin ve daha çeşitli özellik hiyerarşilerini öğrenmeye yol açtığına dair çok sayıda kanıt vardır. Ampirik olarak en iyi performans gösteren ağların "derin" olma eğiliminde olduğunu görüyoruz: Oxford VGG-Net'in 19 katmanı vardı, Google Inception mimarisi derin, Microsoft Deep Residual Network'ün raporlanmış 152 katmanı var ve bunların hepsi çok etkileyici ImageNet karşılaştırması elde ediyor Sonuçlar.
Yüzeyde, bir tür düzenleyici kullanmadığınız sürece, daha yüksek kapasiteli modellerin fazla uyuma eğilimi olduğu bir gerçektir. Çok derin ağların aşırı takılmasının performansına zarar verebilmesinin bir yolu, az sayıda eğitim çağında çok düşük eğitim hatasına hızla yaklaşacaklarıdır, yani veri kümesinden çok sayıda geçiş için ağı eğitemeyiz. Stokastik bir düzenleme tekniği olan Bırakma gibi bir teknik, daha uzun süreler için çok derin ağları eğitmemizi sağlar. Bu aslında daha iyi özellikler öğrenmemizi ve sınıflandırma doğruluğumuzu geliştirmemizi sağlıyor çünkü eğitim verilerinden daha fazla geçiş elde ediyoruz.
İlk sorunuzla ilgili olarak:
Neden derin bir sinir ağında katman başına katman / düğüm sayısını azaltmak ve daha az miktarda veriyle çalışmasını sağlayamıyorsunuz?
Eğitim seti boyutunu küçültürsek, genelleme performansını nasıl etkiler? Daha küçük bir eğitim seti boyutu kullanırsak, bu daha küçük dağıtılmış özellik temsilini öğrenmeye neden olabilir ve bu genelleme yeteneğimize zarar verebilir. Sonuçta, iyi genelleme yapabilmek istiyoruz. Daha geniş bir eğitim setine sahip olmak, daha çeşitli dağıtılmış özellik hiyerarşisini öğrenmemizi sağlar.
İkinci sorunuzla ilgili olarak:
Bir sinir ağının "devreye girene" kadar gerektirdiği temel bir "minimum parametre sayısı" var mı? Belirli sayıda katmanın altında, sinir ağları, elle kodlanmış özelliklerin yanı sıra performans göstermiyor gibi görünüyor.
Şimdi derinlik meselesi hakkındaki yukarıdaki tartışmaya biraz nüans ekleyelim. Şu anda teknolojinin şu anki durumunda olduğumuz göz önüne alındığında, yüksek performanslı bir konveksiyon ağını sıfırdan eğitmek için bir tür derin mimari kullanılıyor.
Ancak, model sıkıştırmaya odaklanan bir dizi sonuç vardı . Yani bu sorunuza doğrudan bir cevap değil, ama ilgili. Model sıkıştırması aşağıdaki soru ile ilgilenmektedir: Yüksek performanslı bir model göz önüne alındığında (bizim durumumuzda derin bir döngü ağı diyelim), modeli sıkıştırabilir, derinliğini veya hatta parametre sayısını azaltabilir ve aynı performansı koruyabilir miyiz?
Öğretmen olarak yüksek performans, yüksek kapasiteli dönüşüm ağı görüntüleyebiliriz . Öğretmeni daha kompakt bir öğrenci modeli yetiştirmek için kullanabilir miyiz ?
Şaşırtıcı bir şekilde cevap: evet . Bir dizi sonuç vardı, konveksiyon net perspektifi için iyi bir makale Rich Caruana ve Jimmy Ba'nın bir makalesi
Deep Nets Gerçekten Derin Olmalı mı? . Performansı çok az olan daha derin bir modeli taklit etmek için sığ bir model eğitebilirler . Bu konuda daha fazla çalışma yapıldı, örneğin:
diğer işler arasında. Eminim başka iyi makaleler eksik.
Bana göre bu tür sonuçlar bu sığ modellerin gerçekten ne kadar kapasiteye sahip olduğunu sorguluyor. Caruana, Ba makalesinde, aşağıdaki olasılığı belirtiyorlar:
"Sonuçlar, derin öğrenmenin gücünün kısmen derin mimariler ve mevcut eğitim prosedürleri arasındaki iyi bir eşleşmeden kaynaklanabileceğini ve daha doğru sığ ileri beslemeli ağlar yetiştirmek için daha iyi öğrenme algoritmaları tasarlamanın mümkün olabileceğini düşündürmektedir. parametre sayısı, derinlik öğrenmeyi kolaylaştırabilir, ancak her zaman gerekli olmayabilir "
Açık olmak önemlidir: Caruana, Ba makalesinde, en yeni performansı elde etmek için sığ bir modeli sıfırdan, yani sadece sınıf etiketlerinden eğitim almıyorlar. Daha ziyade, yüksek performanslı bir derin model eğitiyorlar ve bu modelden her veri noktası için günlük olasılıklarını çıkarıyorlar. Daha sonra bu günlük olasılıklarını tahmin etmek için sığ bir model geliştiriyoruz. Bu yüzden sığ modeli sınıf etiketleri üzerinde eğitmiyoruz, aksine bu günlük olasılıklarını kullanıyoruz.
Bununla birlikte, yine de oldukça ilginç bir sonuç. Bu, sorunuza doğrudan bir cevap vermese de, burada çok alakalı bazı ilginç fikirler var.
Temel olarak: bir modelin teorik "kapasitesi" ile modelinizin iyi bir konfigürasyonunu bulmak arasında bir fark olduğunu hatırlamak her zaman önemlidir. İkincisi optimizasyon yöntemlerinize bağlıdır.