Лучшие Javascript-библиотеки по Machine Learning 2019 года
Javascript окружает нас везде: в корпоративных и личных проектах, он дополнен расширенными версиями языков, вроде Typescript и ReasonML. Но, хотя он и является третьим по популярности языком программирования в Github для Machine Learning, большинство Data Scientists и компаний, работающих с данными, предпочитают выбирать Python. В 2018 году мы наблюдали большой скачок роста в Machine Learning на Javascript, пусть многие важные проекты все еще не реализованы, немало ключевых игроков, как, например, Brain.js и Tensorflow.js, активно развивались в течение всего 2018 года и вплоть до настоящего момента — 2019 года.
Вот список лучших библиотек по Machine Learning на Javascript/Typescript 2019 года по следующим критериям:
- Поддерживается и имеет активное сообщество
- Готов к использованию
- Популярность
Дисклеймер: хотя в заголовке говорится о лучших "Javascript-библиотеках по Machine Learning", я включил в список библиотеки, которые не являются строго ML, но тесно с ним связаны.
1. Tensorflow.js
Tensorflow.js в 2019 году стал хлебом насущным для всех проектов с Машинным обучением на Javascript благодаря своей всеобъемлющей базе на линейной алгебре и слоям Deep Learning. Он быстро догнал свою сестру на Python по количеству поддерживаемых API, и на данном этапе он может решить практически все проблемы в Machine Learning.
Помимо поддержки Deep Learning и Machine Learning в средах Node.js, Tensorflow.js можно использовать и непосредственно в браузерах, одновременно привлекая WebGL для ускорения. Модель Tensorflow.js, поддерживающая и браузеры, и среды Node.js, применяется многими библиотеками с открытым исходным кодом, включая brain.js и machinelearn.js.
Туториал от Sentdex по Tensorflow.js
2. Brain.js
Стремясь снизить сложность Machine Learning и Deep Learning до уровня, понятного ребенку, Brain.js определенно стала считаться самой простой библиотекой по Deep Learning из всех существующих, в том числе в экосистеме Python.
Будучи одной из наиболее активно развивающихся библиотек по Deep Learning на Javascript, недавно они выпустили новый забавный интерактивный туториал:
https://scrimba.com/g/gneuralnetworks.
Кроме того, я рекомендую Brain.js всем новичкам в Deep Learning — там можно найти ряд потрясающих онлайн-учебников, предназначенных для новичков в Brain.js и в Deep Learning вообще.
Одно из самых популярных руководств по Brain.js на Youtube:
Туториал Brain.js, ориентированный на начинающих
Кроме того, не забудьте взглянуть на их репозиторий на Github и сайт.
3. stdlib-js
Графики и выборки данных — неотъемлемые компоненты любого рабочего процесса в Machine Learning. Составление графиков обеспечивает более полное понимание набора данных и помогает инженеру Машинного Обучения принять решение о следующем действии, чтобы решить возникающие проблемы. Более того, библиотека оснащена огромным количеством выборок данных различных типов, включая двоичную классификацию (binary classification), регрессию (regression) и комплекс визуальных наборов данных.
Библиотека может стать прекрасным дополнением к любому Machine Learning-проекту, поскольку она оснащена парочкой важных для машинного обучения операций, как, например, упомянутые выше, и имеет отличную документацию.
Взгляните на их репозиторий на Github и сайт для дополнительной информации!
4. machinelearn.js
Machinelearn.js — новичок в списке, выполняющий для Machine Learning на JavaScript роль, которую ScikitLearn выполняет на Python. Он даёт простые и критически важные модели и утилиты для контролируемых и неконтролируемых проблем. Ориентируясь на ясность и универсальное Машинное Обучение общего назначения для разработчиков Javascript и Typescript, он обеспечивает кластеризацию (clustering), декомпозицию (decomposition), ансамбль (ensemble), бэггинг (bagging), линейные модели, извлечение функций и многое другое.
Он использует проверенную в бою библиотеку Tensorflow.js для core-математики, которая обеспечивает ускорение с использованием нативного интерфейса C++, CUDA и WebGL. В отличие от своего аналога mljs, machinelearn.js написан на Typescript, который предоставляет определения типов для пользователей, которые уже используют этот язык.
Посмотрите их репозиторий на Github и сайт.
5. Math.js
Это библиотека для всех математических потребностей в Javascript с высокоуровневыми API для линейной алгебры, включая матричные операции и core-математику. Он довольно легкий, так как не зависит от других методов ускорения, таких как WebAssembly или WebGL.
Наличие большого числа участников от сообщества делает math.js одной из самых активных групп с открытым исходным кодом, которым управляют core-разработчики, в том числе Jos de Jong.
В области Machine Learning на Javascript Math.js достаточно для выполнения роли Numpy, поскольку он предоставляет все утилиты, необходимые для решения проблем Machine Learning.
Зайдите на их сайт и на Github-репозиторий сегодня.
6. face-api.js
Face-api.js включает в себя реализации известных моделей распознавания (Detection) и обнаружения (Recognition) лиц, предварительно обученных широкому спектру наборов данных. Он предоставляет вам готовые к использованию API-интерфейсы, которые вы можете подключить напрямую к любой среде Node.js и браузеру.
Библиотека реализует SSD MobileNet V1, Tiny Face Detector и MTCNN для архитектуры обнаружения (detection architecture) и архитектуру, аналогичную ResNet-34 для обнаружения лиц. Благодаря маленькому весу библиотека Tensorflow.js без проблем может быть использована как в мобильных, так и в веб-браузерах.
Посмотрите репозиторий на Github и статью автора в блоге.
7. R-JS
R-JS логотип
Если вы ищете хардкорную математическую утилиту, подобную существующей в R, член сообщества (почти) перенес важные компоненты R в Typescript.
Такая спецификация линейной алгебры, как BLAS, широко используется основными приложениями Machine Learning — Numpy и R. Проект R-js переписал весь BLAS в Typescript, который устанавливает основу для будущих проектов для реализации более мощного фреймворка математической базы, как Numpy и SciPy из Python.
Посмотрите их Github.
8. natural
Если вы ищете инструмент NLP, такой как NLTK или spaCy, в Javascript, Natural на данный момент является самой хорошо поддерживаемой и активной библиотекой NLP на сегодняшний день.
Он дает все API, необходимые в рабочем процессе Machine Learning в NLP, включая утилиты предварительной обработки, в том числе Tokenizer и Stemmers, утилиту поиска и tf-idf.
Он имеет встроенный анализ настроений с использованием простого алгоритма и нескольких структур данных, включая Tries, ShortestPathTree и LongestPathTree.
Посмотрите их Github-репозиторий.