Выбор оптимального алфавита марковских моделей для распознавания речи (отчет)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: '''Введение в проект''' == Описание проекта == === Цель проекта === Цель проекта ― выбор оптимального набор...)
Строка 4: Строка 4:
=== Цель проекта ===
=== Цель проекта ===
-
Цель проекта выбор оптимального набора марковских моделей для распознавания речи.
+
Цель проекта -- выбор оптимального набора марковских моделей для распознавания речи.
=== Обоснование проекта ===
=== Обоснование проекта ===
Строка 26: Строка 26:
== Постановка задачи ==
== Постановка задачи ==
-
== Описание алгоритмов ==
+
'''Вход: '''
-
=== Обзор литературы ===
+
Обучающая выборка <tex>X</tex>, элементы которой <tex>x_i = \{ M, C \}</tex>, где <tex>M</tex> последовательность 12 мел-кепстральных векторов соответствует звуковой реализации фонемы, а <tex>C = \{c_{left}, c_{center}, c_{right} \}</tex> - правый, левый контекст аллофона и центральный элемент.
-
=== Базовые предположения ===
+
Список бинарных вопросов <tex>Q</tex> адресованных к центральному элементу аллофона. Служит множеством элементарных предикатов при построении бинарного дерева.
-
=== Математическое описание ===
+
'''Выход:'''
 +
 
 +
Бинарное дерево скрытых марковских моделей (СММ) аллофонов <tex>T</tex>.
 +
 
 +
'''Функционал качества:'''
 +
 
 +
Логарифм правдоподобия выборки <tex>\{X\}_1^n</tex> относительно модели <tex>\lambda</tex> есть <tex>LL = \sum_{i=1}^n \log P(M_i|\lambda)</tex>
 +
 
 +
'''Критерии останова: '''
 +
 
 +
Приращение <tex>\Delta LL</tex> меньше порога, или число элементов выборки в вершине меньше порогового.
 +
 
 +
 
 +
== Базовые предположения или гипотезы, лежащие в основе алгоритма ==
 +
 
 +
Мы вводим понятие обобщённого (типичного) аллофона, т.е.
 +
В настоящей работе для моделирования спектральной динамики гласных используется скрытая марковская модель СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае гласный разделяется на три отрезка одинаковой длины (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния <tex>Q = 3</tex> и лево-правую матрицу переходных вероятностей <tex>A = \{a_{ij}\}</tex>.
 +
 
 +
==Математическое описание алогритмов==
 +
 
 +
===Обучение скрытой марковской модели (СММ)===
 +
 
 +
'''Составляющие СММ:'''
 +
 
 +
1. <tex>Q</tex> — общее количество состояний в модели. В нашей задаче <tex>Q = 3</tex> Мы обозначим совокупность состояний модели множеством <tex>S = \left\{ S_1, S_2, \ldots S_N \right\}</tex>, а текущее состояние в момент времени <tex>t</tex> как <tex>q_t</tex>.
 +
 
 +
2. Матрица вероятностей переходов <tex>A = \left\{ a_{ij} \right\}</tex>, где
 +
 
 +
<tex>a_{ij} = P \left[ q_{t+1} = S_j | q_t =S_i \right],:: 1 \le i, j \le N,</tex>
 +
 
 +
то есть это вероятность того, что система, находящаяся в состоянии <tex>S_i</tex>, перейдет в состояние <tex>S_j</tex>. В контексте нашей задачи используется лево-правая матрица переходов. То есть <tex>a_{ii} > 0</tex> и <tex>a_{i,i+1} > 0</tex> для <tex>1 \le i \le N-1</tex>. В остальных состояниях вероятность перехода <tex>a_{ii} = 0</tex>.
 +
 
 +
3. <tex>b_i(O) = \sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm}),:: 1 \le i, j \le N</tex>,
 +
 
 +
где <tex>\vec{O}</tex> - моделируемый вектор наблюдений, <tex>c_{jm}</tex> - весовой коэффициент <tex>m</tex>-й компоненты в состоянии <tex>j</tex>.
 +
<tex>N(O, \mu_{jm}, \Sigma_{jm})</tex> - гауссова плотность вероятности с вектором средних значений <tex>\mu_{jm}</tex> и ковариационной матрицей <tex>\Sigma_{jm}</tex>.
 +
У нас используется <tex>M = 6</tex> компонет смеси.
 +
 
 +
4. Распределение вероятностей начального состояния <tex>\pi = \left\{ \pi_i \right\}</tex>, где
 +
