Alternatif Python OSS untuk Matlab Neural Network Toolbox. Adakah perbandingan antar?

16

Saya ingin mandiri dari perangkat lunak komersial untuk karya ilmiah saya. Saya menemukan ketergantungan suatu paket komersial seperti Matlab dan kotak alatnya tidak memuaskan, karena saya tidak tahu apakah saya akan memiliki akses ke Matlab di masa depan, dan karena saya tidak suka bahasanya. Karena itu, saya mencari alternatif.

Untungnya, saya cukup lancar berbahasa Python (dan saya suka bahasa ini), dan dengan NumPy, SciPy, Matplotlib, Basemap, dan rutinitas membaca dan menulis NetCDF, ini memenuhi sebagian besar kebutuhan saya. Kebanyakan - saya masih kembali ke Matlab ketika saya perlu melatih pengambilan satelit menggunakan feed-forward multi-layer perceptrons, misalnya menggunakan teologi Jaringan Syaraf Tiruan.

Seperti yang tidak biasa dengan perangkat lunak open-source, ada lebih dari satu paket yang melakukan jaringan saraf. Jauh lebih dari satu:

  • Beberapa waktu yang lalu saya mencoba PyBrain , "pisau tentara swiss untuk jaringan saraf", tetapi saya tidak berhasil mendapatkan hasil yang memuaskan dalam waktu singkat (baik waktu pengembangan maupun waktu berjalan). Mungkin saya tidak berusaha cukup keras, atau mungkin tidak benar-benar diarahkan pada kebutuhan saya yang sebenarnya.

  • Baru saja saya menemukan bahwa ada paket yang disebut neurolab , yang terlihat menjanjikan: Perpustakaan Jaringan Neural sederhana dan kuat untuk Python , dengan API seperti Neural Network Toolbox (NNT) dari MATLAB .

  • Ada FFnet , solusi pelatihan jaringan saraf umpan maju untuk python yang cepat dan mudah digunakan

  • Ada simplenn

  • Ada Peach , perpustakaan untuk kecerdasan komputasi dan pembelajaran mesin

  • Ada Python binding ke FANN , pustaka Fast Neural Network library, yang dideskripsikan sebagai standar de facto di posting StackOverflow ini .

  • Mungkin ada yang lain.

Adakah yang pernah melakukan upaya antar opsi yang berbeda, berdasarkan kriteria seperti mudah digunakan, kecepatan, dll? Kasus penggunaan saya sendiri adalah pengambilan satelit, misalnya pemasangan fungsi yang sangat non-linear dari banyak variabel. Saya sangat pengguna jaring saraf; Saya tidak tertarik meneliti pekerjaan batin mereka.

Pertanyaan tentang Stats.SE ini terkait, tetapi dengan fokus yang berbeda.

gerrit
sumber
Pertanyaan Anda sangat menarik, tetapi saya pikir Anda terlalu banyak bertanya. Evaluasi komprehensif dari berbagai perangkat lunak jaringan saraf pada python terlalu luas untuk dijawab di forum ini. Mungkin bermanfaat untuk mempersempit fokus pertanyaan Anda ke kriteria dan perangkat lunak tertentu yang menarik bagi Anda.
Paul
Selain itu, kami tidak dapat memigrasikan pertanyaan Anda karena sudah terlalu lama . Jika Anda merasa bahwa situs SE lain lebih cocok untuk pertanyaan Anda, Anda harus menghapus yang ini dan memposting ulang di situs lain. Sekalipun Anda memposting ulang pertanyaan, saya tetap merasa bahwa sebaiknya Anda mempersempit ruang lingkup pertanyaan Anda untuk meningkatkan kemungkinan mendapatkan jawaban yang baik.
Paul
Bukan Python, tetapi saat ini saya menggunakan caffe untuk jaringan saraf. Sebagian besar untuk jaringan saraf convolutional, tetapi bahkan lebih mudah untuk mengatur NN konvensional.
Siyuan Ren
Cross-situs duplikat: datascience.stackexchange.com/q/694/6
Gerrit

Jawaban:

1

Apakah Anda melihat scikit-belajar ? Ini benar-benar bukan domain saya, tetapi saya telah mendengar beberapa pengalaman pengguna yang sangat positif ...

GertVdE
sumber
Akan jatuh dalam kategori Mungkin ada yang lain - menambahkan perpustakaan lain ke daftar tidak menyelesaikan masalah saya, melainkan memperluas ruang lingkup antar saya berharap untuk melihat ...
gerrit
Nah, dari apa yang saya dengar dan baca, keuntungan dari scikit-belajar adalah bahwa itu adalah kerangka kerja yang berisi banyak metode. Mungkin itu akan memudahkan pekerjaan Anda ketika Anda melakukan perbandingan metode yang diterapkan untuk masalah Anda.
GertVdE
3
scikit-learn tidak mengandung metode jaringan saraf, model jaringan saraf tiruan dihapus pada 0,12, dan mereka merekomendasikan pada saat itu bahwa pengguna yang membutuhkan fungsi itu beralih ke PyBrain.
Aron Ahmadia
1

Apakah Anda sudah melihat Theano ? sepertinya cukup kuat .

Alex
sumber
1
Memang, Theano sangat kuat. Tapi itu kompiler (atau kerangka kerja) yang memungkinkan seseorang untuk menulis kode python yang kemudian dikompilasi dan dieksekusi pada GPU. Theano dapat digunakan untuk mengimplementasikan NNs, tetapi itu bukan perpustakaan ML.
Artem Sobolev
1

Saya juga berasal dari menggunakan neural netowrks di Matlab ke Python. Salah satu perpustakaan paling kuat di Python adalah "Pylearn2" http://deeplearning.net/software/pylearn2/ . Saat ini, ini adalah perpustakaan paling aktif dan memiliki banyak fitur berbeda untuk bereksperimen. Ini didasarkan pada Theano dan karena itu cepat dan dapat dijalankan pada GPU. Sayangnya, ini juga kerugiannya: API terus berubah, dan memiliki kurva belajar yang tinggi. Anda harus mengkonfigurasi jaringan saraf Anda menggunakan file YAML juga. Saya lebih sukses menggunakan PyBrain untuk membuat jaringan saraf dasar. Saya membutuhkan solusi untuk masalah regresi, di mana saya harus memperkirakan beban pada pembangkit listrik berdasarkan faktor cuaca. Panduannya di sini: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ memberi saya 90% dari solusi yang saya butuhkan.

Satu masalah yang saya temukan dengan PyBrain adalah kecepatan. Ini ditulis secara asli dengan Python. Saya telah menemukan pelatihan jaringan saraf ~ 50x lebih lambat dari Matlab. Beberapa orang lain telah menemukan keberhasilan dengan mempercepat proses pelatihan PyBrain dengan perpustakaan arac.

Diarmaid O Cualain
sumber