10 примеров машинного обучения на JavaScript

10 примеров машинного обучения в JavaScript

С каждым годом библиотеки машинного обучения становятся все быстрее и доступнее, без признаков замедления. Традиционным языком машинного обучения является Python, однако в настоящее время нейронные сети могут работать на любом языке, включая JavaScript!

В последнее время экосистема веб добилась большого прогресса, и хотя JavaScript и Node.js все еще менее производительны, чем Python и Java, они достаточно мощны, чтобы справляться с множеством проблем машинного обучения. Преимущество веб-языков в том, что они супердоступны — все, что вам нужно для запуска ML-проекта (Mashine Learning) на JavaScript, — это ваш веб-браузер.

Большинство библиотек для машинного обучения довольно новы и все еще находятся в разработке, но они уже есть и готовы для ваших испытаний. В этой статье мы рассмотрим некоторые из этих библиотек, а также несколько интересных примеров веб-приложений AI, которые помогут вам начать работу.

1. Brain

Brain

Brain — это библиотека, которая позволяет вам легко создавать нейронные сети, а затем обучать их на основе входных/выходных данных. Поскольку обучение занимает много ресурсов, предпочтительно запускать библиотеку в среде Node.js, хотя можно загрузить приложение непосредственно на веб-странице в браузере. На их веб-сайте есть небольшое демо, которое можно обучить распознаванию цветового контраста.

2. Deep playground

deep-playground

Образовательное веб-приложение, которое позволяет поиграть с нейронными сетями и изучить их различные компоненты. Приложение имеет приятный интерфейс, который позволяет вам управлять входными данными, количеством нейронов, используемым алгоритмом и различными другими метриками, которые будут отражаться на конечном результате. Также можно многому научиться изучая открытый исходный код, где используется специальная библиотека машинного обучения, которая написана на языке TypeScript и хорошо документирована.

3. FlappyLearning

flappy-learning

FlappyLearning — это JavaScript проект, который уместился в 800 строках неминифицированного кода, представляет собой библиотеку машинного обучения и реализует ее в веселой демонстрации, которая учится играть в Flappy Bird как виртуоз. Техника искуственного интеллекта, используемая в этой библиотеке, называется нейроэволюцией и применяет алгоритмы, основанные на нервных системах, встречающихся в природе, динамически изучающие успех каждой итерации или неудачу. Демо запустить очень просто — откройте index.html в браузере.

4. Synaptic

synaptic

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

5. Land Lines

land-lines

Land Lines — интересный веб-эксперимент Chrome, который по спутниковым изображениям Земли, строит карты похожие на каракули, сделанные пользователем. Приложение не имеет сервера: оно полностью работает в браузере и благодаря умному использованию машинного обучения и WebGL имеет отличную производительность даже на мобильных устройствах. Вы можете проверить исходный код на GitHub или прочитать полное исследование здесь.

6. ConvNetJS

 

convnetjs

Хотя он больше не поддерживается, ConvNetJS является одной из самых передовых библиотек глубокого обучения для JavaScript. Первоначально разработанный в Стэнфордском университете, ConvNetJS стал довольно популярным в GitHub, в результате чего появились многие связанные с сообществом функции и учебные пособия. Он работает непосредственно в браузере, поддерживает множество методов обучения и довольно низкоуровневый, что делает его подходящим для людей с большим опытом работы в нейронных сетях.

7. Thing Translator

thing-translator

Thing Translator — это веб-эксперимент, который позволяет вашему телефону распознавать реальные объекты и называть их на разных языках. Приложение полностью основано на веб-технологиях и использует два API машинного обучения от Google —  Cloud Vision для распознавания изображений и Translate API для перевода на нужный язык.

8. Neurojs

neurojs

Фрейворк для создания систем искуственного интеллекта, основанной на обучении с подкреплением. К сожалению, проект с открытым исходным кодом не имеет надлежащей документации, но одна из демоверсий — эксперимент с беспилотным автомобилем — отлично описывает некоторые фрагменты кода, которые составляют нейронную сеть. Библиотека написана на чистом JavaScript и использует современные инструменты, такие как webpack и babel.

9. Machine_learning

machine_learning

Еще одна библиотека, которая позволяет нам создавать и тренировать нейронную сеть, используя только JavaScript. Она очень просто установливается как в Node.js, так и на стороне клиента, имеет очень чистый API, который будет удобен для разработчиков любого уровня квалификации. В библиотеке представлено множество примеров, которые реализуют популярные алгоритмы, помогая понять основные принципы машинного обучения.

10. DeepForge

deepforge

DeepForge — это удобная среда разработки для работы с глубоким обучением (Deep Learning). Она позволяет создавать нейронные сети, используя простой графический интерфейс, поддерживает модели обучения на удаленных машинах и имеет встроенный контроль версий. Проект запускается в браузере и основан на Node.js и MongoDB, что делает процесс установки очень знакомым для большинства веб-разработчиков.

Бонус: Машинное обучение на Javascript

ml-in-js

Отличная серия постов в блоге от Burak Kanber, где охватываются основы машинного обучения. Учебники хорошо написаны, понятны и ориентированы именно на разработчиков JavaScript. Отличный ресурс, если вы хотите глубже разобраться в машинном обучении.

Вывод

Несмотря на то, что машинное обучение в экосистеме JavaScript еще не полностью развито, мы рекомендуем использовать описанные здесь ресурсы для своих первые шагов в машинном обучении, поэкспериментировать и почувствовать основные методы. Предложенные здесь библиотеки, показывают, что Вы можете сделать массу прикольных вещей, используя только браузер и имея какое-то понимание кода JavaScript.

Не совсем точный перевод статьи на tutorialzine.com