Когда и как доверять своей модели распознавания речи

Оглавление

  • Что такое неопределенность?
  • Методы оценки неопределенности для распознавания речи
  • Как мы можем извлечь выгоду из оценки неопределенности?
  • Краткое содержание
  • Обо мне
  • Рекомендации

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

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

Измеряя неопределенность прогнозов, мы потенциально можем:

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

Но как мы можем измерить неопределенность? К счастью, есть несколько подходящих методов оценки неопределенности, которые можно применить к системам ASR. В этой статье мы рассмотрим, как мы можем определить неопределенность и какие методы можно применить к моделям распознавания речи. Наконец, мы узнаем, в каких практических условиях мы можем применять оценку неопределенности к системам ASR.

Что такое неопределенность?

Неопределенность измеряет, насколько уверенно модель делает свои прогнозы [1]. В зависимости от источника неопределенности мы можем разделить ее на два типа: алеаторические и эпистемические.

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

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

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

Методы оценки неопределенности для распознавания речи

В идеале мы хотели бы знать, являются ли выходные данные модели неопределенными для заданных входных данных X. В домене ASR принято определять метод, который выводит оценку S(X) после каждого прогноза модели. Для диапазона значений s₀ и s₁ мы можем определить, являются ли выходные данные модели неопределенными.

Простая пороговая функция, указывающая на неопределенность, Sel(X), может быть определена следующим образом:

где s₀ и s — нижний и верхний пороги соответственно. Значения s₀ и sопределяются в каждом конкретном случае, поскольку они зависят от многих факторов, например. архитектура модели или метод оценки неопределенности.

С помощью этой простой пороговой функции мы можем идентифицировать данные, с которыми борется модель ASR. Основная проблема, однако, заключается в том, что функция оценки S(X) не имеет доступа к достоверным меткам, поскольку мы делаем прогнозы на «живых» данных, которые не имеют маркировки. Следовательно, эти оценочные функции могут вычислять неопределенность только с использованием необработанных выходных данных модели или должны делать предположения о распределении меток достоверности.

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

Максимальная вероятность Softmax (MSP)

Простой подход заключается в оценке неопределенности с использованием распределения softmax модели [2]. Чтобы вычислить оценку S(X), мы можем взять максимальное значение вывода softmax модели.

Но как обобщить этот подход на ASR? В приведенном выше уравнении учитываются только непоследовательные выходные данные ([размер_пакета, количество классов]), что не так, когда мы хотим предсказать все высказывание ([размер_пакета, количество прогнозируемых токены, количество классов]). Нам нужно определить еще одну функцию, которая агрегирует оценку для всего высказывания:

где softmax(Yₜ) — выходное распределение softmax для токена t.

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

ОДИН

У подхода MSP есть несколько недостатков. Модели нейронных сетей, как правило, делают слишком самоуверенные прогнозы по данным вне предметной области (OOD) [3]. Часто они плохо откалиброваны, что означает, что вывод softmax плохо коррелирует с уверенностью в прогнозах [3].

ODIN пытается решить эту проблему, добавляя к входным данным масштабирование температуры и небольшие возмущения [4]. Уравнения очень похожи на подход MSP.

Во-первых, масштабирование температуры используется для калибровки выходных данных softmax, чтобы они лучше соответствовали достоверности прогноза:

где нейронная сеть f=(f₁, …, fₙ) обучена классифицировать N классов. Чтобы получить окончательную оценку S(x), мы можем взять максимальное значение из оценки Si (как в уравнении 2).

В статье [4] авторы отметили, что масштабирование по температуре должно быть достаточно большим, и отметили наилучшую производительность своей модели при T=1000.

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

  1. Вычислите максимальную оценку softmax (уравнение 4 и уравнение 2).
  2. Обратное распространение кросс-энтропийной потери относительно входных данных x
  3. Вычислить градиент относительно входных данных x
  4. Возьмите знак (градиенты), масштабируйте его с помощью эпсилон и вычтите из входных данных x.

