Yapay sinir ağları (NN) ile başladığımda, asıl sorun olarak fazla donmakla savaşmam gerektiğini düşündüm. Ancak uygulamada NN'imin% 20 hata oranı engelini aşmasını bile sağlayamıyorum. Rasgele ormandaki puanımı bile geçemiyorum!
NN'in verilerdeki trendleri yakalamaya başlaması için ne yapılması gerektiği konusunda çok genel veya çok genel bir tavsiye arıyorum.
NN uygulanması için ben Theano Yığın Oto Encoder kullanmak öğreticisindeki kodu MNIST veri kümesi sınıflandırmak için büyük (% 5'ten az hata oranı) çalışır. Her biri daha sonra otomatik kodlayıcı olarak önceden eğitilmiş olan softmax katmanı üstte olan çok katmanlı bir algılayıcıdır ( öğretici , bölüm 8'de tamamen açıklanmıştır ). ~ 50 giriş özelliği ve ~ 10 çıkış sınıfı vardır. NN sigmoid nöronlara sahiptir ve tüm veriler [0,1] olarak normalleştirilmiştir. Birçok farklı konfigürasyon denedim: İçlerinde gizli katmanların ve nöronların sayısı (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, vb.), Farklı öğrenme ve tren öncesi fiyatlar, vs.
Ve alabileceğim en iyi şey validasyon setinde% 20 hata oranı ve test setinde% 40 hata oranıdır.
Öte yandan, Random Forest kullanmaya çalıştığımda (scikit-learn'dan) doğrulama setinde% 12 ve test setinde% 25 (!) Kolayca hata alıyorum.
Eğitim öncesi derin NN'imin bu kadar kötü davranması nasıl olabilir? Ne denemeliyim?