Рубрики
Без рубрики

Введение в Tensorflow.js, стек ИИ для JavaScript

В моей компании мы фанаты JavaScript, и мы работаем над предоставлением сообществу JavaScript с помощью COO … Tagged с Tensorflow, JavaScript, Artification Intelligence.

В моей компании мы фанаты JavaScript, и мы работаем над предоставлением сообществу JavaScript Cool Products, чтобы расширить его использование для всех вычислительных областей. Искусственный интеллект (ИИ) в настоящее время является одной из областей, в основном рассматриваемых Python. У JavaScript есть все, что вам нужно, в браузере или в облаке благодаря Tensorflow.js. Эта статья является введением в ИИ для пользователей JavaScript. Вы найдете все, чтобы начать работу с учетом основных представлений. Мы представим концепции ИИ, фреймворк Google Tensorflow, а затем стек AI для JavaScript: tensorflow.js.

ИИ концепции

В частности, искусственный интеллект и искусственные нейронные сети (NN) получили все большее принятие во многих приложениях за последние 5 лет. Это результат конвергенции 2 основных эволюций: доступность эффективных архитектур в облаке и ключевые инновации в алгоритмах обучения нейронной сети. Он открыл новые способы, такие как глубокое обучение (термин, обозначающий нейронные сети, которые включают несколько скрытых слоев между входами и выходами).

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

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

Машетное зрение и обработка изображений сегодня являются первичными полями для NN, и существуют многие предварительно обученные модели сложности переменной, а также коллекции обучающих изображений (например, MNIST или модели ImageNet).

PERCEPTRON и слои

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

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

Одиночная модель персептрона

Различные сетевые архитектуры получают путем репликации, взаимосвязанного и каскада таких клеток, как показано на рисунке ниже:

Полностью подключенная топология 15-перпетрона

Вывод и обучение

«Прямая» работа нейронной сети, которая состоит в том, чтобы применять серию неизвестных входов к сети, веса которых определяются для получения выходов (например, прогноз следующих данных, классификация изображения, указание на то, что Конкретный паттерн существует на изображении и т. Д.) называется « Вывод ».

Операция, которая состоит из вычисления значений веса нейронной сети, обычно путем представления ряда входов вместе с их ожидаемыми выходными значениями, называется «Обучение ».

Обучение глубоких сетей выполняется путем расчета разницы или «градиента» между выходом (ы) сети для данного входа и ожидаемым выводом. Этот градиент затем разделен в градиентном вкладе каждого веса выходного уровня, а затем вплоть до всех слоев сети. Этот процесс обычно называется «алгоритм градиентного обратного распространения». Затем веса регулируются, чтобы минимизировать градиенты в итерационном алгоритме на нескольких входах, с политиками оптимизации, которые настраиваются пользователем.

Примеры модели нейронной сети

Многие типы и топологии нейронных сетей (NN) могут быть построены, и текущие исследования постоянно улучшают и обогащают существующие коллекции NN. Глубокие сети могут быть построены путем сборки повторно используемых модулей (предварительно обученных или нет), которые оказались эффективными для данной задачи.

Однако существуют типичные архитектуры модулей, которые оказываются эффективными в определенных задачах.

Особенно:

  • Полностью подключенные сети: В них все выходы слоя подключены ко всем входам следующего слоя, что делает комплекс подключения «Treillis» для глубоких структур этого типа и делает обучение хитрым для настройки. Они часто используются в качестве конечных слоев принятия решений поверх других структур.
  • Свещательные сети: непосредственно вдохновленные визуальной корой человека, они очень эффективны при анализе изображений (фильтрация, обнаружение функций), могут быть легко воспроизведены и сгруппированы для анализа областей изображения и отдельных каналов, а также сложены в глубоких структурах без запретной сложности. Кроме того, предварительно обученные подмодулы для конкретной функции, например, можно выгодно использоваться в разных сетях, что сокращает время обучения. Они обычно покрывают несколько полностью подключенных слоев в зависимости от необходимых конечных выходов.
  • Рецидивирующие сети: они вводят элементы памяти, которые делают их способными анализировать и предсказать временные ряды в широком смысле, которые могут перейти от анализа текста (классификация настроений) к созданию музыки и прогнозированию цен на акции.
  • остаточные сети: Это сети (или сборки сетей) любого типа, в которых результаты данного уровня добавляются к результату конкретного уровня («Skip Connections»), который ускоряет обучение в очень глубоких сетях.