Эту процедуру можно объяснить следующим уравнением:

Чтобы применить его к последовательной задаче ASR, мы можем следовать тому же подходу, что и для MSP. Агрегируя его по [no. предсказанные токены] сведет его к числовому показателю.

ГрадНорма

Функция max в MSP и ODIN выбирает одно значение из дистрибутива softmax и игнорирует другие выходные значения. Кроме того, эти методы не учитывают, как входной сигнал распространяется по сети. Все эти методы слепо смотрят на один элемент из финального слоя softmax.

GradNorm [5] подходит к этой проблеме с другой стороны и рассматривает модель целостно. Чтобы вычислить показатель неопределенности, GradNorm смотрит на то, как градиенты распространяются по сети и на конечное выходное распределение.

Основная концепция GradNorm заключается в следующем. Мы предполагаем, что если входные данные X неопределенны, то выходные данные последнего слоя softmax будут (более или менее) равномерно распределены. Если модель уверена в своем прогнозе, то мы увидим всплеск для определенного класса в слое softmax.

Чтобы вычислить неопределенность, мы сначала вычисляем потерю расхождения KL между распределением softmax и равномерным распределением:

Чтобы вычислить окончательную оценку, мы применяем обратное распространение потери расхождения KL, а затем вычисляем величину градиента (p-норму) слоя pₜₕ. В документе они обнаружили, что лучшие оценки вычисляются из самого последнего слоя, поэтому p=1:

Как мы можем извлечь выгоду из оценки неопределенности?

Знание неопределенности прогнозов может быть весьма полезным в практических случаях использования. В этом разделе мы рассмотрим некоторые из наиболее полезных приложений.

Пользовательский ввод поправок

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

Активное изучение

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

В этом случае мы можем вычислить показатели неопределенности и выбрать аудио с определенным желаемым значением S(X). Мы можем взять самые «неопределенные» выборки или выбрать определенный диапазон S(X).

Мониторинг

Развернутая модель ASR может подвергаться воздействию различных аудиосигналов. У них может быть другой шум окружающей среды, жаргон или акцент, которые могут повлиять на производительность модели. Мы надеемся, что, отслеживая оценки неопределенности звука, мы сможем определить, когда производительность модели ухудшается, и принять соответствующие меры. Однако мы все еще в процессе. Сначала нам нужно установить, коррелирует ли производительность модели (в данном случае WER) с неопределенностью.

Краткое содержание

В этой статье мы определили, что такое неопределенность и как мы можем использовать ее в качестве показателя S(X) для измерения уверенности модели в своих прогнозах.

Существуют различные методы вычисления неопределенности. Максимальная вероятность Softmax (MSP) и ODIN вычисляют оценку неопределенности, используя выходные данные softmax. Однако недостатком этих подходов является то, что они слепо смотрят на результаты модели. GradNorm использует другой подход и смотрит как на выходное распределение, так и на то, как градиент распространяется обратно по всей модели.

Наконец, мы рассмотрели потенциальные варианты использования оценки неопределенности.

Кредиты

Я хотел бы поблагодарить Jan-Willem van Leussen, Omar Elbaghdadi и Berend Jutte из Attendi за полезные отзывы и исправления в моей статье.

Обо мне

Я студент магистратуры по искусственному интеллекту в Амстердамском университете. В свободное время вы можете увидеть, как я играю с данными или отлаживаю свою модель глубокого обучения (клянусь, это сработало!). Я тоже люблю пешие прогулки :)

Вот мои другие профили в социальных сетях, если вы хотите оставаться на связи с моими последними статьями и другим полезным контентом:

Рекомендации

[1] Обзор неопределенности в глубоких нейронных сетях

[2] Основы для обнаружения неправильно классифицированных и нераспространяемых примеров в нейронных сетях

[3] О калибровке современных нейронных сетей

[4] Повышение надежности обнаружения изображений вне распространения в нейронных сетях

[5] О важности градиентов для обнаружения сдвигов распределения в дикой природе