Alat open-source untuk pembelajaran / eksperimen AI rumahan?


9

Saya ingin melakukan beberapa percobaan dengan evolusi neural net (NEAT). Saya menulis beberapa GA dan kode neural di C ++ kembali di tahun 90-an hanya untuk bermain-main, tetapi pendekatan DIY terbukti cukup padat karya sehingga saya akhirnya menjatuhkannya.

Banyak hal telah berubah sejak saat itu, dan ada banyak perpustakaan open source yang sangat bagus dan alat-alat untuk minat apa pun yang mungkin dimiliki seseorang. Saya sudah Googled pustaka sumber terbuka yang berbeda (mis. DEAP), tapi saya bisa menggunakan bantuan memilih satu yang cocok ...

  • Saya menghabiskan banyak waktu saya menulis kode untuk memvisualisasikan apa yang sedang terjadi (keadaan jaringan saraf, kebugaran populasi) atau hasil akhir (grafik, dll).

    Mungkin ini harus dipenuhi oleh perpustakaan open-source yang terpisah, tetapi dukungan visualisasi akan menjadi sesuatu yang akan memungkinkan saya untuk menghabiskan lebih banyak waktu pada masalah / solusi dan kurang pada detail implementasi.
  • Saya tahu C / C ++, Java, C #, Python, Javascript dan beberapa lainnya. Sesuatu yang merupakan pertukaran yang bagus antara bahasa tingkat yang lebih tinggi dan kinerja yang baik pada perangkat keras rumahan akan menjadi pilihan yang baik.

Dapatkah seseorang dengan pengalaman menyarankan perpustakaan sumber terbuka yang baik atau seperangkat alat?


Pertanyaan ini milik softwarerecs.stackexchange.com . Btw, bagi saya, pertanyaan Anda tampaknya sangat luas dan karenanya harus ditutup.
nbro

@nbro - Terima kasih, saya curiga ada tempat yang lebih baik untuk ini, tetapi tidak tahu tentang perangkat lunak.
Scott Smith

Bisakah mereka yang menjawab pertanyaan ini memberi tahu kami alasannya?
quintumnia

Jawaban:


3

karena ini ditulis dalam Javascript dan tidak (belum) menawarkan dukungan GPU, ini cukup lambat. Namun, sangat menyenangkan untuk bermain-main dengan arsitektur jaringan yang fleksibel. Satu-satunya visualisasi yang ditawarkannya saat ini adalah peta arsitektur jaringan, tetapi grafik dapat dengan mudah diimplementasikan.

https://github.com/wagenaartje/neataptic


2

Nah, jika Anda memilih TensorfFlow bekerja dengan, Anda mendapatkan TensorBoard sebagai bagian dari paket. Itu mungkin sesuatu yang dekat dengan apa yang Anda cari.

Dan dengan TensorFlow, Anda dapat mengkodekan dalam C ++, Python, dan beberapa bahasa lainnya (saya pikir ada juga binding Ruby dan Java, mungkin yang lain sekarang).



2

Ada juga DXNN, yang seperti yang Anda jelaskan, sistem neuroevolutionary, ditulis dalam bahasa Erlang. https://github.com/CorticalComputer/DXNN2

Saya melakukan beberapa pekerjaan untuk membuatnya modular, jadi Anda menggunakannya sebagai perpustakaan dan menjaga kode / aplikasi Anda tetap terisolasi.

Berikut adalah contoh kode , yang mengunduh DXNN sebagai perpustakaan. itu juga menghasilkan file data siap gnuplot untuk visualisasi.


2

Fann ( http://leenissen.dk/fann/wp/ ) adalah perpustakaan jaringan saraf open source gratis.

Fitur FANN:

  • Perpustakaan Jaringan Syaraf Tiruan Multilayer di C
  • Pelatihan backpropagation (RPROP, Quickprop, Batch, Incremental)
  • Pelatihan topologi yang berkembang yang secara dinamis membangun dan melatih JST (Cascade2)
  • Mudah digunakan (membuat, melatih, dan menjalankan ANN hanya dengan tiga panggilan fungsi)
  • Cepat (eksekusi 150 kali lebih cepat dari perpustakaan lain)
  • Serba Guna (dimungkinkan untuk menyesuaikan banyak parameter dan fitur secara langsung)
  • Didokumentasikan dengan baik (Artikel pendahuluan yang mudah dibaca, manual referensi yang menyeluruh, dan laporan universitas lebih dari 50 halaman yang menjelaskan pertimbangan implementasi, dll.)
  • Cross-platform (konfigurasikan skrip untuk linux dan unix, file dll untuk windows, file proyek untuk kompiler MSVC ++ dan Borland juga dilaporkan berfungsi)
  • Beberapa fungsi aktivasi berbeda diimplementasikan (termasuk fungsi linear bertahap untuk kecepatan ekstra itu)
  • Mudah untuk menyimpan dan memuat seluruh JST
  • Beberapa contoh mudah digunakan
  • Dapat menggunakan angka floating point dan fixed point (sebenarnya float, double dan int tersedia)
  • Cache dioptimalkan (untuk kecepatan ekstra)
  • Sumber terbuka, tetapi masih dapat digunakan dalam aplikasi komersial (berlisensi di bawah LGPL)
  • Kerangka kerja untuk penanganan mudah set data pelatihan
  • Antarmuka Grafis
  • Ikatan Bahasa ke sejumlah besar bahasa pemrograman yang berbeda
  • Banyak digunakan (sekitar 100 unduhan sehari)

2

Untuk algoritma genetika, saya telah menulis GeneticSharp .

Pustaka algoritma genetika multi-platform untuk .NET Core dan .NET Framework. Perpustakaan memiliki beberapa implementasi dari operator GA, seperti: seleksi, crossover, mutasi, masukkan kembali dan penghentian.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.