<tex>\pi_i = P[q_1 = S_i], 1 \le i \le N, </tex>
 +
то есть вероятность того, что <tex>S_i</tex> это начальное состояние модели.
 +
В нашем случае всегда начинаем с 1-го состояния т.е. <tex>\pi_1 = 1</tex>
 +
 
 +
Совокупность значений <tex>Q,A,B</tex> и <tex>\pi</tex> - это скрытая марковская модель, которая может сгенерировать наблюдаемую последовательность.
 +
 
 +
Для решения задачи обучения СММ требуется подобрать параметры модели <tex>\lambda = (A,B,\pi)</tex> таким образом, чтобы максимизировать <tex>P(O | \lambda)</tex>.
 +
В этой работе используется метод Баума-Уэлча, EM-метод переоценки параметров СММ. Формулы повторного оценивания для коэффициентов <tex>c_{jm}</tex>, <tex>\mu_{jm}</tex> и <tex>\Sigma_{jm}</tex>, составляющих плотности имеют вид.
 +
 
 +
::<tex>\vec{c}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k)}{\sum_{t=1}^T \sum_{k=1}^M \gamma_t(j,k)}</tex>
 +
 
 +
 
 +
::<tex>\vec{\mu}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) O_t}{\sum_{t=1}^T \gamma_t(j,k)}</tex>
 +
 
 +
 
 +
::<tex>\vec{\Sigma}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) (O_t - \mu_{jk})(O_t - \mu_{jk})\prime}{\sum_{t=1}^T \gamma_t(j,k)}</tex>,
 +
 
 +
где штрих означает транспонирование вектора, а <tex>\gamma_t(j,k)</tex> - вероятность того,что (при заданной последовательности наблюдений) в момент времени <tex>t</tex> модель находиться в состоянии <tex>j</tex>, причём наблюдаемый в этот момент вектор <tex>O_t</tex> порождён <tex>k</tex>-й компонентой смеси плотности, т.е.
 +
 
 +
::<tex>\gamma_t(j,k) = \left( \frac{\alpha_t(j) \beta_t(j)}{\sum_{j=1}^N \alpha_t(j) \beta_t(j)} \right) \left( \frac{c_{jk} N(O, \mu_{jm}, \Sigma_{jm})}{\sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm})} \right)</tex>,
 +
 
 +
где <tex>\alpha_t(i) = P(O_1 O_2 \ldots O_t, q_t = S_i|\lambda)</tex> - прямая переменная, а <tex>\beta_t(i) = P(O_{t+1} O_{t+2} \ldots O_t, q_t = S_i|\lambda)</tex> - обратная переменная.
 +
 
 +
===Алгоритм построения решающего дерева ID3===
 +
 
 +
В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Идея заключается в последовательном дроблении выборки на две части до тех пор, пока дальнейшее расщепление не перестанет давать достаточное приращение информативности.
 +
 
 +
Процедура LearnID3 выглядит следующим образом
 +
 
 +
'''Вход:'''
 +
 
 +
<tex>U</tex> - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме;
 +
 
 +
<tex>Q</tex> - множество вопросов к контесту фонемы, ращепляющих выборку на 2 класса.
 +
 
 +
'''Выход:'''
 +
 
 +
возвращает корневую вершину дерева
 +
 
 +
#
 +
# найти предикат с максимальной информативностью: <tex>q = \arg\max_{q\in Q} I(q,U)</tex>
 +
# разбить выборку на две части <tex>U = U_0 \cup U_1</tex> по предикату <tex>q</tex>;
 +
# eсли (<tex>U_0 = 0 <tex> или <tex>U_1 = 0 <tex>) или <tex>I(q,U)</tex> \leq <tex>I_0</tex> то
 +
# ::создать новый лист <tex>v</tex>.
 +
# иначе
 +
#:: создать новую вершину <tex>v</tex>;
 +
#:: <tex>L_v = LearnID3(U_0)</tex>; (построить левое поддерево)
 +
#:: <tex>L_r = LearnID3(U_1)</tex>; (построить правое поддерево)
 +
# вернуть <tex>(v)</tex>
 +
 
 +
Для построения полного дерева рекурсивная процедура LearnID3 применяется ко всей выборке.
 +