Tensorflow Framework

Увеличение внедрения ИИ в обработке больших данных, привлеченных к потребностям в рамках, которые эффективны для создания/редактирования сложных сетей, манипулирования различными типами наборов данных (многомерные матрицы являются базовым), а также выполнение вывода и обучающих операций из схемы без явно выразить каждую операцию нейрона и связанные с ними алгоритмы.

Поскольку Google в течение длительного времени в течение долгого времени занимался развертыванием ИИ в своих инфраструктурах, в 2015 году он открыл свою домашнюю внутреннюю структуру в 2015 году под названием «TensorFlow» (упоминаемое здесь под TF).

Построенная на вершине Python, среда, широко распространенная научными и данных-аналитиками для его простоты и многолетней доступности математических и специфичных для массива библиотек, TF впервые состояла из API декларативного стиля. Это было очень всеобъемлющее и универсальное, и позволило решить практически любую проблему исчисления тензора (многомерная матрица), включая, конечно, сложные нейронные сети.

Позже Google включил императивный режим (для более «интуитивно понятного» программирования и более простой отладки) и керас API, сторонний набор функций более высокого уровня, который упрощает разработку, обучение и вывод нейронной сети.

Обратите внимание, что Python TF обеспечивает оптимизированный C ++ Backend и бэкэнд на основе CUDA для платформ, оснащенных графическими процессорами NVIDIA для предоставления выводов или тренингов.

Tensorflow.js (с использованием javaScript)

В 2018 году была выпущена версия TensorFlow JavaScript: Tensorflow.js , чтобы включить его использование в браузерах или Node.js. При запуске он поддерживал императивный режим выполнения и API Keras, но не хватает полной поддержки функциональных возможностей Python TF. Tensorflow.js быстро увеличился, выпустить после выпуска, На пути к выравниванию с керас Python API Анкет

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

Хорошие примеры:

  • Magenta.js (музыка и искусство с использованием машинного обучения): исследовательский проект Google по творческим нейронным сетям ( https://magenta.tensorflow.org/ ), который предлагает инструменты, модели и демонстрации с открытым иской (модели и демонстрации (интерактивная музыка , среди других).
  • COCO-SSD: Обнаружение объекта на изображениях с потоковыми веб-камерой с использованием Mobilenet NN.

На стороне node.js Tensorflow.js доступен в 2 версиях. Вся стек первой версии полностью записана в JavaScript, в то время как второй использует тот же бэкэнд C ++ и на основе CUDA для GPU NVIDIA в качестве версии TensorFlow Python.

Команда TensorFlow.js недавно выпустила Backend WASM (оптимизация производительности в браузерах через нативные ядра C ++ без использования графического процессора) и скоро выпустит бэкэнд WebGPU (эволюция стандарта WebGL).

В Эта статья второй части , мы описываем, как управлять tensorflow.js, используя модели, поступающие из Python Tensorflow или готовых к использованию моделей в браузере и в облаке, используя наши Warpjs продукт. У фанатов JavaScript будет все, чтобы начать войти в эту область. А пока посетите https://www.tensorflow.org/js Для документации по документированию и установки API, включая учебные пособия, руководства и демонстрации.

Об авторе

Доминик Д’Энверно имеет степень магистра в области телекоммуникаций. После 20 -летнего опыта, включая проектирование встроенной электроники, архитектуру мобильных компьютерных систем и математическое моделирование, он присоединился к команде Scaledynamics в 2018 году в качестве инженера по разработке ИИ и алгоритма.

Оригинал: “https://dev.to/warpjs/introduction-to-tensorflow-js-the-ai-stack-for-javascript-2fb0”