Конференция по Data Science! 02 ноября 2023 Участвовать →

Лучшие 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

Источник: https://itnext.io/face-api-js-javascript-api-for-face-recognition-in-the-browser-with-tensorflow-js-bcc2a6c4cf07

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-репозиторий.

 

Источник

Поделиться записью
Вверх