Các máy Boltzmann bị hạn chế so với các mạng thần kinh đa lớp


22

Tôi đã muốn thử nghiệm một mạng lưới thần kinh cho một vấn đề phân loại mà tôi đang phải đối mặt. Tôi chạy vào các bài báo nói về RBM. Nhưng từ những gì tôi có thể hiểu, chúng không khác gì việc có một mạng lưới thần kinh đa lớp. Nó thật sự đúng?

Ngoài ra, tôi làm việc với R và tôi không thấy bất kỳ gói đóng hộp nào cho RBM. Tôi đã chạy vào văn học nói về các mạng học sâu, về cơ bản là các RBM xếp chồng lên nhau nhưng không chắc liệu nó có xứng đáng với nỗ lực triển khai chúng trong R. Có ai có bất kỳ gợi ý nào không? Cảm ơn


3
Họ khác với mạng đa lớp đào tạo với backprop. Dưới đây là một số tài nguyên cho tất cả các loại mạng lưới thần kinh: stats.stackexchange.com/a/36257/13669
Stumpy Joe Pete

Câu trả lời:


21

Trước hết, RBM chắc chắn khác với Mạng lưới thần kinh thông thường và khi được sử dụng đúng cách, chúng sẽ đạt được hiệu suất tốt hơn nhiều. Ngoài ra, đào tạo một vài lớp RBM, sau đó sử dụng các trọng số tìm thấy làm điểm khởi đầu cho NN Mulitlayer thường mang lại kết quả tốt hơn so với chỉ sử dụng NN đa lớp.

Con trỏ tốt nhất tôi có thể nghĩ đến là khóa học này trên Coursera, được dạy bởi Geoffrey Hinton, một trong những người chịu trách nhiệm về RBM:

https: // class.coursera.org/neuralnets-2012-001/ class / index

các video về RBM và Denoising Autoencoder là một tài nguyên học tập có giá trị cho bất kỳ ai quan tâm đến chủ đề này.

Đối với việc triển khai trong R, tôi cũng không biết, nhưng nếu bạn muốn thực hiện nó, tốt hơn là không sử dụng R thuần túy (trừ khi dữ liệu của bạn không lớn). Việc đào tạo một RBM mất khá nhiều thời gian và nếu bạn sử dụng R thuần túy thay vì R với C, nó có thể phát triển đáng kể.


1
Tôi có thể nói về các vấn đề hiệu suất của R, vì tôi đã viết một số RBM trong đó. Phần lớn thời gian tính toán được dành cho bội số ma trận, vốn có xu hướng chậm hơn R so với các ngôn ngữ khác (có thể bằng hệ số 3 hoặc 5). Biên dịch lại R cho hệ thống của riêng bạn với BLAS tùy chỉnh (thư viện đại số tuyến tính) có thể giúp ích rất nhiều, vì có thể dịch các phần chậm sang C ++ bằng Rcpp. Viết RBM một lớp thực sự đủ nhanh để có thể viết mã theo bất kỳ ngôn ngữ nào bạn thấy thoải mái nhất trước khi cố gắng tối ưu hóa tốc độ.
David J. Harris

@David J. Harris Bạn đã chia sẻ bất kỳ triển khai nào trong R chưa? Tôi muốn nhìn vào chúng.
Zach

1
@Zach Hiện tại tôi khá bận rộn, nhưng tôi sẽ thấy những gì tôi có thể làm về nguồn cung ứng mở trong tương lai. Bạn cũng có thể gửi email cho tôi theo địa chỉ trong hồ sơ của tôi để nhận bản sao những gì tôi có nếu bạn không phiền khi sắp xếp thông qua một dự án chưa hoàn thành / chưa hoàn thành.
David J. Harris

8

Trong R, bạn có thể sử dụng mạng nơ-ronRSNNS (cung cấp giao diện cho Bộ mô phỏng mạng nơ-ron của Stuttgart ) để phù hợp với các mạng thần kinh đa lớp tiêu chuẩn, nhưng có những khác biệt đối với RBM.

Về việc triển khai mạng lưới thần kinh sâu trong R, tôi nghĩ rằng chiến lược đáng giá duy nhất là giao diện cho các triển khai FOSS hiện có, thường là giải pháp tốt hơn nhiều so với việc tự thực hiện lại mọi thứ (tôi không bao giờ hiểu tại sao mọi người cần phải phát minh lại bánh xe). R cung cấp rất nhiều chức năng để làm điều này và bạn có thể tận dụng việc xử lý dữ liệu của R với tốc độ và các khía cạnh sẵn sàng sử dụng của các giải pháp hiện có. Ví dụ: người ta có thể giao tiếp MDP với các khả năng giao tiếp của Python / R, xem ví dụ, bài viết này .

Chỉnh sửa: Andrew Landgraf từ Ý nghĩa thống kê cung cấp một số Mã R cho RBM .

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.