11 JavaScript-библиотек для машинного обучения

javascript библиотеки машинное обучение

Javascript-библиотеки используют для определения, обучения и запуска моделей глубокого обучения, визуализации данных полностью в браузере. Они значительно облегчают жизнь разработчику. Ниже представлены изящные библиотеки, которые объединяют Javascript, машинное обучение, глубокие нейронные сети и даже NLP.

1. Brain.js

Brain.js — Javascript библиотека для искусственных нейронных сетей, заменяющая «мозговую» библиотеку, которая предлагает разные типы сетей в зависимости от конкретных задач. Используется с Node.js или в браузере. Здесь представлено демо тренировки сети для распознавания цветовых контрастов.

Brain.js - Javascript библиотека для искусственных нейронных сетей
Обучение Brain.js распознавать цветовые контрасты

2. Synaptic

Synaptic — Javascript библиотека для нейронных сетей для node.js и браузера, которая позволяет обучать архитектуры нейронных сетей первого и второго порядков. Проект содержит несколько встроенных архитектур  — многослойный перцептрон, многослойная сеть долгой краткосрочной памяти, LSM (liquid state machine) и тренер (trainer), способный обучать сети.

Synaptic - Javascript библиотека
Фильтрация изображения с помощью перцептрона Synaptic

3. Neataptic

Эта библиотека предоставляет возможность быстро осуществлять нейроэволюцию и обратное распространение для браузера и Node.js. Библиотека содержит несколько встроенных сетей — перцептрон, LSTM, GRU, Nark и другие. Для новичков есть туториал, помогающий реализовать тренировку сети.

Neaptic библиотека JS
Демо поиска цели на Neaptic

4. Conventjs

Эта популярная библиотека, разработанная PhD студентом из Стэнфорда Андреем Карпатым, который сейчас работает в Tesla. Хотя она не поддерживается последние 4 года, Conventjs остается одним из самых интересных проектов в этом списке. Conventjs представляет из себя написанную на Javascript реализацию нейронных сетей, поддерживающую  распространенные модули — классификацию, регрессию, экспериментальный модуль обучения с подкреплением. С помощью этой библиотеки можно даже обучать сверточную нейросеть для обработки изображений.

javascript библиотека машинного обучения Convent.js
Задача двумерной классификации при помощи двухслойной нейросети на Convent.js

5. Webdnn

Webdnn — японская библиотека, созданная для быстрой работы с предобученными глубокими нейросетевыми моделями в браузере. Хотя запуск DNN (Глубокой нейронная сети) в браузере требует больших вычислительных ресурсов, этот фреймворк оптимизирует DNN модель так, что данные модели сжимаются, а исполнение ускоряется при помощи JavascriptAPI, таких как WebAssembly и WebGPU.

японская библиотека JS для машинного обучения
Пример трансфера стиля

6. Tensorflow.js

Библиотека от Google (преемница популярной deeplearnjs) дает возможность обучать нейронные сети в браузере или запускать предобученные модели в режиме вывода. Создатели библиотеки утверждают, что она может быть использована как NumPy для веба. Tensorflow.js с простым в работе API может быть использована в разнообразных полезных приложениях. Библиотека также активно поддерживается.

7. TensorFlow Deep Playground

Deep playground  — инструмент для интерактивной визуализации нейронных сетей, написанный на TypeScript с использованием d3.js. Хотя этот проект в основном содержит самую базовую площадку для tensorflow, он может быть использован для различных целей, например, в качестве очень выразительного обучающего инструмента.

Tensorflow библиотке Javascript
Игровая площадка Tensorflow

8. Compromise

Compromise — популярная библиотека, которая позволяет осуществлять обработку естественного языка (NLP) при помощи Javascript. Она базовая, компилируется в единственный маленький файл. По некоторым причинам, скромного функционала вполне хватает для того, чтобы сделать Compromise главным кандидатом для использования практически в любом приложении, в котором требуется базовый NLP.

Compromise
Compromise напоминает, как в действительности выглядит английский

9. Neuro.js

Этот проект представляет собой Javascript библиотеку глубокого обучения и обучения с подкреплением в браузере. Из-за реализации полнофункционального фреймворка машинного обучения на основе нейронных сетей с поддержкой обучения с подкреплением, Neuro.js считается преемником Conventjs.

neurojs library Javascript machine learning models
Беспилотное авто с Neuro.js

10. mljs

Это группа репозиториев, содержащая инструменты для машинного обучения для Javascript, разработана группой mljs. Mljs включает в себя обучение с учителем и без, искусственные нейронные сети, алгоритмы регрессии и поддерживает библиотеки для статистики, математики тому подобное. Здесь можно найти краткое введение в тему.

репозитории для машинного обучения
Проект mljs на GitHub

11. Mind

Mind — гибкая нейросетевая библиотека для Node.js и браузера. Mind учится предсказывать, выполняя матричную обработку тренировочных данных и обеспечивая настраиваемую топологию сети. Можете использовать уже существующие разработки, что может быть весьма полезно для ваших приложений.

гибкая нейросетевая библиотека для Node.js и браузера

Достойны упоминания:

Natural

Активно поддерживаемая библиотека для Node.js, которая обеспечивает: токенизацию, стемминг (сокращение слова до необязательно морфологического корня), классификацию, фонетику, tf-idf, WordNet и другое.

Incubator-mxnet

MXnet от Apache — фреймворк глубокого обучения, который позволяет на лету смешивать символьное и императивное программирование со слоем оптимизации графа для достижения результата. MXnet.js обеспечивает API для глубокого обучения в браузере.

Keras JS

Эта библиотека запускает модели Keras в браузере с поддержкой GPU при помощи технологии WebGL.  Так как Keras использует в качестве бэк-енда различные фреймворки, модели могут быть обучены в TensorFlow, CNTK, а также и в других фреймворках.

Deepforge

Deepforge — среда разработки для глубокого обучения, которая позволяет быстро конструировать архитектуру нейронной сети и пайплайны машинного обучения. В Deepforge содержится также встроенная функция контроля версий для воспроизведения экспериментов. Сюда стоит заглянуть.

Land Lines

Land Lines — не столько библиотека, сколько очень занимательная веб-игра на основе эксперимента Chrome от Google. Нельзя сказать, для чего нужна эта штука, но она позабавит хотя бы 15 минут.

Что дальше?

Очевидно, Javascript еще не становится основным языком для машинного обучения. Однако, общие проблемы, такие как производительность, манипуляции с матрицами и обилие полезных библиотек, постепенно преодолеваются, уменьшая разрыв между приложениями и машинным обучением.

Нейронная сеть на JavaScript в 30 строк кода

В этой статье будет показано, как создать и обучить нейронную сеть на JavaScript, используя Synaptic.js. Этот пакет позволяет реализовывать глубокое обучение в Node.js и в браузере. Будет создана простейшая возможная нейронная сеть — та, которой удается выполнить XOR операцию. Перевод статьи «How to create…
Tensorflow Javascript

Обзор Tensorflow.JS: машинное обучение на JavaScript

Разработчики Google представили TensorFlow.JS — библиотеку с открытым исходным кодом, которую можно использовать для определения, обучения и запуска моделей машинного обучения полностью в браузере, используя Javascript и высокоуровневое API. Если вы Javascript-разработчик, который новичок в машинном обучении, TensorFlow.js — отличный способ начать обучение. Если вы ML-инженер и новичок в Javascript,…