В качаестве критерия ветвления используется максимум приращения логарифма правдоподобия <tex>\Delta LL = (LL_l + LL_r) - LL_p</tex>, где <tex>LL_p</tex> - логарифм правдоподобия родительской вершины, а <tex>LL_l</tex> и <tex>LL_r</tex> - логарифм правдоподобия левой и правой дочерней вершин соответственно. Логарифм правдоподобия выборки <tex>\{X\}_1^n</tex> относительно СММ <tex>\lambda</tex> есть <tex>LL = \sum_{i=1}^n \log P(M_i|\lambda)</tex> считается алгоритмом прямого-обратного хода.
 +
 
 +
Множество вопросов к контексту фонемы (элементарных предикатов) <tex>Q</tex> задается шаблоном:
 +
left-center+right,
 +
где left и right - левый и правый контекст, а center - сама фонема. Например вопрос выделяющий все гласные:
 +
*-ALL_VOWELS+*.
 +
 
 +
Предредукция или критерий раннего останова досрочно прекращает ветвление, если максимальное приращение информативности <tex>I(q,U)</tex> меньше порогового <tex>I_0</tex>.
=== Варианты или модификации ===
=== Варианты или модификации ===

Версия 18:58, 22 февраля 2010

Введение в проект

Описание проекта

Цель проекта

Цель проекта -- выбор оптимального набора марковских моделей для распознавания речи.

Обоснование проекта

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

Описание данных

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

Критерии качества

Критерием качества служит логарифм правдоподобия контрольной выборки относительно модели.

Требования к проекту

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

Выполнимость проекта

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

Используемые методы

В данной работе для статистического моделирования спектральной динамики гласных и согласных звуков применяется скрытая марковская модель (СММ) из 3-х последовательных состояний. Классификация аллофонов осуществляется с помощью бинарных деревьев. Для построения бинарного дерева решений разработан набор вопросов, зависящих от контекста и адресованных к центральному элементу аллофона.

Постановка задачи

Вход:

Обучающая выборка X, элементы которой x_i = \{ M, C \}, где M последовательность 12 мел-кепстральных векторов соответствует звуковой реализации фонемы, а C = \{c_{left}, c_{center}, c_{right} \} - правый, левый контекст аллофона и центральный элемент.

Список бинарных вопросов Q адресованных к центральному элементу аллофона. Служит множеством элементарных предикатов при построении бинарного дерева.

Выход:

Бинарное дерево скрытых марковских моделей (СММ) аллофонов T.

Функционал качества:

Логарифм правдоподобия выборки \{X\}_1^n относительно модели \lambda есть LL = \sum_{i=1}^n \log P(M_i|\lambda)

Критерии останова:

Приращение \Delta LL меньше порога, или число элементов выборки в вершине меньше порогового.


Базовые предположения или гипотезы, лежащие в основе алгоритма

Мы вводим понятие обобщённого (типичного) аллофона, т.е. В настоящей работе для моделирования спектральной динамики гласных используется скрытая марковская модель СММ, которая позволяет представить звук в виде последовательных состояний, соотносимых счленением звука на сегменты (субаллофоны). Внашем случае гласный разделяется на три отрезка одинаковой длины (начальный и конечный формантные переходы плюс вокалическое ядро). Поэтому СММ имеет три состояния Q = 3 и лево-правую матрицу переходных вероятностей A = \{a_{ij}\}.

Математическое описание алогритмов

Обучение скрытой марковской модели (СММ)

Составляющие СММ:

1. Q — общее количество состояний в модели. В нашей задаче Q = 3 Мы обозначим совокупность состояний модели множеством S = \left\{ S_1, S_2, \ldots S_N \right\}, а текущее состояние в момент времени t как q_t.

2. Матрица вероятностей переходов A = \left\{ a_{ij} \right\}, где

a_{ij} = P \left[ q_{t+1} = S_j | q_t =S_i \right],:: 1 \le i, j \le N,

то есть это вероятность того, что система, находящаяся в состоянии S_i, перейдет в состояние S_j. В контексте нашей задачи используется лево-правая матрица переходов. То есть a_{ii} > 0 и a_{i,i+1} > 0 для 1 \le i \le N-1. В остальных состояниях вероятность перехода a_{ii} = 0.

3. b_i(O) = \sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm}),:: 1 \le i, j \le N,

где \vec{O} - моделируемый вектор наблюдений, c_{jm} - весовой коэффициент m-й компоненты в состоянии j. N(O, \mu_{jm}, \Sigma_{jm}) - гауссова плотность вероятности с вектором средних значений \mu_{jm} и ковариационной матрицей \Sigma_{jm}. У нас используется M = 6 компонет смеси.

