Часть 3: Понимание различных подходов

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

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

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

Халк: Привет, я Халк. Я компьютерный инженер, интересующийся структурами данных и алгоритмами. Я работаю в Ампле.

Капитан Америка: Привет, я Капитан Америка. Я разработчик программного обеспечения, интересующийся машинным обучением. Я работаю в Мазоне.

Ironman: Привет, я Ironman. Я исследователь, интересующийся глубоким обучением. Я работаю в Дипкинде.

Ник Фьюри: Теперь, когда мы уладили все формальности, давайте перейдем к медному налогу. Я собрал вас всех здесь, чтобы построить систему, способную решить задачу распознавания речи и преобразования аудио в текст. Теперь вы должны сказать, какие методы вы будете использовать, и кратко объяснить их. Давайте начнем…

Халк: Я создам систему ASR с помощью обычного программирования, т. е. с помощью инструкций. Таким образом, по сути, традиционное программирование = написание пошаговой логики для имитации функции f, чтобы сгенерировать y, удовлетворяющую y = f(x). Я хочу использовать эту технику, потому что она интуитивно понятна и детерминирована.

Капитан Америка: Я создам систему ASR, используя традиционные методы машинного обучения, потому что традиционные методы машинного обучения быстрые, интерпретируемые и ресурсоэффективные.

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

Халк: Я буду читать аудиофайлы и записывать из них тональность, и по тону узнаю, о чем идет речь. Каждый звук был высоким, средним или низким. Пример: «Пять» представляет собой комбинацию Низкий-Высокий-Средний. «Ноль» представляет собой комбинацию Высокий-Средний-Низкий. Микрофон будет подключен к трем аудиофильтрам для высоких, средних и низких частот.

Капитан Америка: Я буду тренировать Скрытую марковскую модель (СММ). Предположим, у меня есть Конечный автомат (FSM), каждый путь которого имеет определенное значение вероятности. Итак, цель состоит в том, чтобы сопоставить последовательность, найдя оптимальную последовательность состояний и оценив параметры модели. И, наконец, эту обученную модель можно использовать для нахождения последовательности состояний при наличии звукового сигнала.

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

Ник Фьюри: Хорошо, вы можете использовать свои подходы, и мы будем тестировать их, как только вы создадите свои системы…

Через некоторое время, когда все устройства были собраны, Ник Фьюри протестировал все системы…

Ник Фьюри: После тестирования всех систем я вижу, что техника, которая превзошла все, была создана Ironman!! Итак, с какой проблемой вы оба (Халк и Капитан Америка) столкнулись при создании системы ASR с использованием ваших подходов?

Халк:

Я столкнулся со следующими проблемами: -

  1. Выяснение перекрывающейся высоты тона и использование логики/правил могут легко стать очень сложными, и это не так-то легко сделать с помощью традиционного программирования.
  2. Вы должны быть исчерпывающими, т. е. вы должны видеть все возможности для решения всех крайних случаев.
  3. На самом деле мы не знаем, как давать инструкции компьютеру, чтобы понять особенно сложную задачу, такую ​​как распознавание образов звуковой волны или понимание предложения. Так как даже для людей эти решения тривиальны, хотя мы не «на самом деле» знаем, как эти решения происходят, поэтому мы не можем поручить компьютеру принять их. С другой стороны, машинное обучение переворачивает обычное программирование с ног на голову.

Капитан Америка тоже не был удовлетворен своими результатами…

Капитан Америка:

Я столкнулся со следующими проблемами: -

  1. Количество параметров, необходимых для настройки HMM, огромно. Для простого HMM с четырьмя состояниями и пятью непрерывными каналами потребуется оценить в общей сложности 50 параметров. 40 параметров являются средними значениями и стандартными отклонениями, которые сами по себе являются агрегированными значениями.
  2. Предположение, что последовательные наблюдения независимы. В действительности последовательные наблюдения редко независимы друг от друга.
  3. Марковское свойство, утверждающее, что вероятность нахождения в заданном состоянии в момент времени t зависит только от состояния в момент времени t-1. Это не всегда относится к звукам речи, где зависимости иногда проходят через несколько состояний.
  4. Это требует высоких знаний для конкретных задач, например. разработать модели состояния для HMM.

Ник Фьюри: Теперь, когда Халк и Капитан Америка рассказали о проблемах, с которыми они столкнулись, можете ли вы (Ironman) вкратце объяснить свой подход? и чем он более выгоден, чем эти другие подходы?

