TL; DR: библиотека Google TensorFlow с открытым исходным кодом помогает разработчикам создавать вычислительные графы и содержит бесплатные дополнительные модули, которые упрощают разработку программного обеспечения AI / ML для потребительских продуктов и мобильных приложений. Разработчикам требуется знание Python или C ++. В этом разделе рассматриваются 3 общих модуля и возможные бизнес-приложения:

  • Сверточные нейронные сети (CNN) для распознавания изображений
  • Модели от последовательности к последовательности (Seq2Seq) для человеческого языка
  • Крупномасштабные линейные модели для анализа данных

Что есть в TensorFlow?

TensorFlow - это платформа от Google, созданная в 2015 году с открытым исходным кодом для создания моделей глубокого обучения. Глубокое обучение - это одна из нескольких категорий моделей машинного обучения (ML), в которых используются многослойные нейронные сети. Библиотека TensorFlow позволяет пользователям выполнять функции, создавая вычислительный граф.

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

Как TensorFlow вписывается в ИИ и машинное обучение?

Tensorflow - одна из многих библиотек машинного обучения (другие примеры включают CNTK и Theano). Машинное обучение - это область информатики, которая дает компьютерам возможность учиться без явного программирования. [1] Например, ИИ AlphaGo Zero научился играть в Го и превзошел своего предшественника AlphaGo, который победил чемпиона мира по го. Машинное обучение полезно для задач, в которых явные алгоритмы не дают хороших результатов, таких как проверка пользователей, сортировка высококонтекстных данных и кластеризация для прогнозирования и профилирования.

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

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

Предупреждение о триггере: вычислительные графики и немного теории

Что нужно сделать разработчикам, чтобы использовать TensorFlow?

TensorFlow был создан с учетом ограничений вычислительной мощности (см. TensorFlow Lite и TensorFlow Mobile), что упростило мобильным и веб-разработчикам использование библиотеки и создание функций на базе искусственного интеллекта для потребительских продуктов. Разработчики, имеющие базовый опыт работы с нейронными сетями, могут использовать структуру для наборов данных, оценок, обучения и вывода.

Разработчики, не имеющие опыта работы с нейронными сетями, могут захотеть начать с API нейронной сети более высокого уровня, такого как Keras.io. Написанный на Python, Keras может работать поверх TensorFlow, CNTK и Theano и хорош для простого и быстрого прототипирования.

Чтобы начать работу с TensorFlow, разработчик должен знать:

  • Python или C ++
  • Немного о arrays (в частности, numpy.array, который предоставляется Numpy, библиотекой численных вычислений для Python, которую Tensorflow использует для работы с массивом / матрицей)

3 распространенных приложения для TensorFlow

Многие модули, включенные в библиотеку TensorFlow, могут выполнять множество функций, известных как AI / ML. Ниже приведены три наиболее часто используемых модуля:

  • Сверточные нейронные сети (CNN) для распознавания и обработки изображений
  • Модели от последовательности к последовательности (Seq2Seq) для функций, связанных с естественным языком
  • Крупномасштабные линейные модели для анализа данных и простых поведенческих прогнозов

Ниже мы приведем несколько примеров для коммерческих и потребительских приложений:

Сверточные нейронные сети (CNN) и Распознавание изображений

Одним из многих приложений CNN является помощь машинам в распознавании изображений и придании им смысла интуитивно понятным для человека способом. Например, это означает, что компьютер, распознающий цветные точки на изображении, объединяется в торт. Чтобы проверить точность, ИИ можно обучить на тренировочных данных, где правильные ответы уже доступны. CNN научится определять изображение, проверять его правильность и улучшать свою способность понимать цветные кластеры. Но настоящая производительность - это дать ИИ новый набор данных, чтобы увидеть, как он работает.

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

CNN может применяться в различных областях, таких как:

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

Преимущества раннего начала использования AI / ML заключаются в том, что первые пользователи будут иметь большие наборы данных для работы, чем конкуренты, через годы.

Последовательность для моделей последовательности и человеческий язык

Модели от последовательности к последовательности (Seq2Seq) используют рекуррентные нейронные сети в качестве строительного блока, вводя множество пар предложений во время обучения модели, чтобы мы могли сгенерировать одно предложение из другого предложения. Эти пары предложений могут быть любыми. Например, если речь идет о словах с двух разных языков, модель можно использовать для переводов. Когда речь идет о паре разговорных сообщений, модель может использоваться для чат-ботов.

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

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

  • Распознавание речи для субтитров в реальном времени
  • Чат-боты с искусственным интеллектом, такие как наш Кантонский чат-бот для Telegram
  • Виртуальные помощники, такие как Siri от Apple, Alexa от Amazon и Google Assistant.
  • Машинный перевод
  • Обобщить документы
  • Пакетные подписи к изображениям

Крупномасштабные линейные модели

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

Линейные модели могут использоваться для двоичной классификации (прогнозирование результата a или b), многоклассовой классификации (прогнозирование одного из нескольких результатов) и регрессии (прогнозирование числового значения). Эти модели могут использоваться для оценки больших данных, таких как данные переписи или финансовые данные.

Например, Amazon ML использует линейные модели в электронной торговле, чтобы делать предложения для продавцов, например:

  • Купит ли покупатель этот товар или не купит этот товар? (Двоичная классификация)
  • Это компьютер, смартфон или аксессуар? (Мультиклассовая классификация)
  • Какая цена подходит для данной модели и года выпуска автомобиля? (Регрессия)

Конечно, мы только что коснулись того, на что способен AI / ML. Если вы хотите узнать больше о том, как функции на базе искусственного интеллекта могут быть включены в ваш продукт, свяжитесь с нами.

😻 Мы в Oursky помогаем брендам и предпринимателям претворять в жизнь свои идеи. Свяжитесь с нами, если вы ищете партнера для создания вашего следующего цифрового продукта.

Первоначально опубликовано на blog.oursky.com 14 февраля 2018 г.