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

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

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

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

Контекст «c» - это взвешенная сумма весов внимания.

Следовательно, alpha ‹t, t’ ›- это количество« внимания », которое y ‹t› должен уделять‹ t ’›.

Теперь нам нужно знать, как вычислить эти параметры alpha ‹t, t’ ›.

Один из способов сделать это - обучить небольшую нейронную сеть, где входы представлены состоянием сети на предыдущем временном шаге (s ‹t-1›) и функциями из временного шага t '(a ‹t'›). .

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

РАСПОЗНАВАНИЕ РЕЧИ

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

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

Одна из успешных моделей - CTC, Cost Per Speech Recognition.

Стоимость распознавания речи CTC

Обычно входные данные Tx намного больше, чем выходные Ty, поскольку аудиоклип, например, длительностью 10 секунд при 100 Гц приводит к 1000 входной последовательности. Вместо этого вывод, стенограмма, не состоит из 1000 символов.

В этой модели используется простая сеть RNN, где Tx = Ty.

Функция модели генерирует вывод, состоящий из повторяющихся символов, разделенных пробелами. (Например: «ttttttt__h_eeeee____bbb_rrrr_oo_w_nnnn»). Наконец, он сворачивает повторяющиеся символы, не разделенные пробелами, для получения выходной последовательности. («коричневый»).

Система определения триггерного слова

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

Вы ведь понимаете, о чем я говорю? Ассистенты с экзотическими именами? Я просто не хочу выставлять имена и дискриминировать одну компанию.

В любом случае, эти системы реагируют на вас, когда вы произносите «пусковое» слово. Например, давайте использовать слово «эспрессо» в качестве триггерного слова…. Когда вы говорите «эспрессо», голосовой помощник «просыпается», слушает, что вы просите, и что-то делает за вас.

Вы когда-нибудь задумывались, как это работает? Что ж, ожидание окончено.

Вот как вы используете модель RNN и обучаете ее изучению триггерного слова.

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

Если мы просто поставим 1 после конца триггерного слова и 0 везде, это приведет к разбалансировке обучающего набора с гораздо большим количеством нулей, чем единиц. Способ преодолеть это - вывести 1 не только для одного временного шага, но и несколько раз, прежде чем вернуться к 0.

Теперь модель обучена «просыпаться» от триггерного слова и быть готовой слушать то, что вы говорите!

Этот блог основан на лекциях Эндрю Нг на DeepLearning.ai