Javascript-библиотеки используют для определения, обучения и запуска моделей глубокого обучения, визуализации данных полностью в браузере. Они значительно облегчают жизнь разработчику. Ниже представлены изящные библиотеки, которые объединяют Javascript, машинное обучение , глубокие нейронные сети и даже NLP.
Brain.js — Javascript библиотека для искусственных нейронных сетей, заменяющая «мозговую» библиотеку, которая предлагает разные типы сетей в зависимости от конкретных задач. Используется с Node.js или в браузере. Здесь представлено демо тренировки сети для распознавания цветовых контрастов.
Обучение Brain.js распознавать цветовые контрасты
Synaptic — Javascript библиотека для нейронных сетей для node.js и браузера, которая позволяет обучать архитектуры нейронных сетей первого и второго порядков. Проект содержит несколько встроенных архитектур — многослойный перцептрон, многослойная сеть долгой краткосрочной памяти, LSM (liquid state machine) и тренер (trainer), способный обучать сети.
Фильтрация изображения с помощью перцептрона Synaptic
Эта библиотека предоставляет возможность быстро осуществлять нейроэволюцию и обратное распространение для браузера и Node.js. Библиотека содержит несколько встроенных сетей — перцептрон, LSTM, GRU, Nark и другие. Для новичков есть туториал , помогающий реализовать тренировку сети.
Демо поиска цели на Neaptic
Эта популярная библиотека , разработанная PhD студентом из Стэнфорда Андреем Карпатым, который сейчас работает в Tesla. Хотя она не поддерживается последние 4 года, Conventjs остается одним из самых интересных проектов в этом списке. Conventjs представляет из себя написанную на Javascript реализацию нейронных сетей, поддерживающую распространенные модули — классификацию, регрессию, экспериментальный модуль обучения с подкреплением. С помощью этой библиотеки можно даже обучать сверточную нейросеть для обработки изображений.
Задача двумерной классификации при помощи двухслойной нейросети на Convent.js
Webdnn — японская библиотека, созданная для быстрой работы с предобученными глубокими нейросетевыми моделями в браузере. Хотя запуск DNN (Глубокой нейронная сети) в браузере требует больших вычислительных ресурсов, этот фреймворк оптимизирует DNN модель так, что данные модели сжимаются, а исполнение ускоряется при помощи JavascriptAPI, таких как WebAssembly и WebGPU.
Пример трансфера стиля
Библиотека от Google (преемница популярной deeplearnjs) дает возможность обучать нейронные сети в браузере или запускать предобученные модели в режиме вывода. Создатели библиотеки утверждают, что она может быть использована как NumPy для веба. Tensorflow.js с простым в работе API может быть использована в разнообразных полезных приложениях. Библиотека также активно поддерживается.
Deep playground — инструмент для интерактивной визуализации нейронных сетей, написанный на TypeScript с использованием d3.js. Хотя этот проект в основном содержит самую базовую площадку для tensorflow , он может быть использован для различных целей, например, в качестве очень выразительного обучающего инструмента.
Игровая площадка Tensorflow
Compromise — популярная библиотека , которая позволяет осуществлять обработку естественного языка (NLP) при помощи Javascript. Она базовая, компилируется в единственный маленький файл. По некоторым причинам, скромного функционала вполне хватает для того, чтобы сделать Compromise главным кандидатом для использования практически в любом приложении, в котором требуется базовый NLP.
Compromise напоминает, как в действительности выглядит английский
Этот проект представляет собой Javascript библиотеку глубокого обучения и обучения с подкреплением в браузере. Из-за реализации полнофункционального фреймворка машинного обучения на основе нейронных сетей с поддержкой обучения с подкреплением, Neuro.js считается преемником Conventjs.
Беспилотное авто с Neuro.js
Это группа репозиториев, содержащая инструменты для машинного обучения для Javascript, разработана группой mljs. Mljs включает в себя обучение с учителем и без, искусственные нейронные сети, алгоритмы регрессии и поддерживает библиотеки для статистики, математики тому подобное. Здесь можно найти краткое введение в тему.
Проект mljs на GitHub
Mind — гибкая нейросетевая библиотека для Node.js и браузера. Mind учится предсказывать, выполняя матричную обработку тренировочных данных и обеспечивая настраиваемую топологию сети. Можете использовать уже существующие разработки, что может быть весьма полезно для ваших приложений.
Активно поддерживаемая библиотека для Node.js, которая обеспечивает: токенизацию, стемминг (сокращение слова до необязательно морфологического корня), классификацию, фонетику, tf-idf, WordNet и другое.
MXnet от Apache — фреймворк глубокого обучения, который позволяет на лету смешивать символьное и императивное программирование со слоем оптимизации графа для достижения результата. MXnet.js обеспечивает API для глубокого обучения в браузере.
Эта библиотека запускает модели Keras в браузере с поддержкой GPU при помощи технологии WebGL. Так как Keras использует в качестве бэк-енда различные фреймворки, модели могут быть обучены в TensorFlow, CNTK, а также и в других фреймворках.
Deepforge — среда разработки для глубокого обучения, которая позволяет быстро конструировать архитектуру нейронной сети и пайплайны машинного обучения. В Deepforge содержится также встроенная функция контроля версий для воспроизведения экспериментов. Сюда стоит заглянуть.
Land Lines — не столько библиотека, сколько очень занимательная веб-игра на основе эксперимента Chrome от Google. Нельзя сказать, для чего нужна эта штука, но она позабавит хотя бы 15 минут.