เมื่อฉันเริ่มต้นด้วยโครงข่ายใยประสาทเทียม (NN) ฉันคิดว่าฉันต้องต่อสู้กับปัญหาล้นใจเป็นปัญหาหลัก แต่ในทางปฏิบัติฉันไม่สามารถทำให้ NN ของฉันผ่านอุปสรรคอัตราความผิดพลาด 20% ได้ ฉันไม่สามารถเอาชนะคะแนนของฉันในป่าสุ่ม!
ฉันกำลังมองหาคำแนะนำที่กว้างมากหรือไม่ควรให้คำแนะนำทั่วไปว่าควรทำอะไรเพื่อให้ NN เริ่มจับภาพแนวโน้มของข้อมูล
สำหรับการใช้งาน NN ฉันใช้ Theano Stacked Auto Encoder กับโค้ดจากบทช่วยสอนที่ใช้งานได้ดี (อัตราความผิดพลาดน้อยกว่า 5%) สำหรับการจำแนกชุดข้อมูล MNIST มันเป็นตรอนหลายชั้นด้วยชั้น softmax ด้านบนกับแต่ละซ่อนภายหลังเป็นก่อนการฝึกอบรมเป็น autoencoder (อธิบายอย่างเต็มที่ในการกวดวิชา , บทที่ 8) มีคุณสมบัติอินพุต ~ 50 และ ~ 10 คลาสเอาต์พุต NN มี sigmoid neurons และข้อมูลทั้งหมดถูกทำให้เป็นมาตรฐาน [0,1] ฉันลองการกำหนดค่าต่าง ๆ มากมาย: จำนวนเลเยอร์และเซลล์ประสาทที่ซ่อนอยู่ในนั้น (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, ฯลฯ ) การเรียนรู้ที่แตกต่างกันและการฝึกอบรมล่วงหน้า อัตราอื่น ๆ
และสิ่งที่ดีที่สุดที่ฉันจะได้รับคืออัตราความผิดพลาด 20% ในชุดการตรวจสอบและ 40% ข้อผิดพลาดในชุดการทดสอบ
ในทางกลับกันเมื่อฉันพยายามใช้ Random Forest (จาก scikit-learn) ฉันจะได้รับอัตราข้อผิดพลาด 12% ในชุดการตรวจสอบและ 25% (!) ในชุดทดสอบ
เป็นไปได้อย่างไรที่ NN ลึกของฉันที่มีการฝึกอบรมล่วงหน้ามีพฤติกรรมไม่ดี? ฉันควรลองทำอะไร