Làm thế nào để thực hiện mô hình mạng nơ-ron hiệu quả?


13

Tỷ lệ số lượng quan sát và số lượng biến là gì? Làm thế nào để phát hiện quá mức trong mô hình mạng thần kinh và các cách để tránh quá mức là gì? Nếu tôi muốn thực hiện phân loại với Mạng thần kinh, các lớp có tần số bằng nhau không? Hãy giúp tôi ra.


1
Bạn có thực sự cần NN? Phương pháp này khá bị coi là lỗi thời (một phần vì rất khó để trả lời câu hỏi của bạn).

1
@mbq: có thể đây là một câu hỏi riêng biệt, nhưng bạn có thể mở rộng trên tuyên bố của mình rằng Mạng lưới thần kinh bị coi là lỗi thời không? (và bởi ai?)
naught101

1
@ naught101 Đây là một nhận xét từ năm 2010 ... Ngày nay, chúng ta buồn bã có sự phục hưng của sự điên rồ này vì vậy chúng ta sẽ phải chờ vài năm để các NN sẽ trở nên lỗi thời một lần nữa (;

1
@mbq: điều đó không trả lời câu hỏi của tôi. Nhưng có lẽ điều này không: stackoverflow.com/questions/683124/neural-networks-obsolete
naught101

Câu trả lời:


25

Lời khuyên tôi sẽ đưa ra như sau:

  1. Làm cạn kiệt các khả năng của mô hình tuyến tính (ví dụ hồi quy logistic) trước khi chuyển sang mạng lưới thần kinh, đặc biệt nếu bạn có nhiều tính năng và không có quá nhiều quan sát. Đối với nhiều vấn đề, Mạng nơ-ron không thực hiện các phân loại tuyến tính đơn giản và cách duy nhất để tìm hiểu xem vấn đề của bạn có thuộc loại này hay không là thử và xem.

  2. Điều tra các phương thức kernel (ví dụ: Support Vector Machines (SVM), hồi quy logistic kernel), mô hình quy trình Gaussian trước tiên. Trong cả hai trường hợp, sự phù hợp quá mức được kiểm soát một cách hiệu quả bằng cách điều chỉnh một số lượng nhỏ các tham số siêu. Đối với các phương thức kernel, điều này thường được thực hiện bằng xác thực chéo, đối với các mô hình quy trình Gaussian, điều này được thực hiện bằng cách tối đa hóa khả năng cận biên (còn được gọi là "bằng chứng" Bayes cho mô hình). Tôi đã nhận thấy việc có được một mô hình hợp lý bằng các phương pháp này dễ dàng hơn nhiều so với các mạng thần kinh, vì các phương tiện để tránh sự phù hợp quá mức rất đơn giản.

  3. Nếu bạn thực sự muốn sử dụng mạng thần kinh, hãy bắt đầu với mạng chức năng cơ sở xuyên tâm (thường xuyên), thay vì mạng loại đa lớp Perceptron (MLP).

  4. Nếu bạn sử dụng MLP, thì hãy sử dụng chính quy. Nếu bạn làm như vậy, nó sẽ ít nhạy cảm hơn với các lựa chọn về kiến ​​trúc, chẳng hạn như tối ưu hóa số lượng các đơn vị ẩn. Thay vào đó, tất cả những gì bạn phải làm là chọn một giá trị tốt cho tham số chính quy. "Khung bằng chứng" của MacKay cung cấp một phương pháp tốt để thiết lập tham số chính quy. Nếu bạn sử dụng chính quy, thì số lượng quan sát và số lượng biến trở thành một vấn đề ít hơn nhiều.

Để phát hiện sự phù hợp quá mức, chỉ cần thực hiện xác nhận chéo để kiểm tra hiệu suất tổng quát hóa.

Đối với các lớp có tần số bằng nhau, điều cần nhớ là nếu bạn huấn luyện một mô hình với tập huấn luyện cân bằng, nhưng các lớp không được cân bằng trong dữ liệu vận hành, thì mô hình rất có khả năng dự đoán trước lớp thiểu số. Nếu bạn sử dụng một trình phân loại xác suất như hồi quy logistic hoặc mạng nơ ron, bạn luôn có thể sửa các xác suất ước tính để giải thích cho điều đó sau khi đào tạo. Nếu tập dữ liệu của bạn rất mất cân bằng, tôi sẽ khuyên bạn nên phân biệt trọng số của các mẫu từ các lớp dương và âm, với các yếu tố trọng số được chọn bằng cách xác thực chéo.

Tuy nhiên, khi các lớp rất mất cân bằng, thông thường trường hợp sai số âm tính giả và dương tính giả có chi phí chênh lệch (ví dụ trong xét nghiệm sàng lọc y tế, âm tính giả tồi tệ hơn nhiều so với dương tính giả). Vì vậy, thường thì tất cả những gì bạn cần làm là bao gồm các chi phí phân loại sai vào hàm lỗi được sử dụng để huấn luyện mạng.

Nếu bạn là người dùng MATLAB (như tôi), tôi hoàn toàn có thể giới thiệu phần mềm NETLAB (Ian Nabney và Chris Bishop) hoặc phần mềm đi kèm với cuốn sách Gaussian Process for Machine Learning của Rasmussen và Williams. Tôi có thể giới thiệu mạnh mẽ cuốn sách "Mạng lưới thần kinh để nhận dạng mẫu" của Chris Bishop cho bất kỳ ai bắt đầu trong mạng lưới thần kinh. Đó là một cuốn sách tuyệt vời, và bao gồm các tài liệu rất rõ ràng và mức độ toán học tối thiểu cần thiết để thực sự hiểu những gì bạn đang làm, và hầu hết được thực hiện trong phần mềm NETLAB (cũng có thể chạy dưới Octave).

HTH

PS Cách tốt nhất để mô hình hóa với mạng lưới thần kinh có lẽ là sử dụng phương pháp Bayes dựa trên Hybrid Monte Carlo (HMC), được phát triển bởi Radford Neal. Trong các vấn đề chung bắt đầu trong mô hình hóa khi bạn cố gắng và tối ưu hóa một số tham số và bạn kết thúc quá phù hợp. Thay vào đó, giải pháp tốt nhất là không bao giờ tối ưu hóa bất cứ điều gì và thay thế (tích hợp) trên các tham số. Đáng buồn là sự tích hợp này không thể được thực hiện một cách phân tích, vì vậy bạn cần sử dụng các phương pháp lấy mẫu dựa trên thay thế. Tuy nhiên, đây là (a) đắt tiền về mặt tính toán và (b) một chút "nghệ thuật đen" và đòi hỏi sự hiểu biết và kinh nghiệm sâu sắc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.