Выравнивание меток в обучении RNN Transducer - PullRequest
0 голосов
/ 03 июля 2019

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

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

1 Ответ

0 голосов
/ 03 июля 2019

RNN-T имеет сеть транскрипции (аналог акустической модели), сеть прогнозирования (языковая модель) и объединенную сеть (/ функцию, в зависимости от реализации), которая объединяет выходные данные сети прогнозирования и сети транскрипции.

Во время тренировки вы обрабатываете каждое высказывание следующим образом:

  • Распространение всех T акустических кадров через сеть транскрипции и сохранение выходных данных (скрытые состояния сети транскрипции)
  • Распространение последовательности меток наземной истинности, длины U, через сеть прогнозирования, передавая вектор с нулем в начале последовательности. Обратите внимание, что вам не нужно беспокоиться о пустых состояниях в этот момент
  • Распространение всех комбинаций T * U скрытых состояний сети транскрипции и предсказания через объединенную сеть, будь то простая сумма и экспоненциальная величина согласно Graves (2012) или прямая сеть согласно более поздним публикациям Google ASR ( то есть: он и др. 2019).

Выходы T * U из объединенной сети можно рассматривать как сетку, как показано на Рисунке 1 Graves 2012. Затем функцию потерь можно эффективно реализовать с использованием алгоритма прямого-обратного хода (Раздел 2.4, Graves 2012). Разрешены только горизонтальные (потребляющие акустические рамки) и вертикальные (потребляющие метки) переходы. Переход от t к t + 1 аналогичен пустому состоянию в CTC, в то время как непустые символы выводятся при выполнении вертикальных переходов, то есть от выходной метки u к u + 1. Обратите внимание, что вы можете использовать несколько таймфреймов, не выводя непустой символ (в соответствии с CTC), но вы также можете вывести несколько меток без перехода по т.

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

Ссылки:

  • Последовательная передача с рекуррентными нейронными сетями, Graves 2012
  • Потоковое сквозное распознавание речи для мобильных устройств, He et al. 2019
...