- 19 октября 2014
- Василис Вриниотис
- , 5 комментария
Я рад объявить, что среда машинного обучения Datumbox теперь открыта из GPL 3.0, и вы можете скачать ее код с Github!
Что это за рамки?
Ассоциация Структура машинного обучения Datumbox - это среда с открытым исходным кодом, написанная на Java, которая позволяет быстро разрабатывать модели машинного обучения и статистические приложения. Это код, который в настоящее время запускает Datumbox API. Основное внимание в структуре уделяется включению большого количества алгоритмов машинного обучения и статистических методов, а также возможности обработки небольших и средних наборов данных. Несмотря на то, что структура предназначена для помощи в разработке моделей из различных областей, она также предоставляет инструменты, которые особенно полезны в приложениях для обработки естественного языка и анализа текста.
Какие типы моделей / алгоритмов поддерживаются?
Структура разделена на несколько уровней, таких как машинное обучение, статистика, математика, алгоритмы и утилиты. Каждый из них предоставляет серию занятий, которые используются для обучения моделям машинного обучения. Два наиболее важных уровня - это уровень статистики и уровень машинного обучения.
Слой статистики предоставляет классы для расчета описательной статистики, выполнения различных типов выборки, оценки CDF и PDF-файлов из широко используемых распределений вероятности и выполнения более 35 параметрических и непараметрических тестов. Такие типы классов обычно необходимы при выполнении пояснительного анализа данных, выборки и выбора признаков.
Уровень машинного обучения предоставляет классы, которые можно использовать для решения большого числа задач, включая классификацию, регрессию, кластерный анализ, моделирование тем, уменьшение размерности, выбор характеристик, ансамблевое обучение и системы рекомендаций. Вот некоторые из поддерживаемых алгоритмов: LDA, Макс. Энтропия, Наивный Байес, SVM, Агрегирование начальной загрузки, Adaboost, Kmeans, Иерархическая кластеризация, Модели процессов Дирихле, регрессия Softmax, Порядковая регрессия, Линейная регрессия, Ступенчатая регрессия, PCA и другие.
Datumbox Framework против Mahout против Scikit-Learn
И Mahout, и Scikit-Learn - отличные проекты, и у них обоих совершенно разные цели. Mahout поддерживает только очень ограниченное количество алгоритмов, которые можно распараллелить, и, таким образом, использует платформу Map-Reduce Hadoop для обработки больших данных. С другой стороны, Scikit-Learn поддерживает большое количество алгоритмов, но не может обрабатывать огромное количество данных. Более того, он разработан на Python, который является отличным языком для прототипирования и научных вычислений, но не является моим любимым языком для разработки программного обеспечения.
Datumbox Framework находится в центре двух решений. Он пытается поддерживать большое количество алгоритмов и написан на Java. Это означает, что он может быть легче встроен в производственный код, его легче настроить, чтобы уменьшить потребление памяти, и его можно использовать в системах реального времени. Наконец, хотя в настоящее время Datumbox Framework способен обрабатывать наборы данных среднего размера, в мои планы входит расширение его для обработки наборов данных большого размера.
Насколько это стабильно?
Ранние версии фреймворка (до 0.3.x) были разработаны в августе и сентябре 2013 года и были написаны на PHP (да!). В течение мая и июня 2014 года (версии 0.4.x) среда была переписана на Java и дополнена дополнительными функциями. Обе ветви были тщательно протестированы в коммерческих приложениях, включая Datumbox API. Текущая версия - 0.5.0, и она кажется достаточно зрелой, чтобы быть выпущенной в качестве первой общедоступной альфа-версии фреймворка. Сказав это, важно отметить, что некоторые функциональные возможности платформы проверены более тщательно, чем другие. Более того, поскольку эта версия является альфа-версией, вы должны ожидать радикальных изменений в будущих версиях.
Почему я написал это и почему я с открытым исходным кодом это?
Мое участие в Машинном обучении и НЛП началось в 2009 году, когда я стал соучредителем WebSEOAnalytics.com. С тех пор я занимаюсь разработкой реализаций различных алгоритмов машинного обучения для различных проектов и приложений. К сожалению, большинство оригинальных реализаций были очень специфичными для проблемы, и их вряд ли можно было использовать в любой другой проблеме. В августе 2013 года я решил запустить Datumbox в качестве личного проекта и разработать структуру, которая предоставляет инструменты для разработки моделей машинного обучения, ориентированных на области НЛП и текстовой классификации. Моя цель состояла в том, чтобы создать структуру, которая в будущем будет многократно использоваться для быстрой разработки моделей машинного обучения, включения ее в проекты, которые требуют компонентов машинного обучения или предлагают их как услугу (Machine Learning as a Service).
И вот я здесь, несколько строк кода позже, открываю исходный код проекта. Почему? Честный ответ заключается в том, что на данный момент я не планирую проходить путь «давайте создадим новый стартап». В то же время я чувствовал, что хранить код на моем жестком диске на случай, если он понадобится мне в будущем, не имеет смысла. Поэтому единственной логичной вещью было сделать это с открытым исходным кодом. 🙂
Документация?
Если вы прочитали два предыдущих абзаца, вы, вероятно, заметили это. Поскольку фреймворк не разрабатывался, имея в виду, что я поделюсь им с другими, документация плохая / отсутствует. Большинство классов и общедоступных методов не прокомментированы должным образом, и нет документа, описывающего архитектуру кода. К счастью, все имена классов говорят сами за себя, и фреймворк предоставляет тесты JUnit для каждого общедоступного метода и алгоритма, и их можно использовать в качестве примеров того, как использовать код. Я надеюсь, что с помощью сообщества мы создадим надлежащую документацию, поэтому я рассчитываю на вас!
Текущие ограничения и будущее развитие
Как и в любом программном обеспечении (и особенно в проектах с открытым исходным кодом в альфа-версии), Datumbox Machine Learning Framework имеет свои уникальные и привлекательные ограничения. Давайте копаться в них:
- Документация: Как упоминалось ранее, документация плохая.
- Нет многопоточности: К сожалению, фреймворк в настоящее время не поддерживает многопоточность. Конечно, мы должны отметить, что не все алгоритмы машинного обучения могут быть распараллелены.
- Примеры кода: Поскольку фреймворк только что был опубликован, вы не можете найти в Интернете никаких примеров кода, кроме тех, которые предоставляются фреймворком в форме тестов JUnit.
- Структура кода: Создание надежной архитектуры для любого крупного проекта всегда является сложной задачей, не говоря уже о том, что вам приходится иметь дело с алгоритмами машинного обучения, которые значительно различаются (контролируемое обучение, неконтролируемое обучение, алгоритмы уменьшения размерности и т. Д.).
- Постоянство модели и большой сбор данных: В настоящее время модели можно обучать и хранить либо в файлах на диске, либо в базах данных MongoDB. Чтобы иметь возможность обрабатывать большие объемы данных, необходимо изучить другие решения. Например MapDB кажется хорошим кандидатом для хранения данных и параметров во время обучения. Кроме того, важно удалить любые 3rd партийные библиотеки, которые в настоящее время обрабатывают постоянство моделей и разрабатывают лучшее сухое и модульное решение.
- Новые алгоритмы /тесты / модели: Есть так много замечательных методов, которые в настоящее время не поддерживаются (особенно для анализа временных рядов).
К сожалению, все вышеперечисленное - это слишком много работы и так мало времени. Поэтому, если вам интересен проект, сделайте шаг вперед и помогите мне с любым из вышеперечисленных. Более того, я хотел бы услышать мнение людей, которые имеют опыт работы с открытыми исходными кодами для средних и крупных проектов, и дать какие-либо советы о том, как ими управлять. Кроме того, я был бы благодарен любому смельчаку, который осмелится заглянуть в код и задокументировать некоторые классы или общедоступные методы. И последнее, но не менее важное: если вы используете фреймворк для чего-нибудь интересного, напишите мне, пожалуйста, или поделитесь им в блоге.
Наконец, я хотел бы поблагодарить мою любовь Kyriaki за терпение ко мне при написании этого проекта, мой друг и супер-ниндзя-Java-разработчик Элефтериос Бампалетакис за помощь в решении важных проблем с Java и за участие в проекте. Я с нетерпением жду ваших комментариев.
- AI
- ай искусство
- генератор искусств ай
- искусственный интеллект
- искусственный интеллект
- сертификация искусственного интеллекта
- робот с искусственным интеллектом
- роботы с искусственным интеллектом
- программное обеспечение искусственного интеллекта
- блокчейн
- конференция по блокчейну
- Coingenius
- разговорный искусственный интеллект
- криптоконференция ИИ
- дал-и
- Датумбокс
- глубокое обучение
- Рамки
- google ai
- обучение с помощью машины
- Машинное обучение и статистика
- Платон
- Платон Ай
- Платон Интеллектуальные данные
- Платон игра
- ПлатонДанные
- платогейминг
- Программирование
- масштаб ай
- синтаксис
- зефирнет