Железный человек:

Для создания этой системы я использовал моделирование на основе глубокого обучения. Во-первых, позвольте мне объяснить, что такое глубокое обучение. Формально глубокое обучение — это класс алгоритмов машинного обучения, который использует несколько уровней для постепенного извлечения высокоуровневых функций из необработанных входных данных. Проще говоря, глубокое обучение — это метод машинного обучения, который учит компьютеры делать то, что естественно для людей: учиться на примере.

Теперь я объясню преимущества использования глубокого обучения в целом…

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

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

3. Лучше, чем человек. Недавние достижения в области глубокого обучения улучшились до такой степени, что глубокое обучение превосходит людей в некоторых задачах, таких как игра в ГО/шахматы, классификация объектов на изображениях. , предсказание рака молочной железы и многое другое….

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

Эта система, основанная на глубоком обучении, состоит из трех слоев — сверточной нейронной сети (CNN), рекуррентной нейронной сети (RNN) и плотной нейронной сети (DNN), как показано на рисунке выше.

Ниже приведены преимущества каждого слоя:

  1. CNN — свертки в частотной и временной областях, применяемые к входным спектральным функциям перед любой другой обработкой, могут немного улучшить производительность ASR. Свертка по частоте пытается смоделировать спектральную дисперсию из-за изменчивости говорящего, что также является еще одной причиной для использования первого слоя в качестве свертки.
  2. RNN — RNN работает лучше, чем глубокая нейронная сеть (DNN) для временного моделирования.
  3. Плотный — плотные слои в конце архитектуры помогают управлять единицами вывода, упрощая адаптацию архитектуры к различным языкам.

Модель обучается с использованием потери временной классификации коннекционистов (CTC) на аннотированных данных. Дополнительные сведения см. в следующем документе:



Шли годы, и Ironman добился множества успехов в этой области.

LAS — внимание к важным функциям с условной зависимостью

Listen, Attend and Spell (LAS) — это система кодирования-декодирования. Он состоит из кодировщика (слушатель внизу) и декодера (спеллер вверху).

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

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

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

Для дальнейшего чтения обратитесь к следующему документу:



WAV2VEC 2.0 — неконтролируемая предварительная подготовка для извлечения признаков

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

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

  1. Кодировщик функций — кодирует информацию об относительном положении.
  2. Модуль квантования — выходные данные кодировщика признаков дискретизируются в конечный набор представлений речи с использованием квантования произведения.
  3. Контекстная сеть — преобразователь добавляет информацию из всей звуковой последовательности.

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

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

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

Для дальнейшего чтения обратитесь к следующему документу:



TDNN — Моделирование долгосрочных временных зависимостей

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

TDNN показала свою эффективность при моделировании долгосрочных временных зависимостей. Это свойство используется в дальнейшем при обучении акустических моделей (AM), которые могут изучать долгосрочные зависимости на основе краткосрочных представлений признаков (MFCC). ).

Для дальнейшего чтения обратитесь к следующему документу:



Time-Depth Separable — система с малой задержкой

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

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

Для дальнейшего чтения обратитесь к следующей статье:



"Прочитайте достаточно, чтобы начать развивать интуицию, а затем доверьтесь своей интуиции и действуйте!"

Проф. Джеффри Хинтон

Соавторы:





Ссылки:

[1.] https://www.ijcaonline.org/archives/volume141/number7/chakraborty-2016-ijca-909693.pdf

[2.] https://medium.com/swlh/this-is-machine-learning-part-1-learning-vs-coding-789343df1e30

[3.] https://medium.com/@manishdharod/how-is-ml-different-from-traditional-programming-938448468684

[4.] https://medium.com/intro-to-artificial-intelligence/deep-learning-series-1-intro-to-deep-learning-abb1780ee20

[5.] https://en.wikipedia.org/wiki/Deep_learning

[6.] https://in.mathworks.com/discovery/deep-learning.html#howitworks

[7.] https://venturebeat.com/2017/12/08/6-areas-where-artificial-neural-networks-outperform-humans/

[8.] https://medium.com/@ageitgey/machine-learning-is-fun-part-6-how-to-do-speech-recognition-with-deep-learning-28293c162f7a

[9.] https://jonathan-hui.medium.com/speech-recognition-deep-speech-ctc-listen-attend-and-spell-d05e940e9ed1