Інструмент з відкритим кодом для домашнього навчання та експериментального досвіду?


9

Я хотів би зробити кілька експериментів з еволюцією нейронної сітки (NEAT). Я написав кілька кодів GA та нейронної сітки в C ++ ще в 90-х, щоб просто пограти, але підхід "Зроби сам" виявився досить трудомістким, що я врешті-решт відмовився від нього.

З тих пір речі сильно змінилися, і навколо нас є дуже багато приємних бібліотек та інструментів з відкритим кодом для майже будь-якого інтересу. Я переглядав різні бібліотеки з відкритим кодом (наприклад, DEAP), але можу скористатись деякою допомогою, вибравши одну, яка буде добре підходить ...

  • Я витрачав значну частину свого часу на написання коду, щоб візуалізувати, що відбувається (стан нейронної сітки, пристосованість населення) або кінцеві результати (графіки тощо).

    Можливо, це доведеться виконати окремою бібліотекою з відкритим кодом, але підтримка візуалізації - це те, що дозволить мені витратити більше часу на проблему / рішення та менше на деталі реалізації.
  • Я знаю C / C ++, Java, C #, Python, Javascript та декілька інших. Те, що є гарним компромісом між мовою вищого рівня та гарною продуктивністю домашнього обладнання, було б хорошим вибором.

Чи може хтось із досвідом запропонувати хорошу бібліотеку з відкритим кодом або набір інструментів?


Це питання належить до softwarerecs.stackexchange.com . До речі, ваше питання, здається, дуже широке, і тому все-таки його слід закрити.
nbro

@nbro - Дякую, я підозрював, що є краще місце для цього, але не знав про softwarerecs.
Скотт Сміт

Чи можуть ті, хто голосував за це питання, сказати нам чому?
квінтумнія

Відповіді:


3

оскільки це написано в Javascript і не пропонує (поки що) підтримки GPU, це досить повільно. Однак дуже приємно поспілкуватися з гнучкими мережевими архітектурами. Єдина візуалізація, яку вона пропонує зараз, - це карта мережевої архітектури, але графіки можна було легко реалізувати.

https://github.com/wagenaartje/neataptic


2

Що ж, якщо ви вибрали TensorfFlow для роботи, ви отримаєте TensorBoard як частину пакету. Це може бути щось близьке до того, що ви шукаєте.

І за допомогою TensorFlow ви можете кодувати в C ++, Python та ще декількох інших мовах (я думаю, на сьогодні є і прив'язки Ruby та Java, ймовірно, інші).



2

Є також DXNN, яка, як ви описали, нейроеволюційна система, це написано в Ерланг. https://github.com/CorticalComputer/DXNN2

Я зробив деяку роботу над цим, щоб зробити його модульним, тому ви використовуєте його як бібліотеку і тримаєте код / ​​додаток ізольованим.

Ось приклад коду , який завантажує DXNN як бібліотеку. він також генерує готові файли даних gnuplot для візуалізації.


2

Fann ( http://leenissen.dk/fann/wp/ ) - це безкоштовна бібліотека нейронних мереж з відкритим кодом.

Особливості FANN:

  • Багатошарова бібліотека штучних нейронних мереж на С
  • Навчальна робота із зворотним розмноженням (RPROP, Quickprop, Batch, Incremental)
  • Розвиваюче навчання топології, яке динамічно будує та тренує ANN (Cascade2)
  • Простий у використанні (створити, навчити та запустити ANN за допомогою лише трьох функцій)
  • Швидке (до 150 разів швидше виконання, ніж інші бібліотеки)
  • Універсальний (можливе регулювання багатьох параметрів та функцій на ходу)
  • Добре задокументована (легка для читання стаття про вступ, ретельний довідник та посібник з університету на 50+ сторінках, що описує питання щодо впровадження тощо)
  • Крос-платформа (сценарій налаштування для Linux та unix, файли dll для Windows, файли проектів для компіляторів MSVC ++ та Borland також повідомляються)
  • Впроваджено кілька різних функцій активації (включаючи ступінчасті лінійні функції для цієї додаткової бітової швидкості)
  • Легко зберігати та завантажувати цілі ANN
  • Кілька простих у використанні прикладів
  • Можна використовувати як числа з плаваючою точкою, так і фіксовану точку (фактично доступні як плаваючі, подвійні, так і int)
  • Кеш оптимізований (для цього додатковий біт швидкості)
  • З відкритим кодом, але все ще може використовуватися в комерційних програмах (ліцензовано за LGPL)
  • Рамка для легкого поводження з наборами даних про навчання
  • Графічні інтерфейси
  • Мовні прив’язки до великої кількості різних мов програмування
  • Широко використовується (приблизно 100 завантажень на день)

2

Для генетичних алгоритмів я написав GeneticSharp .

Мультиплатформна бібліотека генетичних алгоритмів для .NET Core та .NET Framework. Бібліотека має кілька реалізацій операторів GA, таких як: вибір, кросовер, мутація, повторне введення та припинення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.