МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
На правах рукописи УДК 50.10.41 ...
9 downloads
153 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
На правах рукописи УДК 50.10.41
САПУНОВ Григорий Владимирович
СИСТЕМА АВТОМАТИЧЕСКОГО РАСПОЗНАВАНИЯ РЕЧЕВЫХ КОМАНД ДЛЯ ПАРАЛЛЕЛЬНЫХ АРХИТЕКТУР
05.13.05 - “ Элементы и устройства вычислительной техники и систем управления ”
Диссертация на соискание ученой степени кандидата технических наук
Научный руководитель: проф., д.т.н. Петров Геннадий Михайлович
Москва – 2005
Оглавление ОГЛАВЛЕНИЕ ................................................................................................................................................... 2 АННОТАЦИЯ..................................................................................................................................................... 4 ВВЕДЕНИЕ ......................................................................................................................................................... 5 ГЛАВА 1. АНАЛИЗ ОСНОВНЫХ ПРОБЛЕМ ПРИМЕНЕНИЯ СКРЫТЫХ МАРКОВСКИХ МОДЕЛЕЙ В СИСТЕМАХ РАСПОЗНАВАНИЯ РЕЧИ.............................................................................. 12 1.1 ЧТО ТАКОЕ МАРКОВСКАЯ МОДЕЛЬ .................................................................................................................. 15 1.2 СКРЫТАЯ МАРКОВСКАЯ МОДЕЛЬ (СММ) ........................................................................................................ 16 1.3 ОСНОВНЫЕ ЗАДАЧИ ПРИ ПРИМЕНЕНИИ СММ К РАСПОЗНАВАНИЮ РЕЧИ ......................................................... 18 1.4 ТИПЫ СММ, ПРИМЕНЯЕМЫЕ В СИСТЕМАХ РАСПОЗНАВАНИЯ РЕЧИ ................................................................. 21 1.5 ПОДХОДЫ К РЕШЕНИЮ ОСНОВНЫХ ЗАДАЧ СММ ............................................................................................ 24 1.5.1 Задача 1. Эффективное вычисление вероятности генерации заданной последовательности...... 24 1.5.2 Задача 2. Отыскание оптимальной последовательности состояний............................................ 27 1.5.3 Задача 3. Обучение СММ тестовыми последовательностями ...................................................... 28 1.6 ВЫВОДЫ ......................................................................................................................................................... 30 ГЛАВА 2. СРАВНИТЕЛЬНАЯ ОЦЕНКА МЕТОДОВ ОПТИМИЗАЦИИ В ЗАДАЧЕ ОБУЧЕНИЯ СММ .................................................................................................................................................................. 31 2.1 СХЕМА ПРОЦЕССА ПРИНЯТИЯ РЕШЕНИЯ КАК ЗАДАЧИ ПОИСКА ........................................................................ 31 2.2 ТРАДИЦИОННЫЕ МЕТОДЫ ПОИСКА ОПТИМАЛЬНЫХ РЕШЕНИЙ И ИХ ПРИЛОЖЕНИЕ К ЗАДАЧЕ ОБУЧЕНИЯ СММ 33 2.2.1 Методы, основанные на математических вычислениях................................................................. 33 2.2.2 Перечислительные методы.............................................................................................................. 34 2.2.3 Методы, использующие элементы случайности............................................................................. 36 2.3 КОНЦЕПЦИЯ ЭВОЛЮЦИОННЫХ ВЫЧИСЛЕНИЙ ................................................................................................. 36 2.4 ОСНОВЫ ТЕОРИИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (ГА)...................................................................................... 39 2.5 ПОСЛЕДОВАТЕЛЬНОСТЬ РАБОТЫ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ....................................................................... 41 2.6 ВЫЧИСЛИТЕЛЬНАЯ ЭФФЕКТИВНОСТЬ ПРИМЕНЕНИЯ ГА. ТЕОРЕМА СХЕМ ........................................................ 45 2.7 ВЫВОДЫ ......................................................................................................................................................... 52 ГЛАВА 3. РЕАЛИЗАЦИЯ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ РЕШЕНИЯ ЗАДАЧИ ОПТИМИЗАЦИИ СММ .................................................................................................................................. 54 3.1 СИСТЕМА РАСПОЗНАВАНИЯ РЕЧЕВЫХ КОМАНД НА ОСНОВЕ СММ .................................................................. 54 3.2 ПОСТРОЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ ОПТИМИЗАЦИИ ПРОЦЕССА ОБУЧЕНИЯ СММ ТРЕНИРОВОЧНЫМИ ПОСЛЕДОВАТЕЛЬНОСТЯМИ .................................................................................................... 55 3.2.1 Кодирование хромосомы .................................................................................................................. 55 3.2.2 Создание исходной популяции .......................................................................................................... 59 3.2.3 Размер популяции ............................................................................................................................. 64 3.2.4 Генетические операторы: оператор отбора.................................................................................. 66 3.2.5 Генетические операторы: оператор скрещивания ......................................................................... 66 3.2.6 Генетические операторы: оператор мутации ............................................................................... 69 3.2.7 Генетические операторы: оператор редукции ............................................................................... 73 3.2.8 Критерий останова алгоритма....................................................................................................... 74 3.3 ВЫВОДЫ ......................................................................................................................................................... 78 ГЛАВА 4. ИССЛЕДОВАНИЕ ЭФФЕКТИВНОСТИ ОПТИМИЗАЦИИ СММ С ИСПОЛЬЗОВАНИЕМ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ............................................................................................................... 81 4.1 СРАВНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ С ТРАДИЦИОННЫМИ МЕТОДАМИ ................................................... 81 4.1.1 Метод Баума-Велча.......................................................................................................................... 81 4.1.2 Случайный поиск............................................................................................................................... 90 4.2 ПОКАЗАТЕЛИ ЭФФЕКТИВНОСТИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ........................................................................ 93 4.2.1 Скорость работы генетического алгоритма ................................................................................. 93 4.2.2 Средства повышения скорости работы генетических алгоритмов .............................................. 95 4.2.3 Устойчивость работы генетического алгоритма ......................................................................... 96 4.2.4 Средства повышения устойчивости работы генетических алгоритмов ...................................... 98 4.3 НАПРАВЛЕНИЯ РАЗВИТИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ................................................................................. 99
4.3.1 Использование комбинированной фитнес-функции......................................................................... 99 4.3.2 Адаптивный ГА................................................................................................................................. 99 4.4 ВЫВОДЫ ....................................................................................................................................................... 102 ВЫВОДЫ И ЗАКЛЮЧЕНИЕ ....................................................................................................................... 105 ЛИТЕРАТУРА................................................................................................................................................ 108 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ ..................................................................................................................... 114 ПРИЛОЖЕНИЕ 1. ОПИСАНИЕ ПРОГРАММНОГО КОМПЛЕКСА ДЛЯ ИЗУЧЕНИЯ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ. ............................................................................................................ 116 СТРУКТУРА И ФУНКЦИОНИРОВАНИЕ ПРОГРАММЫ .............................................................................................. 116 НАЗНАЧЕНИЕ МОДУЛЕЙ ПРОГРАММЫ ................................................................................................................. 118 VCL .......................................................................................................................................................... 118 АЦП ......................................................................................................................................................... 119 Таксоном.................................................................................................................................................. 119 DSP .......................................................................................................................................................... 119 ГА............................................................................................................................................................. 120 Настройка системы генетических алгоритмов .................................................................................... 120 ПОРЯДОК РАБОТЫ С ПРОГРАММОЙ ..................................................................................................................... 123 Сохранение настроек.............................................................................................................................. 123 Загрузка настроек................................................................................................................................... 123 Диктовка слов ......................................................................................................................................... 123 Чтение WAV-файла................................................................................................................................. 124 Создание новой модели ........................................................................................................................... 124 ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТАЛЬНОЙ ПРОВЕРКИ КОМПЛЕКСА НА ПЭВМ. .......................................................................................................................................................................... 126
3
Аннотация Целью диссертационной работы является повышение эффективности работы современных систем управления, использующих системы автоматического распознавания речевых команд на основе скрытых марковских моделей (СММ). При фиксированной на сегодняшний день аппаратной базе подобных систем распознавания и, учитывая тенденции её развития в ближайшем будущем (переход к параллельным архитектурам), рассматривается один из наиболее важных блоков таких систем – блок обучения СММ тренировочными последовательностями. От успешного решения им задачи обучения марковской модели напрямую зависит качество работы системы распознавания. В задаче обучения СММ на данный момент есть две серьёзные проблемы: стандартные методы её решения (метод Баума-Велча или ЕМ-процедура) являются методами локальной оптимизации, (то есть, не способны выйти за пределы локальных экстремумов функции) и сильно зависимы от стартовых параметров. В поисках решения данной задачи в работе проводится исследование эффективности применения аппарата генетических алгоритмов (ГА) для оптимизации процесса обучения СММ тренировочными последовательностями. Акцент сделан на русскоязычных системах распознавания речевых команд. Для достижения поставленной цели в работе решены следующие основные задачи: •
Исследованы возможности применения ГА для оптимизации процесса обучения СММ тренировочными последовательностями.
•
Разработан ГА, предназначенный для работы со скрытыми марковскими моделями речевых команд (рассмотрены альтернативы и выбрана схема кодирования хромосом, реализованы генетические операторы, определены наиболее эффективные значения параметров ГА).
•
Исследована эффективность оптимизации обучения СММ с помощью ГА (произведено сравнение ГА с традиционными методами оптимизации обучения СММ и изучено влияние параметров ГА на эффективность этого процесса).
•
Разработаны методы, направленные на дальнейшее повышение эффективности и качества работы ГА в контексте рассматриваемой задачи.
•
Автором создан программно-аппаратный комплекс для исследования генетических алгоритмов на основе системы распознавания команд, использующей аппарат скрытого марковского моделирования и кепстральную предобработку речевого сигнала, разработанной на кафедре ЭВА МИЭМ.
4
Введение Работы в области систем распознавания речи имеют уже довольно долгую историю. В Советском Союзе работы по компресии речи начались в начале 50-х годов, а по автоматическому распознаванию – в конце 50-х годов. При этом следует отметить, что первая в мире система автоматического распознавания речи была продемонстрирована в 1939 году в Ленинградском Государственном Университете Л.Л.Мясниковым. В 70-х годах в разработке речевых систем начали активно выходить вперёд США, тем не менее уровень теоретических и приладных разработок в СССР и США до середины 80-х годов оставался приблизительно одинаковым. С середины 80-х годов значительная часть речевых разработок в нашей стране была прекращена, и в настоящее время помимо США в области речевых технологий активно и очень успешно работает ещё ряд стран (ЕС, Япония, Канада, Австралия). [10] Но в нынешний момент происходит процесс восстановления интереса к этой области и в нашей стране, и на рынке появляются отечественные разработки, например, системы SPIRIT [89] и Sakrament [85]. В настоящее время работы по распознаванию речи не только не потеряли актуальности, но и развиваются широким фронтом, находя для себя множество областей для практического применения. Сейчас можно выделить 4 сравнительно изолированных направления в области развития речевых технологий [9]: 1. Распознавание речи – т.е. преобразование речевого акустического сигнала в цепочку символов, слов. Эти системы могут быть охарактеризованы по ряду параметров. Прежде всего это объём словаря: малые объёмы до 20 слов, большие – тысячи и десятки тысяч. Количество дикторов: от одного до произвольного. Стиль произнесения: от изолированных команд до слитной речи и от чтения до спонтанной речи. Коэффициент ветвления, т.е. величина, определяющая количество гипотез на каждом шаге распознавания: от малых величин (30 дб) до низких ( 0. Для других случаев aij может быть равной 0 для одной или нескольких пар i и j. 4) B = {bj(k)} – распределение вероятностей наблюдаемых символов в состоянии j,
17
где b j(k) = P[vk|qt=Sj], 1≤j≤N,1≤k≤M (для непрерывного случая b j ( k ) задается как функция распределения плотности вероятности). 5) П ={Пi} – вероятность каждого начального состояния, где Пi = P[q1=Si],1≤i≤N. Таким образом, задав значения N,M,A,B и П для СММ, ее можно использовать как генератор последовательностей следующим образом: 1)
Руководствуясь распределением вероятностей начальных состояний П, выбирается начальное состояние q1 = Si.
2)
Устанавливается t = 1.
3)
Руководствуясь распределением вероятностей символов в состоянии Si (т.е., bi(k)), выбирается Ot = vk.
4)
Переходим в новое состояние qt+1 = Sj, руководствуясь матрицей вероятностей переходов для состояния Si, т.е. aij.
5)
Устанавливаем t = t + 1 и возвращаемся к шагу 3).
6)
Повторяем процедуру, пока не наберем последовательность нужной длины.
Как видно из сказанного выше материала, для полного определения СММ необходимо задать два параметра наблюдаемых символов (M и N), и три вероятностных величины A, B и П. Для компактности условимся записывать последние как: λ=(A,B,П).
(1.4)
1.3 Основные задачи при применении СММ к распознаванию речи Для использования СММ при распознавании речи необходимо решить три задачи [83]. Задача 1: Если заданы последовательность наблюдений O = O1, O2, . . . OT и модель λ =(A,B,П), то как эффективно вычислить P(O|λ) – вероятность такой последовательности при заданных параметрах модели? Задача 2: Если заданы последовательность наблюдений O = O1, O2, . . . OT и модель λ =(A,B,П), то как определить соответствующую последовательность внутренних состояний Q = q 1, q2 ... q T? Задача 3: Как определить параметры модели λ=(A,B,П), исходя из критерия максимизации P(O|λ)? Очевидно, что решение первой задачи позволит эффективно распознавать элементы речи из некоторого ограниченного набора, имея готовые, уже обученные модели этих
18
элементов. В этом случае произнесенное слово оцифровывается и после сегментации на определенные элементы, например, фреймы – участки фиксированной длины, рассматривается как набор последовательностей наблюдений. Вместо непосредственно оцифрованного речевого сигнала системы распознавания речи обычно работают с неким набором признаков (меньшим по объёму), достаточно хорошо характеризующим речевой сигнал (спектральные коэффициенты, кепстральные коэффициенты, коэффициенты линейного предсказания и другие). Этот этап называется предобработкой речевого сигнала. Затем каждая последовательность наблюдений, представляющая собой неизвестное слово, проверяется на соответствие всем имеющимся в словаре моделям слов. Для этого вычисляется вероятность генерации такой последовательности наблюдений каждой из имеющихся в словаре моделей. Слово, модель которого с наибольшей вероятностью генерирует такую последовательность наблюдений, и является результатом распознавания. Решение второй задачи позволяет выявлять «скрытую» часть модели, т.е. находить её внутренние состояния. В действительности определить ту последовательность состояний, которая имела место, невозможно, а в случае с распознаванием речи такой последовательности просто нет, поскольку считается, что модель речеобразования человека не носит стохастический характер. Тем не менее, нахождение оптимальной последовательности дает нам дополнительный критерий сравнения при поиске оптимальной модели и позволяет выявлять статистические характеристики конкретных состояний модели. Решение третей задачи позволяет обучать модели, т.е. вычислять параметры модели так, чтобы она наилучшим образом описывала так называемые «тренировочные» последовательности. Задача тренировки моделей считается самой сложной при использовании СММ в системах распознавания, так как неизвестно единственного и универсального способа её решения, а от результата обучения моделей зависит качество работы системы распознавания. Поэтому решению этой задачи уделяется особое внимание. Для примера рассмотрим простой распознаватель речи для изолированных слов на основе СММ (распознаватель речевых команд, рис. 1.3):
19
Рис. 1.3 Схема распознавателя команд на основе СММ
Для каждого слова из словаря мы хотим создать собственную СММ из N состояний. Для этого представляем речевой сигнал полученного слова как временную последовательность кодированных спектральных векторов (если в качестве метода предобработки речевого сигнала выбраны спектральные коэффициенты), считая, что кодирование проводится с использованием спектральной кодовой книги объёмом в M уникальных спектральных векторов, и каждое наблюдение записывается индексом спектрального вектора, оказавшегося наиболее близким к исходному сигналу. Эта процедура называется векторным квантованием. [92] В результате для каждого слова из словаря мы имеем тренировочную последовательность (для одного или более дикторов), состоящую из индексов кодовой книги. Первым делом надо построить модели изолированных слов. Этому посвящено решение задачи №3 для оптимального оценивания параметров модели каждого слова. Для получения понимания физического значения состояний модели используется решение задачи №2. И, наконец, когда набор СММ создан, оптимизирован и исследован, распознавание неизвест-
20
ного слова производится, используя решение задачи №1 – по данной последовательности наблюдений оцениваются все модели из словаря системы и из них отбирается та, значение вероятности генерации которой данной последовательности наблюдений максимально (рис. 1.3), то есть максимально правдоподобная. При увеличении размера словаря, с которым работает система распознавания, задача оптимизации имеющихся моделей становится особенно актуальной, так как у большего количества моделей слов есть шанс сгенерировать близкие по значению вероятности, что отрицательно скажется на точности распознавания.
1.4 Типы СММ, применяемые в системах распознавания речи До сих пор мы рассматривали только специальный случай так называемой эргодической или полносвязной СММ, в которой каждое состояние модели за один шаг может быть достигнуто из любого другого состояния. (Строго говоря, эргодическая модель обладает таким свойством, что каждое состояние может быть достигнуто из любого другого состояния за конечное число шагов). Этот тип моделей имеет то свойство, что каждый коэффициент aij матрицы вероятностей переходов положителен. Такая модель была изображена на рис.1.2. Для некоторых же приложений, в особенности связанных с распознаванием речи, находят применение другие типы СММ, лучше описывающие наблюдаемые свойства моделируемого речевого сигнала, чем стандартная эргодическая модель. Одна из таких моделей называется моделью слева-направо (left-right model) или моделью Бэйкиса (Bakis model), поскольку последовательность состояний, лежащая в основе модели имеет то свойство, что с течением времени индекс состояния (его порядковый номер) также увеличивается (или остаётся тем же). То есть состояния на оси времени идут слева-направо. Очевидно, что такая модель имеет желаемое свойство: она легко моделирует сигналы, свойства которых изменяются со временем, например, речь. Ещё более частный случай СММ – частный случай моделей «слева-направо» – это модели с поступательно-ограниченными переходами. Особенность поступательноограниченных переходов в том, что они могут осуществляться не более чем на заданное число состояний вперёд (часто не более чем на два, как это указано на рис.1.4).
21
Рис. 1.4. Модель «слева-направо»
Основное свойство моделей «слева-направо» в том, что коэффициенты переходов удовлетворяют условию: Aij = 0, j < i
(1.5)
То есть, переходы в состояния с индексом меньше, чем у текущего состояния, недопустимы. Кроме того, вероятности начальных состояний имеют свойство: 0, i ≠ 1 Пi = 1, i = 1
(1.6)
Иначе говоря, последовательность должна начинаться с состояния 1 (и оканчиваться в состоянии N). Хотя мы и особо выделили эргодические модели и модели «слева-направо», существует множество других типов СММ, например модель с параллельными путями (рис.1.5). Строго говоря, это тоже модель «слева-направо», поскольку она удовлетворяет тем же условиям, но у неё есть и особенность в виде наличия двух параллельных путей. По сути, это объединение двух моделей с поступательно-ограниченными переходами.
Рис. 1.5. Модель с параллельными путями
Применительно к речи это означает, что такая СММ моделирует возможную вариативность речевого сигнала, которая может иметь место в случае работы, например, с диктором, находящимся в условиях стресса, из-за чего изменяются особенности произнесения им фонем, или при работе с несколькими дикторами, различающимися особенностями произнесения тренировочного слова, потому что в этом случае в модели есть несколько альтернативных путей для той части слова, которая произносится по-разному различными людьми или одним человеком от случая к случаю. Такая модель учитывает вышеперечисленные особенности произнесения и придаёт дополнительную гибкость
22
использующим её приложениям. Выше мы рассматривали только случаи моделей, когда наблюдения характеризуются дискретными символами из конечного алфавита и потому могли использовать дискретную плотность вероятности для каждого состояния модели. Однако в реальности (по крайней мере, для некоторых приложений) наблюдения являются непрерывными сигналами (или векторами). В этом случае необходимо использовать СММ с непрерывными плотностями вероятностей. Такие СММ используются при работе в системах распознавания, использующих спектральные коэффициенты или кепстральную предобработку речевого сигнала. Общая формулировка СММ с непрерывными плотностями вероятностей применима к широкому классу задач, но существует ещё один очень интересный класс СММ, дающий хорошие результаты именно применительно к системам распознавания речи. Речь идёт об авторегрессионных СММ. Для данного типа СММ вектора наблюдений получаются из авторегрессионного процесса. То есть компоненты вектора наблюдений имеют вид: p
Ok = − ∑ a i O k − i + e k ,
(1.7)
i =1
где ek (k=0,1,2,…,K-1) – гауссовская независимая равномерно распределённая случайная величина с нулевым матожиданием и дисперсией σ 2 , а a i (i=1,2, …, p) – коэффициенты авторегрессии или предсказания. Поскольку традиционные СММ плохо моделируют продолжительность состояния (для этого приходится последовательно включать в модель несколько одинаковых состояний или повышать вероятность перехода системы из данного состояния в само себя), то в них приходится явно вводить плотность продолжительности состояния и запрещать переходы модели из любого состояния в само себя. Такая СММ носит название «СММ с длительностью состояний». На практике в системах распознавания речи это может быть полезно для того, чтобы учесть разницу в длительности произнесения различных фонем (например, в русском языке такие взрывные звуки как [п], [б] имеют значительно меньшую длительность, чем тоновые [а] или [о]). Также существуют СММ, в которых наблюдения являются дугами графа, а не узлами модели, как было во всех ранее рассмотренных случаях. Такой тип моделей активно использовался в распознавателе непрерывной речи, который разрабатывала компания IBM [83]. Для этого типа моделей оказалось полезным разрешить переходы модели, не произ-
23
водящие выходного значения (т.н. нулевой переход – переход из одного состояния в другое, не генерирующий наблюдения). Такой метод даёт простой и эффективный способ для описания особенностей произнесения и дефектов речи, выражающихся в пропуске отдельных звуков.
1.5 Подходы к решению основных задач СММ 1.5.1 Задача 1. Эффективное вычисление вероятности генерации заданной последовательности Как уже указывалось эта задача связана с необходимостью вычислить вероятность последовательности наблюдений O = O1, O2, ... OT при заданных параметрах модели λ, т.е., P(O|λ). Самый прямой метод вычисления этой вероятности состоит в вычислении суммы вероятностей всех возможных последовательностей состояний. Рассмотрим одну из таких возможных последовательностей: Q = q 1 q2 q3 ... q T. Вероятность последовательности наблюдений O при заданной последовательности состояний вычисляется как T
P ( O| Q , λ ) = ∏ P ( O t | q t , λ ) ;
(1.8)
t =1
или
P(O|Q, λ ) = bq 1 (O1 ) ⋅ b q 2 (O2 ) ⋅ ⋅⋅ b q T (OT ) .
(1.9)
Вероятность такой последовательности состояний может быть записана как
P (Q | λ ) = П q1 a q1q 2 a q 2 q 3 ⋅ ⋅ ⋅ a qT −1qT .
(1.10)
Совместная вероятность O и Q, вычисляется как произведение приведенных выше вероятностей:
P (O , Q | λ ) = P ( O | Q , λ ) P ( Q , λ )
(1.11)
Вероятность O, таким образом, вычисляется как сумма совместных вероятностей по всем возможным последовательностям состояний q
P (O | λ ) = ∑ P (O | Q, λ ) P (Q | λ ) = allQ
∑П
q1 , q 2 , ⋅⋅⋅, qT
b (O1 )aq1q2 bq2 (O2 ) ⋅ ⋅ ⋅ aqT −1qT bqT (QT )
q1 q1
(1.12)
Нетрудно подсчитать, что количество операций умножения, необходимых для вычисления этой суммы, равняется 2TNT. Т.е., если модель имеет пять состояний (N=5) и последовательность наблюдений имеет длину сто (T=100), то количество арифметических операций равно 2*100*5 100≈1072.
24
Однако существует более эффективный метод вычисления вероятности O. Он называется процедурой Forward-Backward и состоит в следующем: Вводится переменная αt(i), определяемая как
α t (i ) = P (O 1O 2 ⋅ ⋅ ⋅ O t , q t = S i | λ ) .
(1.12)
Назовем ее «прямой» переменной, которая представляет собой вероятность появления для данной модели частичной последовательности наблюдений, O1 O2 ... Ot, (до момента времени t и состояния Si) при заданных параметрах модели λ. Можно индуктивно определить эту прямую переменную как 1) инициализация: α 1 (i ) = П i b i (O1 ), 1≤ i ≤ N
;
(1.13)
2) индукция: α
N j = ∑ α t+1 ( ) i=1
j ( O t + 1 ), 1 ≤ t ≤ T − 1, ; 1 ≤ j ≤ N
(i )a ij b
t
(1.14)
3) завершение: N
P( O|λ ) = ∑ α T ( i) .
(1.15)
i =1
При этом шаг 1) инициализирует прямые переменные совместными вероятностями состояний Si и начальных наблюдений O1. Индуктивный шаг 2) является сердцем процедуры, он проиллюстрирован на рис. 1.6
S1
a1j
S2
a2j
S3
a3j
ST t αt(i)
Sj
aNj t+1 αt+1(i)
Рис. 1.6. Индуктивный шаг процедуры Forward-Backward
25
Рисунок показывает, как состояние Sj может быть достигнуто в момент времени t+1 из N возможных состояний Si, 1≤i≤N, в которых система могла находиться в момент времени t. Поскольку αt(i) - это совместная вероятность того, что наблюдалась последовательность O1,O2,...Ot и в момент времени t система находилась в состоянии Si, то произведение αt(i)aij - это совместная вероятность того, что наблюдалась последовательность O1,O2,...Ot и в момент времени t+1 система находится в состоянии Sj, в которое перешла из состояния Si, в котором находилась в момент времени t. Суммируя эти произведения по всем N возможным состояниям Si, 1≤i≤N, в которых система могла находиться в момент времени t, получим вероятность перехода системы в момент времени t+1 в состояние Sj с учетом всех возможных предшествующих этому частичных последовательностей наблюдений. Теперь, умножив эту сумму на вероятность bj(Ot+1), продвигаемся на один шаг, получив αt+1(j). На заключительном шаге 3) вычисляется искомая вероятность P(O|λ) как сумма по i окончательных значений прямых переменных αT(i), при этом
α T ( i ) = P (O 1O 2 ⋅⋅⋅ O T , q T = S i | λ )
(1.16)
Для вычисления вероятности P(O|λ) таким образом, требуется уже порядка N2T вычислительных операций, вместо 2TNT для прямого метода, так что данный метод значительно более быстрый. В нашем примере для N=5 и T=100 он требует всего около 3000 арифметических операций, вместо 1072 операций для прямого вычисления. Теперь введем «обратную» переменную βt(i) и определим ее как β t ( i ) = P (O
t+1
O
t+2
⋅⋅⋅O
T
,q
t
= S i|λ
),
(1.17)
т.е. βt(i) – это вероятность частичной последовательности наблюдений от момента времени t до конца последовательности при заданном состоянии Si в момент времени t и параметрах модели λ. βt(i) мы точно также можем индуктивно вычислить посредством следующей процедуры: 1) Инициализация β T (i ) = 1 , 1 ≤ i ≤ N
(1.18)
2) Индукция β T (i) =
N
∑
j= 1
a ij b
j
(O )β ( j), t+1
t+1
(1.19)
t = T − 1 , T − 2 , ⋅ ⋅ ⋅ ,1 ,1 ≤ i ≤ N
26
Очевидно, что для решения первой задачи СММ достаточно вычисления только «прямой» переменной, но как мы увидим дальше, «обратная» переменная используется наравне с «прямой» при решении других задач СММ.
1.5.2 Задача 2. Отыскание оптимальной последовательности состояний В отличие от первой задачи, где мы можем получить точное решение, вторая задача имеет несколько возможных решений. Поскольку нам надо найти оптимальную последовательность состояний, исходя из имеющейся последовательности наблюдений, конкретное решение во многом будет зависеть от выбранных критериев оптимальности. Одним из таких критериев может быть выбор состояний qt, которые наиболее вероятны в конкретные моменты времени t. Для нахождения решения в соответствии с этим критерием оптимальности определим переменную
γ t (i ) = P (q t = S i | O , λ ) ,
(1.20)
т.е. вероятность нахождения в состоянии Si в момент времени t при заданных параметрах модели λ и последовательности наблюдений O. Эту вероятность легко выразить в терминах прямой и обратной переменных, т.е. γ t (i) =
α t ( i )β t ( i ) = P (O | λ )
α t ( i )β t ( i ) N
∑
i=1
(1.21)
α t ( i )β t ( i )
Здесь P(O|λ) - нормализирующий фактор для того, чтобы N
∑ γ ( i) = 1 i =1
(1.22)
t
Используя переменную γt(i), можно легко найти наиболее вероятные конкретные состояния qt для моментов времени t как
[
]
q t = arg max γ t ( i) , 1≤i ≤ N
(1.23)
1≤ t ≤ T
Поскольку приведенный выше метод находит только наиболее вероятные состояния для каждого из моментов времени, для случаев, где матрица переходов aij имеет нулевые значения, такая последовательность может оказаться некорректной. Поэтому правильно в выборе оптимальной последовательности использовать и матрицу вероятностей переходов. Одним из таких методов является алгоритм Витерби [23, 93].
27
1.5.3 Задача 3. Обучение СММ тестовыми последовательностями Как уже отмечалось, третья задача является самой трудной при работе с СММ: она должна дать метод нахождения параметров модели, таких, чтобы максимизировать вероятность последовательностей наблюдений, соответствующих данной модели. На самом деле не известно ни одного аналитического метода решения этой задачи. То есть для любого конечного числа «тренировочных» последовательностей нет оптимального пути оценки параметров модели. Однако можно выбрать λ=(A,B,П) так, чтобы P(O|λ) имел локальный максимум, используя итеративную процедуру Баума-Велча (Baum-Welch) (или эквивалентный ему EM (expectation-modification)-метод), или градиентные методы [48, 49, 83]. Рассмотрим одну из итеративных процедур выбор параметров модели, основанную преимущественно на классической работе Баума и его коллег [48, 49]. Для описания процедуры итеративного уточнения параметров СММ нам потребуется определить вероятность нахождения системы в состоянии Si в момент времени t и в состоянии Sj в момент времени t+1 при заданных параметрах модели и последовательности наблюдений, т.е.
ξ t (i , j ) = P (q t = S i , q t +1 = S j | O , λ ) .
(1.24)
В терминах прямой и обратной переменных эту вероятность можно записать так ξ t (i, j ) =
α t (i )aij b j (Ot +1 )β t +1 ( j ) P(O | λ )
=
α t (i )aij b j (Ot +1 )β t +1 ( j ) N
N
∑∑α t (i)aijb j (Ot +1 )β t +1 ( j )
,
(1.25)
i =1 j =1
где числитель - это просто P(qt=Si,qt+1=Sj,O|λ), а деление его на P(O|λ)дает искомую вероятность. Ранее мы определяли γt(i) как вероятность нахождения системы в состоянии Si в момент времени t, теперь мы можем выразить γt(i) через ξt(i,j) суммированием по j N
γ t (i ) = ∑ ξ t (i, j ) .
(1.26)
j =1
Если мы просуммируем γt(i) по времени, то получим результат, который может быть интерпретирован как ожидаемое количество раз, которое система окажется в состоянии Si или ожидаемое количество переходов из этого состояния (если исключить из рассмотрения момент времени T). Так же сумма ξt(i,j) по времени (от t=1 до t=T-1) может быть интерпретирована как ожидаемое число переходов из состояния Si в Sj.
28
T −1
∑ γ (i ) = ожидаемое число переходов из состояния S ; t
t =1
i
(1.27)
T −1
∑ ξ (i, j ) =
ожидаемое число переходов из состояния Si в Sj. (1.28)
t
t =1
Используя приведенные выше формулы, мы можем получить набор формул для уточнения параметров СММ:
π i = ожидаемая частота нахождения в состоянии Si в момент времени (t=1) = γ 1 (i ) ;
a ij =
(1.29)
ожидаемое число переходов из состояния S i в состояние S j ожидаемое число переходов из состояния S i
=
T −1
=
∑ξ (i, j ) t =1 T −1
t
∑ γ (i )
;
(1.30)
t
t =1
ожидаемая частота нахождения в состоянии S j b j (k ) =
и наблюдения символа vk = ожидаемая частота нахождения в состоянии S j T
∑γ ( j)
=
t =1 Ot = v k T
t
∑γ t ( j)
.
(1.31)
t =1
Если мы имеем текущее параметры модели λ=(A,B,П) и посредством этих формул получили уточненные параметры модели λ=(A,B,П), то, как утверждает Баум и его коллеги, либо мы получим, что P(O|λ)=P(O|λ), либо что P(O|λ)>P(O|λ), т.е. мы нашли новые параметры модели, при которых она с наибольшей вероятностью будет производить данную последовательность наблюдений. Следует сразу отметить, что при этом на каждой итерации автоматически удовлетворяются следующие требования N
∑π
i
=1
(1.32)
ij
= 1,
(1.33)
i =1 N
∑a j =1
1≤i ≤ N
29
M
∑b (k ) = 1, j
k =1
(1.34)
1≤ j ≤ N
Так, рассмотренный метод производит итеративное улучшение параметров модели, но он не способен выйти из локального экстремума функции P(O|λ), что является довольно серьёзным ограничением, и кроме того его работа сильно зависит от начальных условий – так называемых стартовых параметров СММ – и в случае неудачного их выбора (рядом с локальным экстремумом) этот метод будет неэффективным. В данном случае мы имеем одну из задач оптимизации, для которой применимы различные методы решения.
1.6 Выводы В данной главе диссертации рассматривается теория скрытого марковского моделирования (СММ) и её применение к приложениям распознавания речи. Рассмотрены основные типы СММ, используемые в системах распознавания речи, классифицированы основные задачи теории и определены подходы к их решению. Показано, что решение каждой из перечисленных задач «в лоб» может быть очень ресурсоёмким, и потому существуют оптимизированные для этих целей алгоритмы, например, Forward-Backward для решения первой задачи или алгоритм Витерби для решения второй. Кроме того, важная и наиболее сложная среди трёх задача обучения скрытой марковской модели тренировочными последовательностями не имеет аналитического решения, и потому к её решению могут быть применены различные методы, например, итеративная процедура Баума-Велча (Baum-Welch) или эквивалентный ей EM-метод, которые не свободны от собственных недостатков и ограничений, важнейшие из которых – это неспособность выйти из локального экстремума и сильная зависимость от стартовых значений модели. В то же время от качественного обучения модели, то есть нахождения таких её параметров, которые описывают тренировочное слово как можно лучше, напрямую зависит эффективность работы системы распознавания речевых команд. Интерес представляет поиск альтернативных способов решения этой задачи, которые могли бы преодолеть указанные ограничения.
30
Глава 2. Сравнительная оценка методов оптимизации в задаче обучения СММ Как было показано в предыдущей главе диссертационной работы, наиболее трудной и актуальной задачей является задача оптимизации процесса обучения СММ в системах автоматического распознавания речи, однозначного решения которой не известно. В данной главе диссертации рассматриваются различные методы оптимизации, применимые к решению данной задачи, оцениваются их возможности и ограничения и показывается принципиальная возможность использования в этих целях генетических алгоритмов, представляющих собой перспективное и динамично развивающееся направление интеллектуальной обработки данных, связанное с решением задач поиска и оптимизации. Далее будут подробно описаны принципы их функционирования и исследована применимость к задаче обучения СММ. Область применения генетических алгоритмов достаточно обширна. Они успешно используются для решения ряда больших и экономически значимых задач в бизнесе и инженерных разработках. С их помощью были разработаны промышленные проектные решения, позволившие сэкономить многомиллионные суммы. Наряду с другими методами эволюционных вычислений генетические алгоритмы обычно используются для оценки значений непрерывных параметров моделей большой размерности, для решения комбинаторных
задач,
для
оптимизации
моделей,
включающих
одновременно
непрерывные и дискретные параметры. Другая область применения - использование в системах извлечения новых знаний из больших баз данных, создание и обучение стохастических сетей, обучение нейронных сетей, оценка параметров в задачах многомерного статистического анализа, получение исходных данных для работы других алгоритмов поиска и оптимизации [1].
2.1 Схема процесса принятия решения как задачи поиска Рассмотрим общую схему процесса принятия решения в многокритериальных задачах. Принятие решения при этом обычно заключается в выборе лучшей из возможных альтернатив решений, при которой с учётом разнообразных и порой противоречивых требований будет оптимизирована некая общая ценность. Иными словами, решение в максимальной степени будет способствовать достижению поставленной цели. Для формализации поставленной задачи требуется описание всех факторов, оказы-
31
вающих влияние на достижение цели, ограничительных условий, а также критерий оценки качества принимаемого решения, который даст возможность осуществлять выбор между рассматриваемыми альтернативами. Обычно таким критерием является некая целевая функция, зависящая от указанных факторов, выступающих её аргументами, а решению, приводящему к наилучшему результату, соответствует экстремум этой целевой функции, то есть точка её минимума или максимума. Все возможные комбинации аргументов образуют пространство поиска задачи, а его размерность определяется количеством аргументов целевой функции. Каждая из указанных комбинаций представляется точкой в этом пространстве. Процесс принятия решения в данном случае схематично изображён на рис. 2.1:
Рис. 2.1 Формальное представление процесса принятия решений
Указанная интерпретация процесса принятия решений (Рис. 2.1), несмотря на свою обобщенность и приблизительность, позволяет увидеть потенциальные возможности автоматизации, то есть применения вычислительной техники для выполнения задач
32
принятия решений. Наиболее широко вычислительная техника используется сейчас для реализации самого трудоемкого процесса – генерации альтернатив решений и выбора наилучшей из них.
2.2 Традиционные методы поиска оптимальных решений и их приложение к задаче обучения СММ Еще задолго до появления вычислительной техники были созданы формальные методы поиска оптимальных решений, в основе которых лежали математические вычисления, позволяющие находить экстремум целевой функции. На сегодняшний день можно выделить три основных типа методов поиска оптимальных решений [19]: §
методы, основанные на математических вычислениях,
§
перечислительные методы,
§
методы, использующие элемент случайности.
Рассмотрим их более подробно.
2.2.1 Методы, основанные на математических вычислениях Методы, основанные на математических вычислениях, сегодня изучены наиболее полно. Они подразделяются на направленные и ненаправленные. Суть ненаправленного метода состоит в том, что локальный экстремум ищется путем решения системы уравнений, как правило, нелинейных. Эта система составляется путем приравнивания градиента целевой функции к нулю (например, метод градиентного спуска или покоординатного спуска). К недостаткам этих методов можно отнести очень жесткие
условия,
накладываемые
на
целевую
функцию:
она
должна
быть
дифференцируема на всем пространстве поиска. При формализации современных задач это условие, как правило, соблюсти не удается, и аналитического решения задачи обучения СММ не известно. Направленные методы предполагают перемещения от точки к точке в допустимой области, причем направление подобных перемещений связывается с направлением, на которое указывает градиент (например, метод касательных). Итеративная процедура Баума-Велча, предназначенная для решения задачи обучения СММ и рассмотренная в Главе 1, относится именно к этой группе методов оптимизации. Как было отмечено, эта процедура способна находить только лишь локальные экстремумы или глобальный, но только если на пути к нему по ландшафту параметров не окажется локальных экстремумов, выбраться из которых она не сможет.
33
Данная особенность распространяется и на всю группу этих методов – они часто находят лишь локальные экстремумы целевой функции, тогда как оптимальному решению соответствует
только
глобальный
экстремум.
Таким
образом,
методы
поиска
оптимальных решений, основанные на математических вычислениях, применимы лишь в случаях гладких, всюду дифференцируемых унимодальных (имеющих один экстремум на пространстве поиска) целевых функций.
2.2.2 Перечислительные методы Перечислительные методы, по сути, представляют собой полный перебор. Их смысл состоит в том, что пространство поиска любой задачи можно представить в виде совокупности дискретных точек, и этом случае поиск решения будет сводиться к перебору всех точек пространства поиска и вычислению в них целевой функции, в одной из которых она, несомненно, примет экстремальное значение. Даже если пространство поиска непрерывно, то конечная точность представления чисел в вычислительных машинах позволяет сделать такое допущение. Для наглядности этот метод можно сравнить с накладыванием на пространство поиска (в случае, если оно непрерывно) сети с выбранным фиксированным размером ячеек и дальнейшим прохождением по всем узлам этой сети. Недостаток этих методов очевиден. При увеличении размерности пространства поиска (числа аргументов целевой функции) количество точек пространства возрастает не линейно, а значительно стремительнее. Данная проблема известна под названием «комбинаторного взрыва». Это приводит к значительным временным затратам процедуры перебора
и
необходимости
применения
все
более
мощной
и
дорогостоящей
вычислительной техники. В то же время размерность решаемых сейчас задач постоянно растет, а время, доступное для принятия решений, сокращается. Таким образом, перечислительные методы также становятся применимы для решения все более сужающегося класса задач. Так, например, для поиска оптимальной матрицы для СММ, имеющей 10 состояний, пришлось бы перебрать 10*10=100 элементов матрицы, каждый из которых может принимать значения в диапазоне от 0 до 1, с шагом равным 0,00000001 = 10-8, то есть, каждый элемент может принимать 108 значений. Такое допущение относительно шага сделано ввиду того, что значения параметров СММ в системе автоматического распознавания речи (САРР) SdiApp, разработанной на кафедре ЭВА МИЭМ, хранятся в файле словаря с точностью до восьмого знака. Для строки из этих 100 элементов число возможных комбинаций
34
оказывается равным (10 8)100=10 800 (!). Для сравнения, считается, что в нашей Вселенной есть место для 10118 субатомных частиц [91]. Даже если крайне упростить задачу перебора и рассматривать исключительно СММ с поступательно-ограниченными переходами не более чем на 2 состояния вперёд (т.н. ленточные матрицы), то и тогда останется 3*10-31=26 нуждающихся в переборе элементов (вычитание в формуле появилось из-за того, что последняя строка матрицы содержит только один элемент, да и тот единичный, а предпоследняя – два значащих элемента, вместо стандартных трёх). Для этого случая число возможных комбинаций оказывается равным 10 8*26=10208, что тоже явно превышает все разумные значения. Если в дополнение ещё и радикально пожертвовать точностью представления данных и снизить её до второго знака (практическая польза подобной модели становится крайне сомнительна, так как при перемножении закодированных таким образом элементов очень сильно пострадает точность результата, что отрицательно скажется на качестве распознавания), число комбинаций станет равным 10 2*26=1052. Если, наконец, допустить, что в нашем распоряжении есть суперкомпьютер СКИФ-1000 мощностью 2 терафлопс (на конец 2004 года – это самый быстрый суперкомпьютер на территории бывшего СССР и 98-й по мощности суперкомпьютер в мировом рейтинге Top500 [3]), то есть способный выполнять 2*10 12 операций с плавающей точкой в секунду, и предположить, что за одну его операцию обрабатывается одна комбинация параметров или одна матрица (что, вообще говоря, далеко не так, потому что на матрицу потребуется гораздо больше операций), то на обработку всех 1052 значений матриц потребуется 1052/2*1012 = 5*1039 секунд, что на 22 порядка больше времени существования Вселенной, равного приблизительно 5*1017 секунд или 14 миллиардов лет. В свете этих последних значений первоначальный вариант даже не поддаётся осмыслению, и сколь-нибудь полный перебор попросту невозможен. Следует заметить, что не все матрицы, генерируемые
рассматриваемой
процедурой, являются допустимыми в силу невыполнения ими для отдельных строк условия полной вероятности (ф-ла 1.3), и такие матрицы должны быть отброшены. Здесь возможна
оптимизация
работы
переборного
алгоритма
посредством
реализации
процедуры, генерирующей только допустимые с точки зрения СММ матрицы, что сократит объём вариантов для перебора алгоритмом, но этот подход не избавит от другой проблемы метода перебора – экспоненциального роста числа вариантов при увеличении размерности модели. Также важно заметить, что при использовании перечислительных методов важным
35
является вопрос выбора шага дискретизации или квантования модели, чтобы точка экстремума не оказалась пропущенной в результате того, что она находится между двумя соседними точками модели. Важно обратить внимание и на то, чтобы за один шаг дискретизации значение не могло значительно изменяться внутри этого шага, иначе весь трудоёмкий перебор может оказаться бессмысленным – «золотую рыбку нельзя поймать сетью для акул».
2.2.3 Методы, использующие элементы случайности Методы, использующие элементы случайности, стали появляться относительно недавно, по мере того, как становились очевидными недостатки методов, рассмотренных выше. В основе первого из «случайных» методов лежит случайный поиск в пространстве задачи с сохранением наилучшего полученного результата. Очевидно, что применение такого метода не гарантирует получения оптимального решения, так как точка глобального экстремума может не оказаться выбранной процедурой случайного поиска среди множества всех возможных точек – вероятность этого далеко не нулевая и увеличивается с ростом числа точек пространства поиска. Кроме того, при одинаковой дискретизации моделей результат работы такого метода не может быть лучше, чем в случае работы перечислительных методов поиска, поскольку в обоих случаях рассматриваются одни и те же дискретные точки пространства поиска задачи. Вместе с тем, следует заметить, что сейчас при решении очень сложных задач основной целью является поиск уже не оптимального, а более «хорошего» решения по сравнению с полученным ранее или заданным в качестве начального. Здесь методы, использующие элемент случайности, получают определенное преимущество перед остальными. Однако даже с такими допущениями непосредственный случайный поиск является малоэффективным. Исследования показали [19; а также автор в разделе 4.1.2], что внесение в такие методы элементов детерминированности дает значительное улучшение показателей. Одним из типов таких «частично» случайных методов являются эволюционные вычисления.
2.3 Концепция эволюционных вычислений История эволюционных вычислений характеризуется развитием ряда независимых моделей. Первыми моделями были генетические алгоритмы и классификационные системы. Эволюционные вычисления – это бионическое направление, которое использует принципы эволюции, перенятые из природы, но упрощённые до такой степени, чтобы их
36
можно было реализовать в компьютерных моделях. Среди многочисленных эволюционных моделей выделяют собственно бионические, то есть основанные на биологических принципах, и модели, далёкие от реальной эволюции, но полезные в прикладном смысле [44]. В основном используются системы второго типа, которые успешно решают задачи структурной оптимизации. Системы же первого типа обладают сложным поведением, что не исключает их практического применения в будущем. К моделям биологической эволюции относятся системы, известные под обобщающим термином искусственная жизнь (Artificial Life) [96]. Представителями прикладных моделей являются эволюционные алгоритмы, такие как: 1. эволюционное программирование (Evolutionary Programming), в основе которого лежит идея представления альтернатив в виде универсальных конечных автоматов, способных реагировать на стимулы, поступающие из окружающей среды. Идеи эволюционного программирования были предложены в 1966 году Фогелем, Оуэнсом и Уолшем (L.J. Fogel, A.J. Owens, M.J. Walsh) в работе «Построение систем искусственного интеллекта путем моделирования эволюции» [64]; 2. генетические алгоритмы (Genetic Algorithms), основной особенностью которых является представление любой альтернативы решения в виде строки параметров, например, битовой строки фиксированной длины, манипуляции с которой производятся в отсутствие всякой связи с ее смысловой интерпретацией. То есть применяется единое универсальное представление любой задачи. Парадигму генетических алгоритмов предложил Джон Холланд, опубликовавший в начале 60-х годов ее основные положения. А всеобщее признание она получила после выхода в свет в 1975 году его классического труда «Адаптация в естественных и искусственных системах» [72]; 3. эволюционные стратегии (Evolution Strategies), напротив, оперируют объектами, тесно связанными с решаемой задачей. Каждая из альтернатив решения представляется единым массивом численных параметров, за каждым из которых скрывается, по сути, аргумент целевой функции. Воздействие на данные массивы осуществляется, в отличие от генетических алгоритмов, с учетом их смыслового содержания и направлено на улучшение значений входящих в них параметров. Парадигму эволюционных стратегий предложили в 1973
37
году Реченберг (I.Rechenberg)
в
своей
работе
«Эволюционные
стратегии: оптимизация технических систем на основе принципов биологической эволюции» [84] и в 1977 году Шефель (Н.Р.Schwefel) в работе «Численная оптимизация компьютерных моделей посредством эволюционной стратегии» [87]. Эволюционные вычисления - термин, обычно используемый для общего описания алгоритмов
поиска,
оптимизации
или
обучения,
основанных
на
некоторых
формализованных принципах естественного эволюционного процесса [1]. Основное преимущество эволюционных вычислений в этой области заключается в возможности решения многомодальных (имеющих несколько локальных экстремумов) задач с большой размерностью за счет сочетания элементов случайности и детерминированности точно так, как это происходит в природной среде. Детерминированность этих методов заключается в моделировании природных процессов отбора, размножения и наследования, происходящих по строго определенным правилам. Основным правилом при этом является закон эволюции: «выживает наиболее приспособленный», который обеспечивает улучшение находимого решения. Другим важным фактором эффективности эволюционных вычислений является моделирование размножения
и
наследования.
Рассматриваемые
варианты
решений
могут
по
определенному правилу порождать новые решения, которые будут наследовать лучшие черты своих «предков». В качестве случайного элемента в методах эволюционных вычислений может использоваться,
например,
моделирование
процесса
мутации.
В
этом
случае
характеристики того или иного решения могут быть случайно изменены, что приведет к новому направлению в процессе эволюции решений и может ускорить процесс выработки лучшего решения. В настоящее время наблюдается взаимное проникновение указанных парадигм и их сращивание в единую концепцию эволюционных вычислений. Как и всякий метод, использующий элемент случайности, эволюционные вычисления не гарантируют обнаружения глобального экстремума целевой функции (или оптимального решения) за определенное время. Основное их преимущество в том, что они позволяют найти более «хорошие» решения очень трудных задач за меньшее время, чем другие методы. К числу подобных задач может быть отнесена и задача обучения СММ. Естественно, эволюционные вычисления не являются оптимальным средством для решения любых задач, поскольку было доказано, не существует метода поиска, который
38
был бы наилучшим во всех случаях [19]. Тем не менее, методы эволюционных вычислений оказались достаточно эффективными для решения ряда реальных задач инженерного проектирования, планирования расписаний, маршрутизации в сетях и размещения объектов в ограниченном пространстве, управления портфелями ценных бумаг, прогнозирования, а также во многих других областях. Отрицательной
чертой
эволюционных вычислений является
то,
что они
представляют собой скорее подход к решению задач оптимизации, чем алгоритм, и вследствие этого требуют адаптации к каждому конкретному классу задач путем выбора определенных характеристик и параметров.
2.4 Основы теории генетических алгоритмов (ГА) Являясь разновидностью методов поиска с элементами случайности, генетические алгоритмы имеют целью нахождение лучшего по сравнению с имеющимся, а не оптимального решения задачи. Это связано с тем, что для сложной системы часто требуется найти хоть какое-нибудь удовлетворительное решение, а проблема достижения оптимума отходит на второй план. Аналогичная ситуация наблюдается и с обучением СММ
–
достаточно
найти
хорошо
описывающую
конкретную
тестовую
последовательность модель, не обязательно идеальную. При этом другие методы, ориентированные на поиск именно оптимального решения, вследствие чрезвычайной сложности задачи становятся вообще неприменимыми. В этом кроется причина появления, развития и роста популярности генетических алгоритмов. Хотя, как и всякий другой метод поиска, этот подход не является оптимальным методом решения любых задач. Дополнительным свойством этих алгоритмов является невмешательство человека в развивающийся процесс поиска – он может влиять на него лишь опосредованно, задавая определенные параметры. Прежде чем рассматривать непосредственно работу генетического алгоритма, введем ряд терминов, которые широко используются в данной области. Выше было сказано, что генетический алгоритм работает с кодами безотносительно их смысловой интерпретации. Поэтому сам код и его структура описываются понятием генотип, а его интерпретация с точки зрения решаемой задачи – понятием фенотип. Каждый код представляет, по сути, точку пространства поиска. С целью максимально приблизиться к биологическим терминам, экземпляр кода называют хромосомой, особью или индивидуумом. Далее для обозначения строки кода в основном будет использоваться термин
39
«особь». На каждом шаге работы генетический алгоритм использует несколько точек поиска одновременно. Совокупность этих точек является набором особей, который называется популяцией. Количество особей в популяции называют размером популяции. В классических генетических алгоритмах размер популяции является фиксированным и представляет одну из характеристик генетического алгоритма. На каждом шаге своей работы генетический алгоритм обновляет популяцию путем создания новых особей и уничтожения ненужных. Чтобы отличать популяции на каждом из шагов и сами эти шаги, их называют поколениями и обычно идентифицируют по номеру. Например, популяция, полученная из исходной популяции после первого шага работы алгоритма, будет первым поколением, после следующего шага - вторым и т.д. В процессе работы алгоритма генерация новых особей происходит на основе моделирования процесса размножения. При этом, естественно, порождающие особи называются родителями, а порожденные - потомками. Родительская пара, как правило, порождает пару потомков. Непосредственная генерация новых кодовых строк из двух выбранных происходит за счет работы оператора скрещивания, который также называют кроссинговером или кроссовером (от англ. crossover). При порождении новой популяции оператор скрещивания может применяться не ко всем парам родителей. Часть этих пар может переходить в популяцию следующего поколения непосредственно. Насколько часто будет возникать такая ситуация, зависит от значения вероятности применения оператора скрещивания, которая является одним из параметров генетического алгоритма. Моделирование процесса мутации новых особей осуществляется за счет работы оператора мутации. Основным параметром оператора мутации также является вероятность мутации. Поскольку размер популяции фиксирован, порождение потомков должно сопровождаться уничтожением других особей. Выбор пар родителей из популяции для порождения потомков производит оператор отбора, а выбор особей для уничтожения - оператор редукции. Основным параметром их работы является, как правило, качество особи, которое определяется значением целевой функции в точке пространства поиска, описываемой этой особью. Таким образом, можно перечислить основные понятия и термины, используемые в области генетических алгоритмов: §
генотип и фенотип;
§
особь и качество особи;
§
популяция и размер популяции;
40
§
поколение;
§
родители и потомки.
К характеристикам генетического алгоритма относятся: §
размер популяции;
§
оператор скрещивания и вероятность его использования;
§
оператор мутации и вероятность мутации;
§
оператор отбора;
§
оператор редукции;
§
критерий останова.
Операторы отбора, скрещивания, мутации и редукции называют еще генетическими операторами. Критерий останова определяет, когда работа генетического алгоритма должна быть закончена. Обычно это происходит по достижении популяцией заданного пользователем качества (например, значение качества всех особей превысило заданный порог), по достижении определённого уровня сходимости (то есть особи в популяции стали настолько подобными, что дальнейшее их улучшение происходит чрезвычайно медленно) или же когда сформировано заданное пользователем число поколений. Характеристики генетического алгоритма выбираются таким образом, чтобы обеспечить малое время работы, с одной стороны, и поиск как можно лучшего решения, с другой.
2.5 Последовательность работы генетического алгоритма Рассмотрим теперь непосредственно работу генетического алгоритма. Общая схема его работы представлена на Рис. 2.2.
41
Создание исходной популяции
Выбор родителей для процесса размножения (работает оператор отбора)
Создание потомков выбранных пар родителей (работает оператор скрещивания)
Мутация новых особей (работает оператор мутации)
Расширение популяции за счёт добавления новых, только что порождённых особей
Сокращение расширенной популяции до исходного размера (работает оператор редукции)
Нет
Критерий останова работы алгоритма выполнен? Да
Поиск лучшей достигнутой особи в конечной популяции результата работы алгоритма Рис. 2.2 Процесс работы генетического алгоритма
Первый шаг при построении генетических алгоритмов — это кодировка вектора исходных параметров, которые именуют хромосомами, а весь их набор называют популяцией хромосом. Хромосома может быть закодирована как битовой строкой, так и символьной, или же строкой вещественных чисел. Реализация
генетического
алгоритма
предполагает
задание
т.н.
функции
приспособленности или фитнес-функции (fitness function). Данная функция предназначена для оценки качества каждого конкретного решения – она получает на вход хромосому и возвращает число, показывающее, насколько хороша эта хромосома. Формирование исходной популяции происходит, как правило, с использованием какого-либо случайного закона, на основе которого выбирается нужное количество точек
42
поискового пространства. Исходная популяция может также быть результатом работы какого-либо другого алгоритма оптимизации. Все здесь зависит от разработчика конкретного генетического алгоритма. Применительно к системам распознавания речи на основе СММ это означает, что в первом случае будут сгенерированы произвольные случайные матрицы СММ, а во втором они будут получены после работы какого-либо иного алгоритма (например, Баума-Велча) и ГА будет пытаться их улучшить. Существуют различные варианты реализации генетических алгоритмов, как с постоянным размером популяции, так и с переменным. Вообще, генетические алгоритмы допускают большую вариативность в реализации. В основе оператора отбора, который служит для выбора родительских пар и уничтожения особей, лежит принцип «выживает наиболее приспособленный» (survival of the fittest). В качестве примера можно привести оператор, выбирающий особь для размножения случайно. При этом вероятность участия особи в процессе размножения вычисляется по формуле: n
Pi = f i / ∑ f j ,
(2.1)
j =1
где Pi - вероятность участия особи в процессе размножения, i - номер особи, п размер популяции, f i - значение целевой функции для i-ой особи. В данном случае целью поиска является нахождение максимума целевой функции. Очевидно, что одна особь может быть задействована в нескольких родительских парах. Аналогично может быть решён и вопрос уничтожения особей, только вероятность уничтожения, соответственно, должна быть обратно пропорциональна качеству особей. Однако обычно происходит просто уничтожение особей с наихудшим качеством. Таким образом, выбирая для размножения наиболее качественные особи и уничтожая наиболее слабые,
генетический
алгоритм
постоянно
улучшает
популяцию,
приводя
к
формированию лучших решений. Оператор скрещивания призван моделировать природный процесс наследования, то есть обеспечивать передачу свойств от родителей к потомкам. Кроссинговер смешивает «генетический материал» двух родителей, причем можно ожидать, что приспособленность родителей выше средней в предыдущем поколении, так как они только что прошли очередной раунд борьбы за выживание. Это аналогично соперничеству настоящих живых существ, где, как правило, сильнейшим удается передать свои (предположительно хорошие) гены следующему поколению. Важно, что кроссинговер может порождать
43
новые хромосомы, ранее не встречавшиеся в популяции. Рассмотрим простейший оператор скрещивания. Он выполняется в два этапа. Пусть особь представляет собой строку из т элементов. На первом этапе равновероятно выбирается натуральное число к от 1 до т-1. Это число называется точкой разбиения. В соответствии с ним обе исходные строки разбиваются на две подстроки. На втором этапе строки обмениваются своими подстроками, лежащими после точки разбиения, то есть элементами с k+1-го по m-й. Так получаются две новые строки, которые унаследовали частично свойства обоих родителей. Этот процесс проиллюстрирован ниже: Строка1 X(1)X(2)…X(k)X(k+1)…X(m)
X(1)X(2)…X(k)Y(k+1)…Y(m) →
Строка2 Y(1)Y(2)…Y(k)Y(k+1)…Y(m)
Y(1)Y(2)…Y(k)X(k+1)…X(m)
Вероятность применения оператора скрещивания обычно выбирается достаточно большой (в пределах от 0,9 до 1), чтобы обеспечить постоянное появление новых особей, расширяющих пространство поиска. При значении вероятности меньше 1 часто используют элитизм [94]. Это особая стратегия, которая предполагает переход в популяцию следующего поколения элиты, то есть лучших особей текущей популяции, без каких-либо изменений. Применение элитизма способствует сохранению общего качества популяции на высоком уровне. При этом элитные особи участвуют еще и в процессе отбора родителей для последующего скрещивания. Количество элитных особей определяется обычно по формуле: К = (1 - Р) * N
(2.2)
где К – количество элитных особей, Р – вероятность применения оператора скрещивания, N – размер популяции. В случае использования элитизма все выбранные родительские пары подвергаются скрещиванию, несмотря на то, что вероятность применения оператора скрещивания меньше 1. Это позволяет сохранять размер популяции постоянным. Следующий
этап
–
мутация
(mutation).
Оператор
мутации
служит
для
моделирования природного процесса мутации. Его применение в генетических алгоритмах обусловлено следующими соображениями. Исходная популяция, какой бы большой она ни была, охватывает ограниченную область пространства поиска. Оператор скрещивания, безусловно, расширяет эту область, но все же до определенной степени, поскольку использует ограниченный набор значений, заданный исходной популяцией. Даже для
44
больших популяций может оказаться, что не все биты генетического материала в ней представлены. Например, если первый бит у всех хромосом равен 0, то кроссинговер никогда не породит решение с 1 в первом бите. Мутация предназначена для того, чтобы избежать таких ситуаций и увеличить разнообразие популяции. Как правило, вероятность мутации, в отличие от вероятности скрещивания, выбирается достаточно малой. Сам процесс мутации заключается в замене одного из элементов строки на другое значение. Это может быть перестановка двух элементов в строке, замена элемента строки значением элемента из другой строки, в случае битовой строки может применяться инверсия одного из битов и т. д. Мутация и кроссинговер могут порождать новые решения, которые никогда не встречались в предыдущих поколениях. Для оценки качества этих решений вычисляется фитнес-функция. На этом построение нового поколения решений заканчивается. В процессе работы алгоритма все указанные выше операторы применяются многократно и ведут к постепенному изменению исходной популяции. Поскольку операторы отбора, скрещивания, мутации и редукции по своей сути направлены на улучшение каждой отдельной особи, то результатом их работы является постепенное улучшение популяции в целом. В этом и заключается основной смысл работы генетического алгоритма – улучшить популяцию решений по сравнению с исходной. После завершения работы генетического алгоритма из конечной популяции выбирается та особь, которая дает экстремальное (максимальное или минимальное) значение целевой функции и является, таким образом, результатом работы генетического алгоритма. За счет того, что конечная популяция лучше исходной, полученный результат представляет собой улучшенное решение.
2.6 Вычислительная эффективность применения ГА. Теорема схем Генетический алгоритм обрабатывает строки, представляющие хромосомы. Разнообразные строки можно описывать с помощью шаблонов строк, которые называют схемами хромосом. Схема хромосомы H — это строка длины L (длина любой строки популяции), состоящая из знаков алфавита V. Для бинарного случая V={0; 1; *}, где знак * обозначает неопределенный символ, и каждая схема определяет множество всех бинарных строк длины l, имеющих в соответствующих позициях либо 0, либо 1. Например, бинарная схема 10*1 определяет собой множество из двух четырехбитовых строк {1001; 1011}. При
45
необходимости алфавит может быть расширен. Для схем выделяют два свойства: порядок и длину. Порядок схемы O(H) — число закреплённых позиций (в двоичном алфавите – число определенных битов, 0 или 1). Длина схемы L(H) — расстояние между крайними определенными позициями (битами) в схеме. Например, вышеупомянутая схема 10*1 имеет порядок O(10*1) = 3, а определенная длина L(10*1) = 3. Строительными
блоками
называют
схемы,
обладающие
высокой
приспособленностью, низким порядком и короткой длиной. Приспособленность схемы определяется как среднее от приспособленностей экземпляров строк, которые ее содержат. Процедура отбора выбирает строки с более высокой приспособленностью. Следовательно, строки, которые являются примерами высокоприспособленных схем, выбираются чаще. Кроссовер реже разрушает схемы с более короткой длиной, а мутация реже разрушает схемы с низким порядком, поэтому такие схемы имеют больше шансов переходить из поколения в поколение. Дж. Холланд [72] показал, что, если ГА явным образом обрабатывает n строк в каждом поколении, то он неявно обрабатывает порядка n3 коротких схем низкого порядка и с высокой приспособленностью (useful schemata). Это явление называется неявным параллелизмом. Для решения реальных задач присутствие неявного параллелизма означает, что большая популяция имеет больше возможностей локализовать решение экспоненциально быстрее популяции с меньшим числом особей. ГА
экспоненциально
увеличивает
число
примеров
полезных
схем
или
строительных блоков. Данное утверждение известно как «теорема схем». Пусть в момент времени t в популяции S(t) содержится множество хромосом S j, j=1,2,…, n, а схема H строится на основе заданного алфавита V. Тогда схема может быть определена на хромосоме длины L. Так, для алфавита мощности M существует (M+1)L схем и n*2 L схем, содержащихся в популяции размером n двоичных хромосом. Пусть m(H, t) — число представителей схемы H в t-м поколении. Вычислим ожидаемое число представителей H в следующем поколении или m(H, t+1) относительно m(H, t). ГА ставит в соответствие каждой строке вероятность ее отбора для последующего размножения. В процессе репродукции вероятность попадания хромосомы Si в репродуцированное множество для случая использования пропорционального оператора отбора равна:
46
Pi =
f (S i )
,
n
∑ f (S j =1
j
(2.3)
)
где f(Sj) – значение функции приспособленности для j-ой хромосомы, а n – размер популяции. То есть, эта вероятность зависит от значения целевой функции. За время t+1 в популяции S(t) ожидается получить m(H, t+1) представителей схемы H, которое вычисляется по формуле: m( H , t + 1) = m( H , t )n
f (H )
,
n
∑ f (S j =1
j
(2.4)
)
где f(H) – среднее значение целевой функции хромосом, представленных схемой H за время t. Так как среднее значение целевой функции для всей популяции равно: n
f cp ( S ) =
∑ f (S j =1
j
) ,
n
(2.5)
то m( H , t + 1) = m( H , t )
f (H ) . f cp ( S )
(2.6)
Из этой формулы можно сделать вывод о том, что увеличение количества частных схем определяется отношением среднего значения целевой функции схемы к среднему значению целевой функции популяции. Поэтому схема, для которой значение целевой функции f(H) выше fcp(S), имеет большую вероятность копирования. Правило Холланда: Схема со значением целевой функции выше среднего живёт и копируется, а схема со значением ниже среднего умирает. Если предположить, что схема H является жизнеспособной, то f(H)≥fcp(S). Тогда значение целевой функции для схемы H можно выразить через среднее значение для всей популяции, например, следующим образом: (1+c)fcp(S), где c – константа. Число представителей схемы в следующем поколении будет: m( H , t + 1) = m( H , t )
(1 + c ) f cp (S ) f cp (S )
= (1 + c)m( H , t ) .
(2.7)
Если принять значение c постоянным во времени, то за период 0≤t≤t* можно вычислить количество представителей схемы H по формуле: m( H , t ) = (1 + c) t m( H ,0) , *
(2.8)
47
из которой следует, что репродукция может приводить к экспоненциальному увеличению (c > 0) или уменьшению (c < 0) числа схем. Пусть на некотором шаге генетического алгоритма P1 есть вероятность того, что хромосома A порождает потомка, и P2 есть вероятность, что A уничтожается. Вероятность выживания хромосомы A на шаге t после операции репродукции определяется по формуле PS (t ) = (1 − P2 ) t −1 P1 ,
(2.9)
где t=1, 2, …, g; g – число шагов (генераций) генетического алгоритма. Значение вероятности выживания хромосомы изменяется после операций кроссинговера и мутации. Использование оператора кроссинговера может вызвать увеличение или уменьшение числа схем в популяции. Если кроссинговер не применяется, то обмен между хромосомами отсутствует, поэтому поисковое пространство не увеличивается, и процесс затухает. Вероятность того, что одноточечный кроссовер разрушит схему, равна вероятности того, что точка разрыва попадёт между определёнными битами. Для хромосомы длины L существует L-1 точка разреза. Если оператор кроссинговера выполняется на основе случайного выбора с вероятностью Pс, то вероятность выживания схемы определяется по формуле: PS ,CO ( H ) ≥ 1 −
Pc L ( H ) , L −1
(2.10)
где L(H) – определённая длина схемы, а L – длина хромосомы. Вероятность «не меньше» приведённого значения, поскольку схема может выжить, если в кроссовере участвовал пример похожей схемы. Приведённое выражение свидетельствует о том, что вероятность выживания схемы уменьшается при возрастании Pс. Вычислим число схем H в новой генерации после операций репродукции и кроссинговера, допуская их взаимную независимость: m( H , t + 1) ≥ m( H , t )
f (H ) L( H ) 1 − Pc . f cp (S ) L − 1
(2.11)
Из этого выражения следует, что число схем m(H,t+1) зависит от значений целевой функции для схемы и для всей популяции, а также от длины схемы L(H). Рассмотрим влияние мутации на выживание схем. Единственная позиция хромосомы выживает с вероятностью 1-Pm, где Pm – вероятность оператора мутации. Если
48
учесть тот факт, что частная схема выживает в случаях, когда выживает каждая из O(H) закреплённых позиций схемы, то вероятность выживания схемы равна (1- Pm)O(H). Для малых величин Pm