Инструмент с открытым исходным кодом для обучения / экспериментов с домашним ИИ?

9

Я хотел бы поэкспериментировать с эволюцией нейронной сети (NEAT). Я написал некоторый код GA и нейронной сети на C ++ еще в 90-х, чтобы поиграть, но подход «сделай сам» оказался достаточно трудоемким, и я в итоге его отбросил.

С тех пор многое изменилось, и есть много очень хороших библиотек и инструментов с открытым исходным кодом для практически любого интереса. Я гуглил различные библиотеки с открытым исходным кодом (например, DEAP), но я мог бы использовать некоторую помощь, выбирая ту, которая подойдет ...

  • Я потратил большую часть своего времени на написание кода для визуализации происходящего (состояние нейронной сети, пригодность населения) или конечных результатов (графики и т. Д.).

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

Может кто-то с опытом предложить хорошую библиотеку с открытым исходным кодом или набор инструментов?

Скотт Смит
источник
Этот вопрос принадлежит softwarerecs.stackexchange.com . Кстати, мне кажется, что ваш вопрос кажется очень широким и, следовательно, должен быть закрыт.
nbro
@nbro - Спасибо, я подозревал, что для этого найдется лучшее место, но не знал о программном обеспечении.
Скотт Смит
Могут ли те, кто проголосовал за этот вопрос, сказать нам, почему?
четверть

Ответы:

3

так как это написано в Javascript и не (пока) не предлагает поддержку GPU, это довольно медленно. Однако очень приятно возиться с гибкими сетевыми архитектурами. Единственная визуализация, которую он предлагает прямо сейчас, - это карта сетевой архитектуры, но графики могут быть легко реализованы.

https://github.com/wagenaartje/neataptic

Томас В.
источник
2

Что ж, если вы выбираете TensorfFlow для работы, вы получаете TensorBoard как часть пакета. Это может быть что-то близкое к тому, что вы ищете.

А с TensorFlow вы можете кодировать на C ++, Python и некоторых других языках (я думаю, что есть и привязки Ruby и Java, возможно, уже другие).

Mindcrime
источник
2

Существует также DXNN, который, как вы описали, является нейроэволюционной системой, написанной на Erlang. https://github.com/CorticalComputer/DXNN2

Я поработал над этим, чтобы сделать его модульным, чтобы вы использовали его как библиотеку и держали свой код / ​​приложение изолированным.

Вот пример кода , который загружает DXNN в виде библиотеки. он также генерирует готовые файлы данных gnuplot для визуализации.

Aus
источник
2

Fann ( http://leenissen.dk/fann/wp/ ) - бесплатная библиотека нейронных сетей с открытым исходным кодом.

Особенности FANN:

  • Библиотека многослойных искусственных нейронных сетей на C
  • Обучение обратному распространению (RPROP, Quickprop, Batch, Incremental)
  • Развитие обучения топологии, которое динамически строит и обучает ANN (Cascade2)
  • Простота в использовании (создание, обучение и запуск ANN всего за три функциональных вызова)
  • Быстро (до 150 раз быстрее, чем другие библиотеки)
  • Универсальный (можно настраивать множество параметров и функций на лету)
  • Хорошо документировано (легко читаемая вводная статья, подробное справочное руководство и 50-страничный университетский отчет с описанием вопросов реализации и т. Д.)
  • Кроссплатформенность (также сообщается, что скрипт настройки для linux и unix, файлы dll для windows, файлы проекта для компиляторов MSVC ++ и Borland)
  • Реализовано несколько различных функций активации (включая пошаговые линейные функции для этого дополнительного бита скорости)
  • Легко сохранять и загружать целые ИНС
  • Несколько простых в использовании примеров
  • Может использовать как числа с плавающей точкой, так и числа с фиксированной точкой (на самом деле доступны как float, double, так и int)
  • Кэш оптимизирован (для этой дополнительной скорости)
  • Открытый исходный код, но все еще может использоваться в коммерческих приложениях (по лицензии LGPL)
  • Основа для удобной обработки наборов обучающих данных
  • Графические интерфейсы
  • Привязки к большому количеству разных языков программирования
  • Широко используется (около 100 загрузок в день)
track3r
источник
2

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

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

Giacomelli
источник