Khi tôi bắt đầu với mạng lưới thần kinh nhân tạo (NN), tôi nghĩ rằng tôi phải chiến đấu với tình trạng quá mức là vấn đề chính. Nhưng trong thực tế, tôi thậm chí không thể khiến NN của mình vượt qua rào cản tỷ lệ lỗi 20%. Tôi thậm chí không thể đánh bại số điểm của mình trên rừng ngẫu nhiên!
Tôi đang tìm kiếm một số lời khuyên rất chung chung hoặc không chung chung về những gì nên làm để làm cho NN bắt đầu nắm bắt xu hướng trong dữ liệu.
Để thực hiện NN, tôi sử dụng Bộ mã hóa tự động xếp chồng Theano với mã từ hướng dẫn hoạt động tuyệt vời (tỷ lệ lỗi dưới 5%) để phân loại bộ dữ liệu MNIST. Nó là một perceptionron đa lớp, với lớp softmax ở trên cùng với mỗi ẩn sau đó được đào tạo trước như là bộ mã hóa tự động (mô tả đầy đủ tại hướng dẫn , chương 8). Có ~ 50 tính năng đầu vào và ~ 10 lớp đầu ra. NN có tế bào thần kinh sigmoid và tất cả dữ liệu được chuẩn hóa thành [0,1]. Tôi đã thử rất nhiều cấu hình khác nhau: số lớp ẩn và tế bào thần kinh trong đó (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15, v.v.), học tập và đào tạo trước khác nhau tỷ lệ, vv
Và điều tốt nhất tôi có thể nhận được là tỷ lệ lỗi 20% trên bộ xác nhận và tỷ lệ lỗi 40% trên bộ kiểm tra.
Mặt khác, khi tôi cố gắng sử dụng Rừng ngẫu nhiên (từ scikit-learn), tôi dễ dàng nhận được tỷ lệ lỗi 12% trên bộ xác thực và 25% (!) Trên bộ kiểm tra.
Làm thế nào có thể là NN sâu sắc của tôi với đào tạo trước hành xử rất tệ? Tôi nên thử cái gì?