Yapay Sinir Ağlarında Hata Ayıklama


10

Ben scipy.optimize.minimize (degrade konjuge) optimizasyon işlevini kullanarak python yapay bir sinir ağı inşa ettik.

Degrade denetimi uyguladım, her şeyi iki kez kontrol ettim ve doğru çalıştığından eminim.

Birkaç kez çalıştırdım ve 'Optimizasyon başarıyla sonlandırıldı' değerine ulaştı, ancak gizli katmanların sayısını artırdığımda, hipotezin maliyeti başarılı bir şekilde sona erdikten sonra artar (diğer her şey aynı tutulur).

Sezgisel olarak, gizli katmanların sayısı arttığında maliyetin düşmesi gerektiği gibi hissedilir, çünkü verilere daha iyi uyabilecek daha karmaşık bir hipotez üretebilir, ancak durum böyle değildir.

Burada neler olduğunu anlamak isterdim, yoksa nöral ağı yanlış uygularsam?

Yanıtlar:


9

Bir sinir ağı ile yanlış gitmenin birçok yolu vardır, hata ayıklamak zor olacaktır. Ayrıca, sezgilerinize hitap etmek için, her ek gizli katman öğrenmeyi daha da zorlaştırır. Bununla birlikte, bazı olasılıklar var:

  1. Kilo kaybı eklediniz. Daha fazla katman eklemek daha fazla ağırlık ekler ve bu da normalleştirme maliyetinizi artırır.
  2. Sorun, tek bir gizli katmana sahip bir modelin yeterli olacağı kadar basittir. Daha fazla gizli katman eklemek ağın öğrenmesini zorlaştırır (daha zor optimizasyon sorunu).
  3. Optimizasyon yöntemi iyi bir iş yapmıyor (scipy.optimize için climin'i tercih ederim).
  4. Sigmoid / tanh etkinleştirme işlevini kullanıyorsunuz. Sigmoid işlevi, daha fazla katmanla öğrenmeyi zorlaştıran yok olan degrade sorununa neden olur. ReLu işlevini kullanmayı deneyin.

Sinir ağlarını eğitmek çok fazla pratik, şans ve sabır gerektirir. İyi şanslar.


1
İyi cevap. Yine de, 2, 3, 4'ün karmaşık şekillerde etkileşime girebileceğini unutmayın. Hata ayıklama, YSA'nın aktivasyon değerlerini, YSA ağırlıklarının büyüklüğünü kontrol ederek, örnek içi ve örnek dışı hatayı ve optimize edicinin yakınsamasını vb.
Gözleyerek yapılabilir

3

Standart bir sinir ağı için gizli katmanların sayısının arttırılması, çoğu durumda sonuçları iyileştirmeyecektir. Gizli katmanın boyutunu değiştirmek olacaktır.

Bu gerçek (gizli katmanların sayısının çok az olduğu) tarihsel olarak kaydedildi ve derin öğrenme alanının arkasındaki motivasyon. Derin öğrenme, örneğin, farklı katmanları eğitirken özellik alt kümelerini izole ederek çok katmanlı sinir ağlarını eğitmenin akıllıca yoludur.

YouTube'da bu konuyla ilgili iyi tanıtım videosu


2
Derin öğrenme gizli katmanların sayısını artırmakla ilgilidir . Aksi takdirde şişman öğrenme denir :)
Emre

@Emre kesinlikle bunu kastediyordu. Benim noktalama işaretlerimi lanetle!
eric chiang
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.