Как написать нейросеть на js

0
15

Представляем: Машинное обучение в Javascript

Посмотрим на код

Обзор API TensorFlow.js. TensorFlow.js работает на основе WebGL и предоставляет высокоуровневый API для определения моделей и низкоуровневый API для линейной алгебры и автоматического дифференцирования. Tensor Flow.js поддерживает импорт моделей TensorFlow SavedModels и Keras.

Хороший вопрос! TensorFlow.js, экосистема инструментов JavaScript для машинного обучения, является преемником deeplearn.js, который теперь называется TensorFlow.js Core. TensorFlow.js также включает в себя Layers API, которые являются библиотекой более высокого уровня для построения моделей машинного обучения с использованием Core, также как инструменты для автоматического переноса моделей TensorFlow SavedModels и Keras hdf5.

Запуск программ машинного обучения со стороны клиента в браузере открывает новые возможности, такие как интерактивный ML! Если вы смотрите трансляцию для разработчиков саммита TensorFlow, то вы увидите демонстрационный пример, где @dsmilkov и @nsthorat учат модель управлять игрой PAC-MAN, используя компьютерное зрение и веб-камеру прямо в браузере. Вы также можете попробовать это самостоятельно по ссылке ниже — и найти источник в папке примеров.

Есть слой входных нейронов (где информация поступает из вне), слой выходных нейронов (откуда можно взять результат) и ряд, так-называемых, скрытых слоев между ними. Нейроны могут быть расположены в несколько слоёв. Каждая связь между нейронами имеет свой вес Wij

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

Идея для написания этой статьи возникла прошлым летом, когда я слушал доклад на конференции BigData по нейронным сетям. Лектор «посыпал» слушателей непривычными словечками «нейрон», «обучающая выборка», «тренировать модель»… «Ничего не понял — пора в менеджеры», — подумал я. Но недавно тема нейронных сетей все же коснулась моей работы и я решил на простом примере показать, как использовать этот инструмент на языке JavaScript.

Математический нейрон

Сигналы x1, x2, x3 … xn, поступая на вход, преобразуются линейным образом, т.е. к телу нейрона поступают силы: w1x1, w2x2, w3x3 … wnxn, где wi — веса соответствующих сигналов. Нейрон суммирует эти сигналы, затем применяет к сумме некоторую функцию f(x) и выдаёт полученный выходной сигнал y.
В качестве функции f(x) чаще всего используется сигмоидная или пороговая функции.

Мы рады представить TensorFlow.js, библиотеку с открытым исходным кодом, которую вы можете использовать для определения, обучения и запуска моделей машинного обучения целиком в браузере с использованием Javascript и API-интерфейса слоев высокого уровня. Если вы девелопер Javascript, но еще пока новичок в ML, TensorFlow.js — отличный способ начать обучение. Или если вы девелопер ML, но новичок Javascript, — читайте дальше, чтобы узнать больше о новых возможностях ML в браузере. В этой статье мы дадим вам краткий обзор TensorFlow.js и начальные ресурсы, которые вы можете использовать, чтобы его опробовать.

ЧИТАТЬ ТАКЖЕ:  Нейросеть что можно

Если хотите, можете обратиться прямо к примерам или учебным пособиям для того, чтобы начать. Они показывают, как экспортировать модель, определенную в Python, для вывода в браузере, а также как полностью определять и обучать модели в Javascript. В качестве быстрого предварительного просмотра приведен фрагмент кода, который определяет нейронную сеть для классификации цветов, как в руководстве по началу работы на TensorFlow.org. Здесь мы определим модель, используя стек слоев.

Запуск ML в браузере означает, что с точки зрения пользователя нет необходимости устанавливать какие-либо библиотеки или драйверы. Просто откройте веб-страницу, и ваша программа готова к запуску. Кроме того, она готова к работе с ускорением GPU. TensorFlow.js автоматически поддерживает WebGL и ускорит ваш код сразу, как появится графический процессор. Пользователи также могут открывать вашу веб-страницу с мобильного устройства, и в этом случае ваша модель может использовать данные датчиков, например, с гироскопа или акселерометра. Важно еще и то, что все данные остаются у клиента, что делает TensorFlow.js полезным для low-latency вывода, а также для приложений, сохраняющих конфиденциальность.

То, что мы передали в метод .train называется обучающей выборкой, каждый элемент которой состоит из массива объектов со свойством input и output (массив входящих и выходящих параметров). Мы не проводили нормализацию входящих данных, так как сами данные уже приведены в нужную форму.

Мы создадим нейронную сеть, с помощью которой будем распознавать ручное написание цифры от 0 до 9. Рабочий пример займет несколько строк. Код будет понятен даже тем программистам, которые не имели дело с нейронными сетями ранее. Как это все работает, можно будет посмотреть прямо в браузере.

Перед тем, как подавать сигналы на нейроны входящего слоя сети нам их нужно нормализовать. Нормализация входных данных — это процесс, при котором все входные данные проходят процесс «выравнивания», т.е. приведения к интервалу [0,1] или [-1,1]. Если не провести нормализацию, то входные данные будут оказывать дополнительное влияние на нейрон, что приведет к неверным решениям. Другими словами, как можно сравнивать величины разных порядков?

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь