Распознавание и синтез речи: как ИИ анализирует наши разговоры. Как нейросеть видит слова

Как нейросеть видит слова - Тренировка модели Запуск графа и получение результата Максимизация активации с двусторонним размытием Слой вывода Зачем нам распознавать или синтезировать речь?

1. проблема восстановления информации в распознанном тексте

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

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

Я думаю, что в первую очередь важно смотреть на общую картину. Вот как работает приложение. Как только вы поймете это, вам будет гораздо легче узнать, как работает алгоритм.

Как же развить интуицию и понять все оттенки машинного обучения? Хорошим вариантом является создание модели машинного обучения. Если у вас нет опыта написания алгоритмов с нуля, вы можете использовать библиотеки, которые уже реализуют их. Например, Tensorflow.

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

Заметка для себя. В нашей коллекции вы найдете полезные материалы по теме нейронных сетей. Тип: см. шпаргалки для части 1 и части 2.

Во время чтения Tensorflow вам может понадобиться семинар. Держите вкладки открытыми.

TensorFlow

Tensorflow — это библиотека, созданная компанией Google. Название помогает понять, как его использовать; TENNALS — это многомерные таблицы, проходящие через узлы графа.

tf.Graph

Каждый расчет в Tensorflow представлен в виде графа потока данных. Есть два элемента: график потока данных и график потока данных.

  1. Набор tf.Operation, который представляет единицы вычислений.
  2. Набор tf.Tensor, который представляет единицы данных.

Чтобы увидеть, как это работает, создайте следующую диаграмму потока данных.

Задайте x = 1, 3, 6 и y = 1, 1, 1. Давайте создадим фиксированный тензор, поскольку граф работает с tf.tensor для представления единиц данных.

Теперь давайте определим операционную единицу.

Все элементы графа присутствуют. Время строить:.

Вот как работает рабочий процесс Tensorflow. Сначала создайте граф, затем «запустите» узел jigsaw в действии для выполнения вычислений. Для этого необходимо создать tf.session.

tf.Session

Объект tf.session имеет встроенную среду, в которой выполняется объект операции и оценивается объект тензора (по крайней мере, так говорится в документации). Для этого необходимо указать график, который будет использоваться в сессии.

Для выполнения функции используется метод tf.session.run(). Он выполняет «шаги», которые вычисляют Tensorflow, выполняет каждый объект операции, выполняя требуемый участок графа и оценивая каждый тензор, передающий аргументы. В нашем случае выполняется дополнительный шаг метода.

Прогнозирующая модель

Теперь, когда мы знаем, как работает Tensorflow, нам нужно создать модель предсказания. В нескольких словах:.

Алгоритм машинного обучения + данные = прогностическая модель

Процесс создания прогностической модели

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

Цветочный поток

Цель создаваемой модели — классифицировать текст по категориям.

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

Это задача сортировки, поскольку данные классифицируются по категориям.

Для создания модели используется нейронная сеть.

Готовы претендовать на $10 000 в категории «Модели и методы искусственного интеллекта»? Проверьте свои знания и выиграйте онлайн-конкурс Huawei HonorCup2019.

Попробуйте.

Желтая инициализация слова представляет собой число и является идентификатором символа системы WordPiece. Словарь WordPiece, отобранный создателями BERTa, содержит 30 000 ключевых слов. К ним относятся буквы, наиболее популярные английские слова и отдельные слоги.

Немного истории

Первое устройство, «понимающее» человеческую речь, появилось в 1926 году. Это был робот «Телевокс». Он имел три вилки настройки, каждая из которых реагировала на разный тон и переключала одно из трех реле на другую функцию. Но, конечно, это не было распознавание голоса в современном понимании.

Всего полвека спустя, в 1976 году, была разработана полная система идентификации, которая уже понимала около 1000 слов. Но даже тогда это были лишь отдельные слова, а не целые дискуссии.

https://youtu.be/32KKg3aP3Vw

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

В 2016 году системы распознавания речи уже были достаточно распространены, но их точность не превышала 70-80%. Это означало, что из каждых 100 произнесенных слов от 20 до 30 не понимались машиной. Сегодня точность некоторых систем превышает 90%. Это означает, что такие программы можно использовать для проведения полноценных бесед. То есть, они «понимают» текст и, более того, оценивают его эмоциональное воздействие.

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

Как работает распознавание речи?

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

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

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

Сегодня определение пола человека по речи уже очень точно. Начиная примерно с двух секунд разговора, робот может определить, что он говорит с мужчиной или женщиной, почти в 100% случаев.

Как работает синтез речи?

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

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

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

Как видит нейросеть — как нейросеть видит слова, фото

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

Как он видит нейронную сеть

Как он видит нейронную сеть.

  • Линейные и классические модели обучения, такие как логистическая регрессия, легко понять и проанализировать .

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

В данном материале представлены некоторые из этих методов, а также рекомендован PytorchRevelio, инструментарий, содержащий эти методы.

Почему важно понимать, как видит нейросеть и глубокие нейронные сети ?

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

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

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

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

Очевидно, что существует необходимость в создании «прозрачных» моделей, которые могут объяснить, почему они предсказывают то, что предсказывают.

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

  • Когда модель выполняет ту или иную задачу лучше, чем человек, мы можем узнать что-то новое, поняв, почему она приняла такое решение.

Внешний вид нейронной сети - как нейронная сеть видит слово или картинку

Первая строка приведенного выше изображения содержит четыре изображения, отправленные на VGG-16, обученный ImageNet.

Эти изображения были отнесены к неправильной категории. В третьем ряду показаны пиксели, которые вызвали активацию неправильного класса из-за особенностей понимания нейронной сети.

Например, четвертое изображение представляет собой катушку. Однако он классифицируется как виноградная змея. Причиной этого является зеленая кривая, показанная в строке 3.

Инструментарий PytorchRevelio захватывает вышеупомянутые изображения двумя различными методами. Эти изображения представляют метку класса VGG11 691-OxygenMask, обученную на ImageNet.

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

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

  • Красные пиксели показывают части изображений, которые ResNet-50, обученный на ImageNet, концентрирует для классификации изображений животных, таких как туканы, лисы, орлы, павлины.

Эти красные пиксели получены с помощью PytorchRevelio. Например, при классификации тукана ResNet-50 фокусируется на клюве, а остальное изображение менее важно.

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

Внешний вид нейронной сети - как нейронная сеть видит слово или картинку

Изображения выше были созданы с помощью различных методов, таких как Активационная максимизация, Карта значимости и Grad_CAM. С помощью этих методов можно ответить на многие вопросы или задать новые важные вопросы.

Как видит нейросеть: максимизация активации

Максимизация активации — это метод поиска представления функции, изучаемой нейронами/фильтрами нейронной сети.

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

Статистика: действительно ли стало лучше?

Поскольку система GNMT была запущена два года назад, теперь можно оценить результаты.

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

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

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

А учитывая, что Google Translate работает с 10 000 пар языков (103 языка), становится ясно, что он только сейчас способен составить адекватные результаты.

В ноябре 2016 года, после того как система была полностью обучена и официально выпущена, аналитики Google опубликовали подробный анализ результатов GNMT. Он показывает, что повышение точности перевода незначительно и составляет в среднем 10 процентов.

Наиболее популярные языковые пары, такие как испано-английский и французско-английский, показали наибольшее улучшение с точностью 85-87%.

В 2017 году компания Google провела масштабный опрос пользователей Google Translate. Пользователей попросили оценить три варианта перевода: машинная статистика, нейростатистика и человеческая статистика. Здесь результаты оказались более интересными. Было показано, что переводы нейронной сети в некоторых языковых парах очень близки к человеческому переводу.

Статистическая модель Нейронная сеть Человеческий перевод
Английский — Испанский 4,885 5,428 5,550
Английский — Французский 4,932 5,295 5,496
Английский — Китайский 4,035 4,594 4,987
Испанский — Английский 4,872 5,187 5,372
Французский — Английский 5,046 5,343 5,404
Китайский — Английский 3,694 4,263 4,636

Основная система — это шестибалльная система оценки качества перевода. 6 — максимальный балл, 0 — минимальный балл.

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

Те же результаты можно увидеть в графическом представлении, что четко отличает его от стандартного автоматического перевода.

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

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

И небольшой бонус напоследок

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

Мнения, высказанные автором, могут не совпадать с точкой зрения автора. 42@cossa.ruであなたの記事を送ってください. И наша просьба к ним изложена здесь.

Оцените статью
The Elder Scrolls Online