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

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

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

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

Головной мозг

1.  Brain

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

Deep playground

Deep playground — учебное веб-приложение для игр с нейронными сетями и изучения их различные компонентов. Имеет приятный пользовательский интерфейс, который позволяет контролировать входные данные, количество нейронов, используемые алгоритмы и другие факторы, оказывающие влияние на конечный результат. Практически осваивая приложение можно понять, что творится за кулисами — в открытом коде используется хорошо документированная библиотека машинного обучения.


FlappyLearning

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


Synaptic

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


Land Lines

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


ConvNetJS

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


Thing Translator

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


Neurojs

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


Machine_learning

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


DeepForge

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


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

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

Вывод

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

Источник вдохновения: 10 Machine Learning Examples in JavaScript

CC BY-NC 4.0 10 примеров алгоритмов машинного обучения на javascript, опубликовано waksoft, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.


1 нравится это

Добавить комментарий