4. Распределение вероятностей начального состояния \pi = \left\{ \pi_i \right\}, где \pi_i = P[q_1 = S_i],      1 \le i \le N,     то есть вероятность того, что S_i это начальное состояние модели. В нашем случае всегда начинаем с 1-го состояния т.е. \pi_1 = 1

Совокупность значений Q,A,B и \pi - это скрытая марковская модель, которая может сгенерировать наблюдаемую последовательность.

Для решения задачи обучения СММ требуется подобрать параметры модели \lambda = (A,B,\pi) таким образом, чтобы максимизировать P(O | \lambda). В этой работе используется метод Баума-Уэлча, EM-метод переоценки параметров СММ. Формулы повторного оценивания для коэффициентов c_{jm}, \mu_{jm} и \Sigma_{jm}, составляющих плотности имеют вид.

\vec{c}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k)}{\sum_{t=1}^T \sum_{k=1}^M  \gamma_t(j,k)}


\vec{\mu}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) O_t}{\sum_{t=1}^T  \gamma_t(j,k)}


\vec{\Sigma}_{jk} = \frac{\sum_{t=1}^T \gamma_t(j,k) (O_t - \mu_{jk})(O_t - \mu_{jk})\prime}{\sum_{t=1}^T \gamma_t(j,k)},

где штрих означает транспонирование вектора, а \gamma_t(j,k) - вероятность того,что (при заданной последовательности наблюдений) в момент времени t модель находиться в состоянии j, причём наблюдаемый в этот момент вектор O_t порождён k-й компонентой смеси плотности, т.е.

\gamma_t(j,k) =  \left( \frac{\alpha_t(j) \beta_t(j)}{\sum_{j=1}^N \alpha_t(j) \beta_t(j)} \right) \left( \frac{c_{jk} N(O, \mu_{jm}, \Sigma_{jm})}{\sum_{m=1}^M c_{jm} N(O, \mu_{jm}, \Sigma_{jm})}  \right),

где \alpha_t(i) = P(O_1 O_2 \ldots O_t, q_t = S_i|\lambda) - прямая переменная, а \beta_t(i) = P(O_{t+1} O_{t+2} \ldots O_t, q_t = S_i|\lambda) - обратная переменная.

Алгоритм построения решающего дерева ID3

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

Процедура LearnID3 выглядит следующим образом

Вход:

U - выборка из последовательностей мел-кепстральных векторов соответсвующих фонеме;

Q - множество вопросов к контесту фонемы, ращепляющих выборку на 2 класса.

Выход:

возвращает корневую вершину дерева

  1. найти предикат с максимальной информативностью: q = \arg\max_{q\in Q} I(q,U)
  2. разбить выборку на две части U = U_0 \cup U_1 по предикату q;
  3. eсли (U_0 = 0 <tex> или <tex>U_1 = 0 <tex>) или <tex>I(q,U) \leq I_0 то
  4.  ::создать новый лист v.
  5. иначе
    создать новую вершину v;
    L_v = LearnID3(U_0); (построить левое поддерево)
    L_r = LearnID3(U_1); (построить правое поддерево)
  6. вернуть (v)

Для построения полного дерева рекурсивная процедура LearnID3 применяется ко всей выборке. В качаестве критерия ветвления используется максимум приращения логарифма правдоподобия \Delta LL = (LL_l + LL_r) - LL_p, где LL_p - логарифм правдоподобия родительской вершины, а LL_l и LL_r - логарифм правдоподобия левой и правой дочерней вершин соответственно. Логарифм правдоподобия выборки \{X\}_1^n относительно СММ \lambda есть LL = \sum_{i=1}^n \log P(M_i|\lambda) считается алгоритмом прямого-обратного хода.

Множество вопросов к контексту фонемы (элементарных предикатов) Q задается шаблоном:

 left-center+right,

где left и right - левый и правый контекст, а center - сама фонема. Например вопрос выделяющий все гласные:

 *-ALL_VOWELS+*.

Предредукция или критерий раннего останова досрочно прекращает ветвление, если максимальное приращение информативности I(q,U) меньше порогового I_0.

Варианты или модификации

Описание системы

  • Ссылка на файл system.docs
  • Ссылка на файлы системы

Отчет о вычислительных экспериментах

Визуальный анализ работы алгоритма

Анализ качества работы алгоритма

Анализ зависимости работы алгоритма от параметров

Отчет о полученных результатах

Список литературы

Данная статья является непроверенным учебным заданием.
Студент: Участник:Дорофеев Данила
Преподаватель: Участник:В.В. Стрижов
Срок: 15 декабря 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Личные инструменты