С++ машинное обучение

Кажется, я не могу найти основанный на С++ интерфейс ML/AI, который реализует широкий спектр алгоритмов нейронной сети. Я использовал Encog для этих целей при работе на Java, но я не вижу ничего подобного, функционально-функционального, в С++, Ближайшим, что я видел, является FANN, но ему не хватает какого-то материала, LMA и отжига, например.

EDIT: Лучшая альтернатива, которую я нашел, - Shark, но, как я уже сказал, она все еще отсутствует и имеет только более частое используемые функции, отсутствие LMA, отжиг или PSO или что-либо из этого уровня.

Ответ 1

Итак, после нескольких дней поиска и выключения я думаю, что могу с уверенностью сказать, что такой вещи не существует. Ни одна из существующих библиотек не предоставляет ничего, даже приближенного к уровню сложности Encog, и, поскольку одной из главных причин, по которой я хотел этого в C++, был тот факт, что мне как бы нужна интеграция с QT, я полагаю, что я просто в конечном итоге используя Encog и Jambi.

Во всяком случае, для тех, кто наткнулся на это несколько позже в/из Google, есть в основном три фреймворка/библиотеки, которые предлагают довольно разумные функции, и их должно быть действительно достаточно, если вы не хотите LMA, PSO, отжига или чего-то еще экзотические вещи:

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

Ответ 2

В репозитории mloss имеется ряд основанных на С++ систем обучения машинам с открытым исходным кодом. Лично я считаю dlib весьма полезным.

Ответ 4

Это лучшее, что я когда-либо видел для Neural Networks: EBLearn

Ответ 5

Хотя OpenCV в основном используется для компьютерного видения, его библиотека машина для обучения (мл) содержит классы, которые обрабатывают деревья решений, классификатор Байеса, многоуровневый персептрон, усиление и т.д.