МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
На правах рукописи УДК 50.10.41
...
10 downloads
167 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 слов, большие – тысячи и десятки тысяч. Количество дикторов: от одного до произвольного. Стиль произнесения: от изолированных команд до слитной речи и от чтения до спонтанной речи. Коэффициент ветвления, т.е. величина, определяющая количество гипотез на каждом шаге распознавания: от малых величин (<10-15) до больших (~100-200). Отношение сигнал/шум от больших (>30 дб) до низких (<10 дб). Качество каналов связи: от высококачественного микрофона до телефонного канала. Качество работы систем распознавания речи обычно характеризуется надёжностью распознавания слов, или, что то же самое, процентом ошибок. 2. Определение индивидуальности говорящего. Эти системы прежде всего делятся на 2 класса: верификация говорящего (т.е. подтверждение его личности) и идентификация говорящего (т.е. определение его личности из
5
заранее ограниченного числа людей). Оба эти класса далее могут быть разделены
на
тексто-зависимые
и
тексто-независимые.
Следующий
характеристический параметр – объём парольной фразы. Два других (как и в распознавании речи): отношение сигнал/шум и качество канала связи. Качество работы систем верификации/идентификации говорящего характеризуется двумя величинами: вероятностью не опознания «своего» диктора и вероятностью принятия «чужого» диктора за своего. 3. Синтез речи. Практически существует 2 класса: 1) Воспроизведение записанного в той или иной форме ограниченного числа сообщений; 2) Синтез речи по тексту. Синтезаторы характеризуются по следующим параметрам: разборчивость (словесная или слоговая), естественность звучания, помехоустойчивость. 4. Компрессия речи. Основной (и единственный) классификационный признак этих систем – степень компрессии: от низкой (32-16 кбит/сек) до высокой (1200-2400 кбит/сек и ниже). Качество работы систем компрессии речи характеризуется прежде всего разборчивостью компрессированной речи. Дополнительными характеристиками очень важными в ряде приложений являются узнаваемость голоса говорящего и возможность определения уровня стрессованности говорящего. В диссертационной работе рассматриваются системы первой группы – системы распознавания речи и их частный случай – системы распознавания речевых команд, т.е. распознавание изолированных слов, а не слитной речи. Такие системы весьма полезны на практике, и возросшая необходимость в них связана в первую очередь с появлением большого количества доступных человеку разнообразных устройств (персональные, мобильные и карманные компьютеры, коммуникаторы и мобильные телефоны, игровые и многофункциональные мультимедийные устройства с достаточной вычислительной мощностью) в сочетании с бурным развитием телекоммуникаций в современном мире. Растёт важность массового внедрения новых интерфейсов взаимодействия человека с техническими системами, поскольку традиционные интерфейсы во многом уже достигли своего совершенства, а вместе с ним и своих пределов. При традиционно высокой значимости информации, поступающей к нам через органы зрения, и её высокой доли среди всей сенсорной информации, считающейся равной порядка 85% [11], этот канал восприятия человека становится в значительной степени перегружен. И первоочередной
6
альтернативой здесь видится коммуникация именно по акустическому каналу. Кроме того, системы распознавания (а также синтеза) речи также крайне важны для людей с ограниченным зрением, и эта ниша для их применения активно развивается прежде всего в области мобильной телефонии (малые размеры экранов телефонных аппаратов не дают таким людям возможности пользоваться ими с достаточной степенью комфорта), а также в бытовой технике (для управления разнообразными домашними устройствами). Для помощи таким людям производители вводят в свои устройства возможности управления посредством голосовых команд (при наборе номера в телефоне или во время навигации по пунктам меню), а также дублирования экранной информации голосом. И в первую очередь от таких продуктов требуется распознавание ограниченного набора команд пользователя, а не слитной речи с большим или неограниченным словарём. Благодаря стандартизации платформ и операционных систем телефонов расширяется круг сторонних разработчиков программных продуктов с данной функциональностью [22]. Значительно более развита ниша программ распознавания речи для персональных компьютеров, где уже достаточно давно существуют такие продукты как IBM ViaVoice, DragonDictate
или
«Горыныч»
(являющийся
локализованной
версией
системы
DragonDictate, изначально ориентированной на английский язык), а также уже упоминавшиеся отечественные разработки Сакрамент и SPIRIT. Отечественные разработки обладают тем преимуществом перед зарубежными, что они изначально ориентированы на русские фонемы. В отсутствии такой базы иностранные системы вынуждены работать с русским языком на основе английских фонем или некоторого общего и универсального их набора, что отрицательно сказывается на качестве распознавания. Так, по сообщениям прессы, первый зарубежный коммерческий продукт распознавания русской речи для телефонных приложений, включающий поддержку русских фонем, появился лишь в 2003 году – набор программных модулей, библиотек и утилит для разработки систем такого класса – SpeechPearl компании Philips Speech Processing [56]. Аппаратная база подобных систем на сегодняшний момент устоялась на нескольких основных вариантах: 1)
Системы PC-класса на основе x86-совместимых процессоров для программных продуктов, используемых в настольных компьютерах, в некоторых серверных или мобильных решениях;
2)
Мобильные устройства (телефоны, коммуникаторы и т.п.) на основе процессорной архитектуры ARM (более 75% всех интегрированных
7
процессоров, выпускаемых в мире) [24]; 3)
Специализированные аппаратные решения на основе DSP-процессоров с тенденцией замены их массовыми решениями из предыдущих двух классов, так как возросшая производительность универсальных процессоров позволяет решать задачи, прежде бывшие для них весьма тяжёлыми.
Тенденция экстенсивного наращивания производительности процессоров за счёт увеличения их рабочих частот, имевшая место в предыдущие годы, уступает место новой тенденции, нацеленной на активное использование параллелизма в различных его проявлениях. В ближайшие годы это выльется в создание многоядерных архитектур процессоров (от уже существующей технологии Intel HyperThreading к созданию двух- и более ядерных процессоров на одном кристалле, появления которых можно ожидать уже в 2006 году; крайне интересная технология Cell от альянса Sony, Toshiba и IBM, которая затронет не только компьютеры, но, потенциально, и бытовую технику в доме), создание недорогих кластерных решений на основе стандартных компонент (начиная с проекта BeoWulf для ОС Linux) и массовое использование распределённых вычислений (от уже реализовавшихся одиночных проектов типа distributed.net для взлома шифров или SETI@Home для поиска внеземных цивилизаций к технологии GRID и виртуализации вычислений, активно продвигаемых корпорацией IBM). По мнению многих аналитиков и представителей различных компаний, грядёт эра параллельного программирования [25]. Одним из первых её предвестников можно назвать уже существующую технологию EPIC (Explicitly Parallel Instruction Computer) компании Intel, реализованную в коммерческих процессорах Itanium. Переход на новые параллельные архитектуры требует создания чрезвычайно сложных оптимизирующих компиляторов, изменения образа мышления программистов и приложения ими специальных усилий для разработки и реализации соответствующих алгоритмов. В таких условиях
особую
ценность
представляют
алгоритмы,
учитывающие
возможный
параллелизм своей работы. Далеко не все производители систем работы с голосом раскрывают особенности внутренней реализации своих систем, но тем не менее можно сказать, что одними из самых популярных систем распознавания на сегодняшний день являются системы, использующие теорию скрытого марковского моделирования (СММ) [38]. Помимо них в системах распознавания речи также используются нейронные сети (НС) и методы динамического программирования (ДП). В первой главе диссертации рассматривается
8
аппарат СММ применительно к задачам распознавания речи. СММ – это довольно мощный (хотя и громоздкий) и весьма эффективный математический аппарат для решения задач распознавания речи [8]. Использование СММ для распознавания команд давно показало свою эффективность, а возросшие доступные вычислительные мощности открыли дорогу к использованию новых подходов к решению задач, встающих перед разработчиком подобных систем. Одной из важнейших и наиболее сложных задач, возникающих при работе с СММ, является задача обучения модели, то есть нахождения таких её параметров, при которых модель точнее описывает «своё» слово, т.е. генерирует для последовательности речевого сигнала, содержащего это слово, большее значение вероятности, чем другие модели слов из словаря системы. В процессе распознавания команды в системе происходит оценка и сравнение между собой вероятностей генерации наблюдаемого слова различными моделями из словаря с тем, чтобы отобрать среди них наиболее вероятного претендента. Чем лучше модель описывает тестовое (или тренировочное) слово, тем больше шансов, что оно будет верно распознано, т.е. будет выбрано среди всех остальных слов словаря. Особенно заметным становится влияние качества обучения модели на результативность работы системы распознавания в том случае, если словарь системы разрастается, и в нём оказываются похожие слова, т.е. слова, модели которых генерируют близкие значения вероятности.
В
таких
условиях
выбор
правильного
варианта
оказывается
затруднительным. Кроме того, желательно, чтобы модель могла эффективно распознавать «своё» слово по-возможности в более широких пределах изменяющихся условий работы системы распознавания (в различных уровнях зашумлённости или при работе по каналам различающегося качества) и вариативности произнесения слов диктором (в случае стресса или наличия дефектов речи). Отсюда следует, что задача обучения модели, причём её качественного обучения, является весьма актуальной и её решению должно уделяться повышенное внимание. Существуют и давно применяются оптимизированные методы обучения СММ (например, метод Баума-Велча или EM-метод), но они не свободны от недостатков, важнейшие среди которых – это сильная зависимость от начальных условий, порождающая задачу нахождения стартовых параметров СММ, и неспособность найти глобальный экстремум, если локальный экстремум оказывается ближе. Однозначно лучшего метода обучения СММ не известно, и для решения этой задачи могут применяться различные подходы. Одним
из
таких
потенциально
интересных
методов
обучения
являются
9
генетические алгоритмы (ГА). Генетические алгоритмы, относящиеся к концепции эволюционных
вычислений,
–
это
современное,
перспективное
и
активно
разрабатываемое направление методов оптимизации многокритериальных задач. Во второй главе диссертационной работы рассмотрена концепция ГА и их место среди других методов нахождения оптимальных значений, и проведена оценка их применимости к решению задачи обучения СММ. Генетические алгоритмы уже активно используются для обучения нейронных сетей,
проектирования
структуры
механизмов
и
составления
расписаний,
для
оптимизации структуры телекоммуникационных сетей и размещения электронных элементов на плате, поиска оптимальной формы детали и раскроя ткани и т.д. Так, израильская компания «Schema» на основе генетических алгоритмов разработала программный продукт Channeling для оптимизации работы сетей сотовой связи путём выбора оптимальной частоты, на которой будет вестись разговор [44]; компания Boeing использовала генетические алгоритмы для оптимизации турбины двигателя самолёта Boeing 777, оказавшейся по крайней мере на 1% эффективнее с точки зрения расхода топлива (что для данной отрасли считается неожиданной удачей), а фирма Texas Instruments задействовала их для оптимизации расположения компонентов на чипе, чтобы создать как можно меньший по размерам чип, и использование ГА позволило сделать его на 18% меньшим по площади [79]. За рубежом известно несколько случаев применения ГА для оптимизации СММ в системах распознавания речи, ориентированных на английский язык [54, 76, 77]. Но различия в фонематической базе русского и английского языков, уже выступавшие причиной плохой работы иностранных систем распознавания речи с русским языком, не позволяют однозначно перенести на него опыт применения ГА, а отечественных работ подобной направленности на момент написания диссертации не обнаружено. К тому же перечисленные зарубежные работы имеют обзорный и довольно поверхностный характер, не несут в себе сколь-нибудь серьёзного анализа альтернатив реализации ГА и практически не содержат обоснования выбора применяемых решений. В третьей главе диссертации предлагается разработанная автором в рамках программно-аппаратного комплекса «Иволга» конкретная реализация генетического алгоритма, предназначенного для оптимизации процесса обучения СММ тренировочными последовательностями. За основу взята разработанная на кафедре ЭВА МИЭМ в 1998 г. А.А.Серовым система оценки стартовых параметров непрерывных СММ в задачах распознавания команд при кепстральной предобработке речевого сигнала (система
10
SdiApp). Основной задачей SdiApp является получение стартовых параметров СММ для изолированных слов. Результаты её работы используются в разработанной автором системе «Иволга» как отправная точка для работы генетического алгоритма. В этой главе также рассмотрены различные альтернативы и предложены варианты кодирования хромосом ГА, выбраны реализации генетических операторов, подходящие для работы с непрерывными СММ, определены параметры генетического алгоритма, обеспечивающие наиболее эффективное решение поставленной задачи. В четвёртой главе диссертации производится оценка эффективности генетических алгоритмов в решении задачи обучения СММ. Тестирование системы проводилось с использованием имеющейся речевой базы данных (РБД), также разработанной на кафедре ЭВА МИЭМ А.Г.Бурёй. Произведено сравнение результатов работы ГА с традиционными методами поиска оптимальных решений для СММ, рассмотрено влияние параметров генетического
алгоритма
на
эффективность его
работы,
предложены варианты
дальнейшего развития алгоритма, направленные на повышение скорости и устойчивости его работы. Исследование автора показало, что ГА успешно справляются с поставленными задачами, являясь эффективным методом обучения СММ, свободным от основных недостатков традиционно используемого метода Баума-Велча, при этом успешно сочетаясь с ним в рамках единой системы распознавания речи. Кроме того, с учётом современных тенденций развития аппаратной части систем распознавания генетические алгоритмы имеют очень хорошие перспективы по части оптимизации эффективности своей работы, так как позволяют легко распараллелить работу ГА и распределить её между разными процессорами (или процессорными ядрами) в одной машине или между разными компьютерами в сети. В приложении 1 предназначенного
для
приведено
описание
исследования
программного
комплекса
«Иволга»,
генетических алгоритмов в рамках задачи
распознавания голосовых команд. В приложении 2 приведён пример работы системы генетических алгоритмов в рамках программного комплекса «Иволга».
11
Глава 1. Анализ основных проблем применения скрытых марковских моделей в системах распознавания речи Системы распознавания речевых команд являются важным элементом современных систем управления, способных взаимодействовать с человеком посредством акустического канала. В зависимости от места применения конкретной системы управления, точность распознавания команд имеет различную важность: в одних системах допускается заметный процент ошибок (управление текстовым редактором или навигация в браузере), в других – ошибки распознавания крайне нежелательны и имеют высокую цену (управление работой станка или системой вооружения). В любом случае, разработчики подобных систем борются за уменьшение процента ошибок распознавания команд, как за наиболее значимую характеристику качества системы распознавания, отражающуюся в работе всей системы управления в целом. Структура типичной системы распознавания команд представлена на рис.1.1:
Рис. 1.1. Структура системы распознавания команд
Аналоговый речевой сигнал, снятый с микрофона, поступает на вход системы, где производится его оцифровка (дискретизация по времени и квантование по амплитуде). Перед этим, как правило, сигнал дополнительно подвергается низкочастотной фильтрации так называемым фильтром ограничения спектра, чтобы избежать нарушения теоремы Котельникова о дискретизации (также известной как теорема Найквиста или Шеннона) и искажения спектра оцифрованного сигнала. Далее производится сегментация уже цифрового сигнала, во время которой определяются границы слов и входной поток разбивается на отдельные элементы, соответствующие словам. После этого производится предобработка выделенных речевых единиц, целью которой является сокращение объёма информации, с которой предстоит работать системе, с сохранением в то же время значимых информационных признаков речевого сигнала. Существует множество разных методов предобработ-
12
ки (спектральные коэффициенты, клиппирование, кепстральные коэффициенты и многие другие), имеющих свои наборы информационных признаков, обычно представляемых в виде неких коэффициентов. И далее управляющий процессор, оперируя полученными данными, производит сравнение их с памятью эталонов в системе, выбирая наиболее близкий, который и является результатом распознавания. В соответствии с этим результатом система распознавания выдаёт команду на устройство или иной блок системы управления, в рамках которой она реализована. В режиме обучения системы распознавания вместо выдачи выходной команды управляющий процессор производит сохранение нового эталона во внутренней памяти системы для последующей работы. Как видно из схемы, типичная система распознавания команд содержит несколько модулей, каждый из которых оказывает влияние на итоговый процесс распознавания и может быть подвергнут модификации в целях улучшения характеристик системы распознавания в целом. Так, при реализации модуля оцифровки выбирают требуемую частоту выборки, разрядность и число каналов АЦП, параметры фильтра ограничения спектра и оценивают возможную необходимость в дополнительных устройствах типа устройств шумоподавления или компенсации эха. Для систем, реализованных на базе персонального компьютера эта часть работы выполняется звуковой картой, выдающей на выходе цифровой сигнал с разрядностью 8 или 16 бит и частотой дискретизации до 44.1КГц (а более современные модели с разрядностью до 24 бит и частотой дискретизации до 48, 96 или 192КГц). Алгоритм сегментации также может быть реализован различными способами, определяя паузы между словами по энергии сигнала, с учётом шума или без него. Методов предобработки также известно великое множество, наиболее распространённые среди которых – это клиппирование, спектральные коэффициенты, LPC (Linear Prediction Coefficients)
или
ЛПК
(коэффициенты
линейного
предсказания),
кепстральная
предобработка, PLP (Perceptual Linear Predictive), Rasta, ASSF и другие. Значительная часть систем работает с кепстральными коэффициентами, которые считаются достаточно хорошей моделью, соответствующей модели речеобразования человека. Далее в работу включается управляющий процессор, оперирующий моделями слов. Чаще всего для этого используются скрытые марковские модели (СММ). В настоящее время известно немалое число систем распознавания, построенных с использованием аппарата СММ. Использование СММ является на сегодняшний день наиболее популярным и успешно применяемым подходом к проблеме распознавания речи. Помимо систем распознавания речи на основе СММ существуют также системы на основе нейронных сетей (НС) и методов динамического программирования (ДП).
13
Аппаратная база таких систем также может быть весьма разнообразной и оказывать заметное влияние на итоговую эффективность системы распознавания в целом. Как было отмечено во введении, на данный момент есть несколько наиболее распространённых устоявшихся вариантов её реализации, весьма распространённым среди которых является персональный компьютер архитектуры x86. Аппаратная часть систем распознавания уже не является самым узким местом и способна выполнять качественную оцифровку речевого сигнала с требуемыми параметрами, а также обеспечивает требуемые вычислительные мощности для реализации необходимых алгоритмов предобработки и работы с моделями слов. Во
введении
была
отмечена
важность
качественного
обучения
системы
распознавания или создания как можно более хороших моделей слов в случае системы, основанной на СММ. Именно этой задаче будет уделено основное внимание в диссертационной работе, поскольку другие основные модули систем распознавания команд сегодня обладают довольно хорошими характеристиками. Использование СММ для распознавания речи базируется на следующих предположениях [15]: 1)
Речь может быть разбита на сегменты (состояния), внутри которых речевой сигнал может рассматриваться как стационарный. Переходы между этими состояниями осуществляется мгновенно.
2)
Вероятность символа наблюдения, порождаемого моделью, зависит только от текущего состояния модели и не зависит от предыдущих порождённых символов.
По сути, ни одно из этих двух предположений не является справедливым для речевого сигнала, и большое количество исследований было посвящено тому, чтобы сгладить недостатки этих предположений [65]. Так в русском языке для взрывных звуков типа [п] или [б] неверно предположение 1, поскольку речевой сигнал в пределах фонемы сильно изменяется – сначала резко и быстро нарастает и затем так же быстро спадает почти к нулевому уровню, что и нашло отражение в названии таких звуков. Предположение 2 спорно, например, в силу того, что вероятность появления звука зависит от его положения в слове – так сочетание звуков [ой] более характерно для окончаний, чем для начала слова. Тем не менее, стандартные СММ являются основой для большинства современных систем распознавания речи. При использовании СММ перед разработчиком встают несколько серьёзных задач, которые будут рассмотрены далее в этой главе.
14
1.1 Что такое марковская модель Рассмотрим систему, которая в произвольный момент времени может находиться в одном из N различных состояний S1, S2,..., SN, как показано на рисунке 1.2.
S1
S2
S4
S3
Рис. 1.2. Марковская модель
В дискретные моменты времени t = 1, 2, ... система переходит из одного состояния в другое, но может оставаться и в существующем (текущее состояние в момент времени t будем описывать как q t). При этом переходы осуществляются в соответствии с некоторой матрицей вероятностей, описываемой как aij, где aij = P[ qt = Sj | qt-1 = Si ], 1≤i,j≤N
(1.1)
При этом aij имеет следующие свойства: aij≥0
(1.2)
N
∑a j= 1
ij
=1
(1.3)
Такой стохастический процесс называется марковским процессом. Результатом наблюдения такого процесса является последовательность состояний, которые система проходит за время наблюдения. Рассмотрим для примера марковскую модель погоды с тремя состояниями. Будем считать, что наблюдаемая раз в день (например, в полдень) погода может иметь одно из следующих состояний: S1 - дождь (снег)
15
S2 - облачно S3 - ясно Условимся, что погода в день t описывается одним из трёх указанных выше состояний, и матрица вероятностей переходов имеет вид: 0.4 0.3 0.3 A = {a ij } = 0.2 0.6 0.2 0.1 0.1 0.8 Считая, что погода в первый день (t=1) солнечная (состояние 3), мы можем задаться вопросом, какова вероятность того, что в последующие 7 дней погода будет «солнечносолнечно-дождь-дождь-солнечно-облачно-солнечно»? Или более формально можно определить последовательность наблюдений как O = {S3, S3, S3, S1, S1, S3, S2, S3}, соответствующую временам t = 1, 2, …, 8, и мы хотим найти вероятность O для заданной модели. Эта вероятность может быть записана и рассчитана как: P(O|Модель) = P[S3, S3, S3, S1, S1, S3, S2, S3| Модель] = = P[S3] * P[S3|S3] * P[S3|S3] * P[S1|S3] * P[S1|S1] * P[S3|S1] * P[S2|S3] * P[S3|S2] = = П3 * a33 * a33 * a31 * a11 * a13 * a32 * a23 = = 1 * (0.8)(0.8)(0.1)(0.4)(0.3)(0.1)(0.2) = 1.536*10 -4 Здесь мы использовали запись Пi = P[ q1 = Si ], 1≤ i ≤ N для определения вероятностей начальных состояний. Таким образом, имея модель процесса в виде матрицы вероятностей A = aij и матрицы вероятностей начальных состояний Пi, можно вычислить вероятность любой последовательности состояний, т.е. любого наблюдения. Такая модель и называется марковской моделью. Однако для систем распознавания речи подобная модель не дает точного описания и может применяться лишь со значительными ограничениями, поскольку реальные системы распознавания речи имеют структуру вложенных стохастических систем, которые и будут рассмотрены далее.
1.2 Скрытая марковская модель (СММ) Рассмотренный выше тип марковских моделей хорошо применим там, где состоя-
16
ния модели соответствуют реально наблюдаемым событиям, однако такие модели слишком ограничены, чтобы быть применимыми к большому числу интересных задач, в том числе и к распознаванию речи. На практике наиболее распространены так называемые скрытые марковские модели (СММ). Они описывают вложенные стохастические процессы, когда реально наблюдаются только события внешнего процесса, а события некоего скрытого процесса не наблюдаются непосредственно – они могут быть определены только из наблюдений внешнего процесса. В таких моделях наблюдаемые события являются вероятностными функциями от реального состояния системы. Рассмотрим абстрактный пример стохастического процесса и на его примере покажем, что представляют собой скрытые марковские модели. Пусть в комнате имеется N урн. В каждой из урн находится большое число шариков M различных цветов. Наблюдение производится следующим образом: некто выбирает начальную урну и случайным образом извлекает из нее шарик. Цвет шарика записывается как наблюдение и шарик возвращается в ту же урну. Затем выбирается новая урна, и процесс повторяется. Результатом наблюдения является последовательность цветов. В этом примере мы записывали только цвета извлекаемых шариков и не записывали номера урн, из которых они извлекались. Т.е. стохастический процесс выбора урны остался скрытым. При этом СММ можно описать следующим набором параметров: 1) N – число состояний модели. Несмотря на то, что внутренние состояния системы скрыты, для реальных приложений число состояний N выбирается, исходя из физических свойств моделируемого процесса. Будем обозначать конкретное значение состояния как S = {S1,S2,...SN}, и состояние системы в момент времени t как qt. 2) M – число различных, наблюдаемых в каждом состоянии символов (т.е. размер алфавита). Наблюдаемые символы соответствуют физическому выходу моделируемой системы (в нашем примере символом является цвет извлекаемого шарика). Далее условимся обозначать конкретные символы как V = {v1,v2,...,vM }. 3) A = {aij} – матрица вероятностей переходов, где aij = P[qt+1=Sj|qt=Si], 1≤i,j≤N Для специального случая, когда любое состояние может быть доступно из любого другого за один шаг (полносвязный граф как на рисунке 1.2), для всех aij выполняется условие aij > 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 <<1 вероятность может быть представлена выражением: PS ,MO = 1 − O ( H ) Pm .
(2.12)
С учётом сказанного, для частной схемы H можно определить ожидаемое число копий в следующем поколении после реализации операторов отбора, кроссинговера и мутации по следующей формуле: m( H , t + 1) ≥ m( H , t )
f (H ) L( H ) [1 − O( H ) Pm ] = 1 − Pc f cp ( S ) L − 1
f (H ) L( H ) L( H ) = m( H , t ) − O( H ) Pm + Pc Pm O ( H ) 1 − Pc f cp ( S ) L −1 L − 1
(2.13)
Или в более традиционном для литературы по генетическим алгоритмам виде: m( H , t + 1) ≥ m( H , t )
f (H ) L( H ) 1 − Pc − O( H ) Pm f cp (S ) L −1
(2.14)
Данная формула отражает фундаментальную теорему генетического алгоритма, которая определяет асимптотическое число схем, выживающих при его реализации на каждой итерации. Наиболее существенное влияние на число выживающих схем оказывают значения целевых функций отдельной схемы и всей популяции, а эффективность реализации генетических алгоритмов зависит от размера строительных блоков. Теорема схем показывает, что количество строительных блоков растет по экспоненте, в то время как схемы с приспособленностью ниже средней распадаются с той же скоростью. Теорема весьма упрощенно описывает поведение ГА. Во-первых, f(H) и fcp не остаются постоянными от поколения к поколению, и приспособленности членов популяции изменяются уже после нескольких первых поколений. Во-вторых, теорема схем объясняет лишь потери схем, но не появление новых. В то же время, несмотря на простоту, теорема схем описывает несколько важных аспектов поведения ГА. Мутации с большей вероятностью разрушают схемы высокого порядка, в то время как кроссовер с большей вероятностью разрушает схемы с большей определенной длиной. Популяция сходится, то есть стабилизируется на хорошем решении, пропорционально отношению приспособленности лучшей особи к средней приспособленности в популяции; это отношение называется мерой давления отбора (selection pressure).
49
Увеличение Pc,
или Pm, или
уменьшение давления отбора
увеличивает
пространство поиска, но не позволяет использовать все хорошие схемы, которыми располагает ГА. Уменьшение Pc, или Pm, или увеличение давления выбора ведет к улучшению использования найденных схем, но тормозит исследование пространства в поисках новых хороших схем. Генетический алгоритм должен отслеживать равновесие, проблему поддержания которого называют проблемой «баланса исследования и использования». Генетический алгоритм не выполняет полный перебор всех точек в пространстве поиска,
но
он
обрабатывает
значительное
число
гиперплоскостей
поискового
пространства, отличающихся высокой приспособленностью. Каждая гиперплоскость соответствует множеству похожих строк с высокой приспособленностью. Преимущества генетических алгоритмов становятся еще более прозрачными, если рассмотреть основные их отличия от традиционных методов. Основных отличий четыре [19]. 1. Генетические алгоритмы работают с кодами, в которых представлен набор параметров, напрямую зависящих от аргументов целевой функции. Причем интерпретация этих кодов происходит только перед началом работы алгоритма и после завершения его работы для получения результата. В процессе работы манипуляции
с
кодами
происходят
совершенно
независимо
от
их
интерпретации – код рассматривается просто как соответствующим образом закодированная
строка,
например,
битовая,
символьная
или
строка
вещественных чисел. 2. Для поиска генетический алгоритм использует несколько точек поискового пространства одновременно, а не переходит от точки к точке, как это делается в традиционных методах. Это позволяет преодолеть один из их недостатков – опасность попадания в локальный экстремум целевой функции, если она не является унимодальной, то есть имеет несколько таких экстремумов. Использование нескольких точек одновременно значительно снижает такую возможность. 3. Генетические
алгоритмы
в
процессе работы
не
используют
никакой
дополнительной информации, что повышает скорость работы. Единственной используемой информацией может быть область допустимых значений параметров и целевой функции в произвольной точке. 4. Генетический алгоритм использует как вероятностные правила для порождения
50
новых точек анализа, так и детерминированные правила для перехода от одних точек к другим. Выше уже говорилось, что одновременное использование элементов случайности и детерминированности дает значительно больший эффект, чем раздельное. Замечательная черта генетических алгоритмов состоит в том, что они выполняют множество изощренных манипуляций с решениями задачи, представленными отдельными хромосомами, но без малейшего представления о том, что же при этом происходит. Фитнес-функция – это единственная часть программы, которая должна понимать, что же на самом деле кодирует хромосома. Поэтому для каждого приложения надо писать новые фитнес-функции. Тут нужно обратить внимание, что фитнес-функция – это, пожалуй, наиболее важная (или одна из) деталь ГА. При этом необходимо выделить 3 главных момента [51]: 1. Функция оценки должна быть адекватна задаче. Это означает, что для успешного поиска лучшего решения необходимо, чтобы распределение значений фитнес-функции совпало с распределением реального качества решений (не всегда «качество» решения эквивалентно его оценке по фитнесфункции). 2. Фитнес-функция должна иметь рельеф, то есть ощутимо изменяться при смещении по ландшафту параметров. Мало того, рельеф должен быть разнообразным. Это означает, что ГА имеет мало шансов на успех, если на поверхности фитнес-функции есть огромные «плоские» участки – это приводит к тому, что многие (или, что хуже, все) решения в популяции при различии в генотипе не будут отличаться фенотипом, то есть, несмотря на то, что решения различаются, они имеют одинаковую оценку, а значит алгоритм не имеет возможности выбрать лучшее решение – выбрать направление дальнейшего развития. Эта проблема также упоминается как «проблема поля для гольфа», когда всё пространство абсолютно одинаково, за исключением лишь одной точки, которая и является оптимальным решением – в этом случае алгоритм просто остановится или будет блуждать абсолютно случайно. 3. Фитнес-функция должна требовать минимума ресурсов. Так как это наиболее часто используемая деталь алгоритма, она оказывает существенное влияние на скорость его работы. Успешное решение задачи №1 при работе с СММ, описанное в Главе 1, непосредственно влияет на этот процесс.
51
Генетические алгоритмы имеют два слабых места. Сама постановка задачи в их терминах, во-первых, не дает возможности проанализировать статистическую значимость получаемого с их помощью решения, так как выборка производится не равномерно по всем точкам пространства параметров, а больше ориентируясь на уже известные хорошие решения, и, во-вторых, эффективно сформулировать задачу – определить критерий отбора хромосом под силу только специалисту. В силу этих факторов генетические алгоритмы сегодня надо рассматривать скорее как инструмент научного исследования, чем как средство анализа данных для практического применения. Но в двух случаях генетические алгоритмы очень хороши. Первый – когда не известен способ точного решения задачи. Если мы знаем, как оценить приспособленность хромосом, то всегда можем заставить генетический алгоритм решать эту задачу. Второй случай – когда способ для получения точного решения существует, но очень сложен в реализации (требует больших затрат времени и денег, то есть, попросту говоря, дело того не стоит).
2.7 Выводы В главе рассмотрены основные методы поиска оптимальных решений и границы их применимости. Для систем на основе СММ (в том числе и систем автоматического распознавания речи) показано, что методы, основанные на математических вычислениях, способны привести только к локальному экстремуму или неприменимы в силу чрезвычайно жёстких ограничений на целевую функцию, выполнить которые при обучении СММ не представляется возможным. Кроме того, традиционно используемый для обучения СММ метод Баума-Велча или эквивалентная ему EM-процедура сильно зависят от стартовых значений, что также является ограничением. На примере системы распознавания речи, существующей на кафедре ЭВА МИЭМ, обнаруживаются серьёзные проблемы и при попытках использовать перечислительные методы – из-за очень высокой размерности задачи и требований к точности представления данных в моделях попытка решения этой задачи ведёт к т.н. «комбинаторному взрыву», то есть фактической невозможности перебрать все возможные решения и найти среди них оптимальное. Рассмотрена современная концепция эволюционных вычислений и в её контексте особенно подробно описана парадигма генетических алгоритмов, включая последователь-
52
ность работы типового генетического алгоритма, и объяснены принципы его работы. Посредством теоремы схем показана заметно лучшая вычислительная эффективность применения ГА, чем у перечислительных методов, а также способность алгоритма не зацикливаться на локальном экстремуме. Задача обучения СММ, рассмотренная в первой главе, удовлетворяет предпосылкам для успешного применения аппарата генетических алгоритмов. Поскольку точное и однозначное решение данной задачи не известно, но есть возможность оценить каждое из предлагаемых решений, есть критерий для оценки получившегося результата и, как следствие, – возможность реализовать оценочную функцию (фитнес-функцию) для использования в генетическом алгоритме. Кроме того, вычисление фитнес-функции (значение которой равно вероятности генерации наблюдаемой последовательности при заданных параметрах скрытой марковской модели) не является особенно трудоёмким, что позволяет многократно её вычислять для различных параметров, то есть создавать популяции решений. Эффективную фитнес-функцию позволяет создать решение рассмотренной в Главе 1 задачи №1. Сами параметры, подлежащие оптимизации (матрица переходов СММ), весьма хорошо соответствует понятию хромосомы – эти параметры (элементы матрицы) могут быть легко отделены друг от друга и закодированы каждый в своём «гене» хромосомы, так что генетический алгоритм окажется способным создавать произвольные их комбинации в поисках тех, что ведут к лучшим значениям целевой функции. Итак, налицо все предпосылки для использования генетических алгоритмов для оптимизации процесса обучения СММ.
53
Глава 3. Реализация генетического алгоритма для решения задачи оптимизации СММ 3.1 Система распознавания речевых команд на основе СММ Одним из этапов работ в области распознавания речи, ведущихся на кафедре ЭВА МИЭМ, была разработка в 1998 году Серовым А.А. системы оценки стартовых параметров СММ в задачах распознавания команд при кепстральной предобработке речевого сигнала [33]. Программная часть комплекса получила название SdiApp. Система реализует работу со скрытыми марковскими моделями изолированных слов в непрерывном признаковом пространстве на основе кепстральных коэффициентов. На сегодняшний день кепстральные коэффициенты довольно часто используются в системах распознавания речи для определения признакового пространства. Другие распространённые варианты – это LPC (Linear Prediction Coefficients), PLP (Perceptual Linear Predictive), Rasta, ASSF и др. Основное достоинство кепстральных коэффициентов в том, что они наиболее точно соответствуют модели речеобразования в современном ее понимании и позволяют достаточно точно характеризовать состояние речевого тракта диктора по данным наблюдения косвенного процесса изменения давления воздуха возле микрофона системы распознавания. Для систем распознавания на основе СММ использование кепстральных коэффициентов выражается в необходимости использовать непрерывные СММ, так как само признаковое пространство непрерывно. Система SdiApp ориентирована на работу с командами (изолированными словами), что подразумевает построение моделей всех подлежащих распознаванию слов. Схема работы распознавателя команд рассмотрена в главе 1. Слова, поступающие на вход системы с микрофона, из звуковых файлов или из речевой базы данных (РБД), имеющейся на кафедре ЭВА МИЭМ [5], преобразуются в последовательность векторов кепстральных коэффициентов, и в дальнейшем система может быть обучена, то есть могут быть построены скрытые марковские модели для выбранных слов. Как было отмечено в первой главе, этот процесс представляет собой одну из задач оптимизации, и поэтому именно в этом месте оправдано применение генетических алгоритмов.
54
Оптимизации необходимо подвергнуть матрицы вероятностей переходов СММ в поисках более хороших решений. Матрицы вероятностей начальных состояний СММ в оптимизации не нуждаются, так как решением этой задачи занимается программа SdiApp, однако при необходимости это сделать не возникнет никаких преград. Матрицы вероятностей наблюдаемых символов также не требуется модифицировать, так как они строятся исходя из статистики наблюдаемых символов в речевом сигнале, и это также задача SdiApp. Исходная популяция для генетического алгоритма может быть сформирована на основе результатов работы системы SdiApp, но, как показали эксперименты автора, и что будет рассмотрено далее, ГА хорошо работает и при старте со случайно сгенерированной популяцией.
3.2 Построение генетического алгоритма для оптимизации процесса обучения СММ тренировочными последовательностями 3.2.1 Кодирование хромосомы Первая важная задача, которую надо решить при проектировании генетического алгоритма – это задать механизм кодирования информации в хромосоме, поскольку от правильного выбора варианта кодирования зависит скорость и качество работы ГА. Существует несколько стандартных подходов к кодированию хромосом [51]: 1) Кодирование хромосомы двоичной битовой строкой. Параметры, подлежащие оптимизации, кодируются битовой строкой, в которой каждому параметру соответствует её определённая часть. Данный метод особенно эффективен, когда параметры имеют дискретный набор значений. Кодирование в этом случае получается весьма экономным, а генетические операторы – быстрыми и простыми. Так, например, работа оператора мутации часто сводится к инверсии одного или нескольких случайно выбранных бит в строке, а скрещивание – к объединению частей двух битовых строк или к их сложению с учётом предварительно наложенной битовой маски. Следует
заметить,
что
определённые
наборы
параметров
могут
быть
некорректными и недопустимыми логикой самой задачи, и правильный выбор метода способен исключить такие варианты ещё на этапе кодирования хромосомы, сделав так, что недопустимым состояниям просто не будет соответствовать ни одна реальная хромосома. Наиболее просто это реализуется именно с двоичными хромосомами.
55
Вариацией этого метода является кодирование с использованием кодов Грэя (Gray codes) [45, 80]. Коды Грэя – это двоичные коды, особенность которых в том, что последовательные значения отличаются лишь одним битом в строке. Такое кодирование влияет на работу оператора мутации – случайная мутация имеет больше шансов привести к последовательным малым изменениям особи, но при этом и расширяет диапазон этих возможных изменений. Эта интересная возможность может быть охарактеризована так: большая часть мутаций ведёт лишь к малым последовательным изменениям, в то время как редкая мутация способна привести к действительно серьёзным изменениям и инициировать исследование алгоритмом новой области в пространстве хромосом. 2) Кодирование хромосомы символьной строкой. Этот метод, по сути, является расширением предыдущего, и разница лишь в том, что вместо битов используются символы, принимающие больше двух возможных значений. Впрочем, есть и некоторая разница – в двоичной хромосоме для кодирования одного параметра часто используются несколько бит (как в случае кодирования целого числа), а в символьной – каждый параметр обычно кодируется своим значением символа (но можно сделать ещё один шаг и начать кодировать параметры несколькими недвоичными символами – в этом случае рассматриваемая далее аналогия с биологическими системами ещё более усилится). Это несколько, хотя и не сильно, усложняет генетические операторы и лишает разработчика алгоритма некоторых возможностей по оптимизации скорости их работы, связанных с простым представлением двоичных чисел в современных ЭВМ, зато этот метод очень гибок и легко расширяем при необходимости, если требуется увеличить число возможных значений, а сама хромосома очень наглядна. Стоит заметить, что этим методом кодирования хромосомы часто эмулируется первый метод, когда на самом деле вместо битовой строки используется и хранится в памяти машины символьная строка, но алфавит её допускает лишь два возможных значения – “0” и “1”. В случаях, когда это не вносит особых замедлений скорости работы алгоритма, такой подход оправдан большей наглядностью самой хромосомы, что в некоторых случаях может быть полезно разработчику. Дополнительным преимуществом этого метода кодирования хромосомы является в определённом смысле его аналогичность кодированию информации в биологических системах, где ипользуется алфавит из четырёх возможных нуклеотидов: аденин, тимин, гуанин и цитозин (А, Т, Г, Ц) в ДНК, или аденин, урацил, гуанин и цитозин (А, У, Г, Ц) в РНК [18]. Упоминаемое ранее кодирование параметра несколькими недвоичными
56
символами близко по сути к наличию в ДНК кодонов – трёх следующих друг за другом нуклеотидов, кодирующих определённый аминокислотный остаток [18]. Таким образом, данный метод кодирования может быть полезен сторонникам создания систем, которые как можно более полно соответсвуют биологическим, а также в решении задач биологии. 3) Кодирование хромосомы вещественными числами. Каждый параметр описывается вещественным числом, и хромосома представляет собой вектор вещественных чисел. Минусом метода является то, что на хранение вещественных чисел требуется больше памяти, чем на хранение хромосом в одном из предыдущих вариантов. Правда, даже при размере популяции в несколько тысяч особей (например, 5000 – весьма крупная популяция) и количестве закодированных в одной хромосоме параметров в 100 (достаточно большая хромосома), при выделении на вещественное число 8 байт на хранение популяции потребуется 8*100*5000 = 4000000 байт, что при нынешнем развитии компьютерной техники не представляется значительной величиной. Зато у этого метода есть и большие плюсы. В случае, если природа параметров такова, что они описываются именно вещественными числами (например, значения вероятностей или кепстральные коэффициенты), кодирование в двоичной хромосоме потребует их дискретизации и приведёт к неизбежной потере точности, в случае если разработчиком алгоритма будет выделено недостаточно количество бит на один параметр, а в случае использования хромосомы вещественных чисел такой проблемы не будет. Кроме того, оперирование вещественными числами в таком случае избавляет от постоянных перекодировок параметров во время работы алгоритма из битовой формы в числовую, что положительно сказывается на скорости и надёжности работы программы. Возможны и комбинированные методы кодирования, например, когда часть параметров кодируется вещественными числами, а часть – общей битовой строкой. Параметры, требующие оптимизации в решаемой задаче, – это элементы матрицы вероятностей переходов (в дальнейшем просто матрицы), которые по своей природе являются вещественными числами. Кроме того, при вычислении вероятности генерации итоговой
последовательности
моделью
происходит
перемножение
отдельных
вероятностей, что при малой точности представления способно привести к накоплению больших ошибок и отрицательно сказаться на качестве распознавания. В силу вышеперечисленного
кодирование
хромосомы
вещественными
числами
является
оправданным. Итак, для данной задачи хромосома представляет собой набор строк матрицы
57
вероятностей переходов, каждая из которых является набором вещественных чисел. На строки и элементы матрицы существуют ограничения, и их надо учитывать при работе алгоритма: как было сказано в главе 1, каждый элемент матрицы переходов должен иметь неотрицательное значение (см. 1.2) и, кроме того, сумма элементов строки должна равняться единице (см. 1.3). Подробнее реализация этих ограничений будет рассмотрена далее вкупе с оператором мутации. Значением целевой функции является вероятность генерации обучающего слова на основе конкретного экземпляра данной СММ при определённых значениях элементов матрицы вероятностей переходов, которые и определяются содержимым хромосомы. Вот примеры двух матриц переходов для модели слова «информация» (СММ с поступательно ограниченными переходами, количество состояний модели N=10): N:10 F:9,57077200489701E-215 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01724138 0,01847291 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,89905173 0,08428159 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,03571429 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
N:10 F:8,23964039298564E-212 0,93309182 0,06690814 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92160136 0,07839863 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93325907 0,06674092 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92900026 0,07099972 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92766172 0,07233825 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93466944 0,06533053 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92807543 0,07192456 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93282956 0,06717033 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92797035 0,07202973 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Здесь отображено генетического
алгоритма,
содержимое и
видно,
матрицы что
переходов
изначальная
до
и
после
работы
модель
с
поступательно
ограниченными переходами стала ещё более строгой, с переходами только в следующее состояние. В результате мы получили модель, сильно оптимизированную на конкретный экземпляр слова, вероятность генерации которой выше, чем у исходной модели, на несколько порядков: 8,239640*10 -212 против 9,570772*10 -215. Это безусловно хорошо, если
58
требуется точно распознать именно этот образец слова, но может отрицательно сказаться на распознавании других экземпляров этого слова, в произнесении которых наблюдается некоторая вариативность, что может иметь место при работе системы с различными дикторами или же при изменении физического состояния того же самого диктора. В целях учёта такой ситуации проводить оптимизацию надо на наборе вариантов произнесения слова, а не на одном его экземпляре. В зависимости от условий работы системы распознавания речи, должна ли она работать с одним диктором в каждый момент времени или со многими, на вход системы подаются несколько образцов одного и того же слова, произнесённые одним диктором в разные моменты времени или в разном эмоциональном состоянии, или же произнесённые различными дикторами. Фитнесфункция должна учитывать этот полный набор слов и проводить оценивание особей по каждому экземпляру слова, подводя обобщённый итоговый результат. Для этого может использоваться комбинированная фитнес-функция, получающая вероятности генерации для каждого из образцов слова, входящего в набор, и составляющая их взвешенную сумму. Комбинированная фитнес-функция будет рассмотрена в главе 4. При необходимости, в хромосому можно добавить отдельной строкой и матрицу вероятностей начальных состояний, поскольку она имеет те же размеры, что и строка матрицы вероятностей переходов, и подчиняется тем же самым ограничениям. Длина хромосом для данной задачи постоянна, так как строки матрицы имеют фиксированную длину, равную числу состояний модели. Возможно построение хромосом переменной длины, но в нашем случае это не требуется, так как размерность матрицы в процессе работы строго фиксирована и не изменяется. Такой подход практикуется, к примеру, в мобильных генетических алгоритмах (МГА, messy GA), где возможны как неполные, так и избыточные хромосомы [44].
3.2.2 Создание исходной популяции Для работы генетического алгоритма требуется задать начальную популяцию – ту точку, с которой он стартует и которая подлежит улучшению. Как было сказано ранее, на вход генетического алгоритма может быть подана случайно сгенерированная популяция, но часто подаются и результаты работы какого-либо другого алгоритма. Так и в нашем случае, на выходе программы SdiApp уже имеется набор стартовых параметров СММ, отражающий общие закономерности всех экземпляров текущего слова, модель которого подвергнется оптимизации.
Представляется
разумным не отказываться
от этой
информации и построить исходную популяцию для работы генетического алгоритма,
59
основываясь именно на этих данных. Здесь возникает вопрос, как именно сгенерировать особей стартовой популяции. Дело в том, что стартовые параметры СММ описываются только одной особью, и у нас есть выбор, либо заполнить всю исходную популяцию полностью идентичными особями и позволить затем оператору мутации начать движение по ландшафту параметров, либо же сразу внести в неё некоторое разнообразие, чтобы ускорить старт алгоритма и сдвинуть дело с мёртвой точки. Предлагается следующий вариант создания популяции: за основу её по-прежнему берутся результаты работы алгоритма оценки стартовых параметров СММ и на их основе создаются особи, часть из которых сразу же подвергается мутации для того, чтобы разнообразить эту популяцию. Кроме того, популяция может быть сразу же дополнена определённым числом случайных особей, что уменьшит изначальную возможность «застревания» алгоритма в локальном экстремуме, когда алгоритм остаётся в пределах локального пика ландшафта и оказывается неспособным найти более высокий пик. Для этого же предназначен и оператор мутации в основном цикле работы ГА, но нет смысла оставлять эту работу для него «на потом», поскольку добавление случайных особей в популяцию по крайней мере не сделает её хуже с точки зрения максимального качества отдельных особей. Экспериментальные исследования автора показали, что существенной разницы в эффективности этих двух подходов не наблюдается – вариант со случайными мутациями на этапе создания исходной популяции действительно опережает на несколько шагов на начальных этапах вариант с полностью идентичными особями, но в дальнейшем стабилизация результата происходит примерно в одинаковых точках (см. рис. 3.1):
60
Приспособленность
9,00E-212 8,00E-212 7,00E-212 6,00E-212 5,00E-212 4,00E-212 3,00E-212 2,00E-212 1,00E-212 0,00E+00 1
51 101 151 201 251 301 351 401 451 501 Поколение С мутацией
Без мутации
Рис.3.1. Сравнение методов генерирования начальной популяции
Использование мутации во время генерирования начальной популяции особей оправдано в том случае, если разработчик намерен ограничиться небольшим числом поколений работы генетического алгоритма – в этом случае небольшой выигрыш в скорости имеет смысл. В целом, использование мутации при генерации начальной популяции – это полезный метод, и независимо от того, как много времени требует для работы оператор мутации (как правило это достаточно быстрый оператор), проводить её на этом этапе работы алгоритма имеет смысл, потому что в случае малого числа поколений это даст выигрыш в скорости, а в случае большого числа поколений дополнительные накладные расходы на проведение мутации исходной популяции будут незначительны в сравнении с работой всего алгоритма в целом. Кроме того, потенциально увеличение разнообразия популяции является плюсом, способным в отдельных случаях заметно ускорить работу алгоритма по нахождению более хороших решений. Следует заметить, что генетический алгоритм хорошо работает и в случае, когда начальная популяция сгенерирована целиком случайно, без опоры на результат работы
61
какого-либо другого алгоритма. У данного метода тоже есть своё преимущество – существует возможность, что ввиду особенностей ландшафта решений при старте со случайной точки алгоритм придёт к более качественному решению, нежели начиная работать в окрестности одной фиксированной области. Исследования автора показали, что при таком старте алгоритм также сходится к достаточно хорошему решению, демонстрируя лишь некоторое запаздывание на начальных шагах работы в сравнении с
Приспособленность
двумя рассмотренными ранее методами генерации исходной популяции (рис. 3.2):
9,00E-212 8,00E-212 7,00E-212 6,00E-212 5,00E-212 4,00E-212 3,00E-212 2,00E-212 1,00E-212 0,00E+00 1
41 81 121 161 201 241 281 321 361 Поколение Copy
Mutation
Random
Рис.3.2 Случайный метод генерирования начальной популяции
Под обозначением «Copy» на графике подразумевается метод с использованием результата работы предыдущего алгоритма (выходные результаты работы системы SdiApp), «Mutation» – результат работы предыдущего алгоритма (SdiApp) плюс мутация части особей и «Random» – случайное заполнение исходной популяции. Как видно из графика на рис.3.2, метод с заполнением исходной популяции случайными значениями также работает и приводит к тому же самому итоговому решению, к которому сходятся и первые два метода. Разница наблюдается лишь на начальных этапах работы алгоритма, где ему требуется дополнительное время для нахождения более хороших решений, из-за чего график приспособленности оказывается более пологим для этого случая.
62
Для пользователя разница будет заметна только в случае, когда выбрано малое
Приспособленность
число шагов работы алгоритма (рис. 3.3):
9,00E-212 8,00E-212 7,00E-212 6,00E-212 5,00E-212 4,00E-212 3,00E-212 2,00E-212 1,00E-212 0,00E+00 1
11 21 31 41 51 61 71 81 91 Поколение Copy
Mutation
Random
Рис.3.3. Разница на начальных этапах работы различных методов генерирования исходной популяции
Подводя итог, можно сказать, что метод с заполнением исходной популяции решениями, сгенерированными каким-либо предыдущим алгоритмом («Copy»), удобен, когда требуется улучшить уже полученное решение. Хотя оно же порой может быть достигнуто и со случайной популяции, затраты на это могут быть весьма высоки, и разработчик алгоритма должен учесть это в целях повышения эффективности работы. Хорошим дополнением к предыдущему методу является мутация части исходных особей («Mutation»), полученных из результатов работы другого алгоритма (например, алгоритма Баума-Велча). Такая мутация вносит некоторое разнообразие в популяции, что, как правило, положительно влияет на работу всего алгоритма в целом. И, наконец, метод со случайным заполнением исходной популяции («Random») показывает, что ГА может быть не привязан к начальным условиям и при этом всё равно способен найти хорошее решение. Метод очень хорош на этапе начального исследования или когда результаты работы других алгоритмов недоступны, а также в случае подозрения на то, что начальные решения группируются вокруг точки локального экстремума, и при
63
необходимости более полно исследовать пространство решений, и поэтому будет использоваться, когда результаты работы предыдущего алгоритма недоступны, или при сомнениях в их оптимальности.
3.2.3 Размер популяции Для работы генетического алгоритма необходимо задать размер популяции или количество точек пространства поиска, которым будет оперировать алгоритм на каждом шаге процесса работы. При малом размере популяции в ней наблюдается низкое разнообразие, и она более подвержена «застреванию» в точках локальных экстремумов, поскольку всё небольшое количество особей быстро сходится к одной самой лучшей, наличествующей в популяции, после чего разнообразие генов пропадает, и кроссовер оказывается неспособен породить что-то новое. Если же в такой ситуации задана ещё и достаточно низкая вероятность мутации, то алгоритму может потребоваться очень большое время для выхода из сложившейся ситуации. Поэтому размер популяции не должен быть очень малым. С другой стороны, излишне большая популяция хотя и поддерживает высокий уровень разнообразия особей, требует на каждом шаге работы алгоритма большого времени на обработку. Поэтому целью определения размера популяции является соблюдение баланса между скоростью нахождения приемлемого решения, измеряемого числом необходимых для этого поколений эволюции, и скоростью работы самого алгоритма, выраженной в машинном времени. Это значение может быть определено экспериментально на основании серии тестов. Так, на речевой базе данных (РБД) кафедры ЭВА МИЭМ было оценено время сходимости алгоритма для отдельных слов в зависимости от размера популяции. Графики зависимости имеют следующий вид (рис. 3.4):
64
9,00E-212
8,00E-212
7,00E-212
Приспособленность
6,00E-212 10 особей 20 особей
5,00E-212
50 особей 100 особей 4,00E-212
200 особей 500 особей
3,00E-212
2,00E-212
1,00E-212
0,00E+00 1
48
95
142 189 236 283 330 377 424 471 518 565 612 659 706 753 800 847 894 941 988 Поколение
Рис.3.4 Зависимость сходимости генетического алгоритма от размера популяции
По горизонтальной оси графика отложено число поколений работы алгоритма, по вертикальной – значение фитнес-функции лучшего решения в популяции (равное вероятности генерации тестового слова моделью). Из эксперимента видно, что слишком малое выбранное значение размера популяции (10 особей) приводит к очень медленному движению алгоритма в сторону лучших решений, и кроме того на графике часто наблюдаются горизонтальные участки, которые свидетельствуют о застревании алгоритма в точках локальных экстремумов. При увеличении размера популяции алгоритм быстро набирает скорость и доходит до определённой точки, после которой дальнейшее увеличение популяции не оказывается особо эффективным, поскольку не даёт заметного улучшения работы. Так, популяция размером в 500 особей оказывается всего лишь незначительно эффективнее популяции размером 200 особей при том, что на её обработку требуется более чем в два раза больше времени. В итоге, по результатам этих экспериментов были сделаны выводы о том, что оптимальный размер популяции для данной задачи находится в районе 200 особей. Дальнейшее его увеличение не даёт заметного выигрыша.
65
3.2.4 Генетические операторы: оператор отбора Для осуществления скрещивания особей в основном цикле работы ГА требуется произвести отбор родителей для будущего поколения. На этом этапе работает оператор отбора, который руководствуется принципом «выживает (или, точнее, даёт потомство) сильнейший». Поскольку генетические алгоритмы допускают высокую вариативность, здесь также возможны варианты. Стандартный путь – это использование «пропорционального» оператора отбора, когда
вероятность
отбора
особи
для
последующего
размножения
Ps(i)
прямо
пропорциональна её приспособленности (значению целевой функции). Эта вероятность равна отношению приспособленности особи (fi) к суммарной приспособленности популяции: PS (i) =
fi
.
n
∑ i =1
(4.1)
fi
Простейший оператор пропорционального отбора – «рулетка» (roulette-wheel selection), который отбирает особей с помощью n «запусков». Колесо рулетки содержит по одному сектору для каждого члена популяции. Размер i-го сектора пропорционален соответствующей величине Ps(i). При таком отборе члены популяции с более высокой приспособленностью выбираются чаще, чем особи с низкой. Существуют и другие варианты реализации оператора отбора, например, турнирный отбор и элитные методы отбора [43], которые при необходимости могут быть легко встроены в генетический алгоритм без изменения остальных его частей. Оператор пропорционального отбора, использующийся в разработанной автором программе, обеспечивает экспоненциальное увеличение числа хороших схем в популяции и был рассмотрен в разделе 2.6, посвящённом теореме схем.
3.2.5 Генетические операторы: оператор скрещивания Оператор скрещивания призван обеспечить обмен генетической информацией между родителями, отобранными для размножения на предыдущем шаге алгоритма. Цель его – взять части генов от каждого из родителей (в идеале – лучшие части) и перенести их к потомку. Считается, что генетический алгоритм не вникает в сущность происходящего, то есть не знает, что именно скрывается за содержимым хромосом, а просто производит операции с ними. А потому он не может определить, какие части хромосом каждого из
66
родителей лучше, чем у другого. Но он и не должен этим заниматься, потому что то, что кажется лучшим в краткосрочной перспективе, может вести в тупик в глобальном смысле, причём в тупик, не заметный явно, каким является, например, локальный экстремум, упорное восхождение на который может не позволить рассмотреть варианты, ведущие к другим более высоким пикам или же к глобальному экстремуму. Решение подобной задачи лежит на всём генетическом алгоритме в целом, и считается, что определение лучших особей должно произойти в результате действия эволюционного процесса
в
целом. Впрочем, всё же нельзя исключать и возможности выполнения этой задачи (или хотя бы посильного участия в ней) оператором скрещивания, особенно при наличии некоей «внешней» для него информации. Такой подход более характерен для эволюционных стратегий. На данный момент наличие эвристик в задаче обучения СММ неизвестно, поэтому оператор скрещивания не будет пытаться интерпретировать хромосомы, а будет работать по принципу «делай, что должно, и будь, что будет». Итак, оператор скрещивания производит обмен частей хромосом, не вникая в их содержимое. Как описывалось в главе 2, существуют различные варианты обмена генетической информацией: одноточечный кроссинговер, двухточечный, равномерный и другие. В нашей задаче допустимо применение любого из этих методов, при выполнении одного ограничения,
обусловленного
спецификой
задачи,
–
строка
матрицы
должна
рассматриваться как единое целое. То есть, точка разбиения не должна находиться внутри строки, а может лежать только на границе строк. Это условие возникает из рассмотренных ранее в главе 1 ограничений (1.2, 1.3) на строки матрицы вероятностей переходов, главное из которых то, что сумма элементов строки, то есть суммарная вероятность, должна быть равна единице. Иначе говоря, элементы внутри одной строки согласованы между собой и не связаны никакими другими жёсткими условиями с элементами остальных строк. Поэтому нет смысла формировать новые строки у потомков на основании различных по номеру строк родителей, хотя это и не запрещается при соблюдении условия (1.3). Ввиду сказанного возможно использование как одноточечного и двухточечного кроссинговера при расположении точки разбиения между строками матрицы (что не нарушает согласованности элементов одной строки), так и равномерного при условии оперирования строками как целыми и неделимыми элементами (то есть случайное число строк в потомке будет от одного родителя, а остальная часть – от другого, и данный метод
67
в итоге можно считать методом многоточечного кроссинговера). В разработанной автором программе реализованы три эти вышеперечисленных метода скрещивания, и было проведено их сравнение на РБД при следующих параметрах работы ГА: Размер популяции: 100 Число поколений: 400 Вероятность мутации: 0,9 Вероятность мутации при создании исходной популяции: 0,9 Нормализация значений фитнес-функции: On Оператор
скрещивания:
одноточечный
(1-point),
двухточечный
(2-point),
равномерный
(Random) Оператор мутации: однострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 0
Результаты сравнения представлены на рис. 3.5.
9,00E-212
Приспособленность
8,00E-212 7,00E-212 6,00E-212 5,00E-212 4,00E-212 3,00E-212 2,00E-212 1,00E-212 0,00E+00 1
29 57 85 113 141 169 197 225 253 281 309 337 365 393 Поколение 1-point
2-point
random
Рис.3.5 Сравнение методов скрещивания
Результаты работы методов оказываются достаточно близкими, и регулярных серьёзных расхождения в работе различных операторов скрещивания не наблюдается. В случае, если бы допускалось оперирование частями строк, можно было бы
68
ожидать, что равномерный кроссинговер покажет худший результат в части случаев, когда строительные блоки хромосом будут достаточно малы, и значительная их часть будет разрушена во время этой операции. Но в силу введённого ограничения на работу с целыми
строками
этого
не
происходит,
что
способствует
сохранению
высокоприспособленных схем в популяции.
3.2.6 Генетические операторы: оператор мутации Оператор мутации должен поддерживать разнообразие в популяции, не позволяя ей «заморозиться» на каком-либо одном, пусть и достаточно хорошем решении, и, в идеале, не остановиться на локальных максимумах, а выйти на глобальный. Иными словами, он обеспечивает приток «новой крови». И снова генетические алгоритмы демонстрируют высокую вариативность. Существует много возможных реализаций оператора мутации, но, поскольку для кодирования хромосомы были выбраны вещественные числа, остановимся лишь на тех, которые имеют смысл при таком варианте кодирования. Находясь в поле вещественных (действительных) чисел, оператору мутации оправдано оперировать самими числами (а не их представлением, как было бы в случае кодирования битовой строкой). Использование
мутации
подразумевает
введение
некоторого
элемента
случайности, и аналогия с природными процессами может быть создана копированием законов распределения, наиболее распространённых в природе [26]. Для реализации было выбрано нормальное распределение (Гаусса), хотя возможно использование и других вероятностных распределений, например, степенного (Парето) и других. Итак, при данных условиях, реализация оператора мутации может производить следующие действия: 1. Заменять произвольно выбранный элемент строки на случайную величину с заданным законом распределения. 2. Изменять произвольно выбранный элемент строки на случайную величину с заданным законом распределения, то есть прибавлять (или отнимать) к выбранному элементу случайное значение. Разница с предыдущим вариантом – в том, что здесь сохраняется некоторая «преемственность», выражающаяся в зависимости нового значения элемента строки от его предыдущего значения. Важная особенность оператора мутации в отличие от других генетических операторов состоит в том, что его работа изменяет внутреннее содержание строки,
69
поэтому
во
время
его
работы
должны
проверяться
и
при
необходимости
восстанавливаться условия, накладываемые на строку, главное из которых – условие полной вероятности (ф-ла 1.3). Мутации подвергаются элементы матрицы, стоящие на её главной диагонали или правее, поскольку из-за особенностей речевого сигнала запрещено переходить в состояния, предшествующие данному, и элементы слева от главной диагонали – нулевые. В случае, если программа работает с СММ с поступательно-ограниченными переходами, число доступных для мутации элементов справа от диагонали также ограничено, обычно двумя-тремя элементами. Практические эксперименты с использованием программного комплекса «Иволга», разработанного автором, показали, что более хорошие модели не всегда являются строгими СММ с поступательно-ограниченными переходами, а относятся к более широкому классу моделей Бэйкиса, рассмотренных в разделе 1.4. Ввиду этого, мутация оперирует всеми элементами справа от главной диагонали матрицы переходов. Для того чтобы соблюсти требуемые условия, оператор мутации должен после внесения изменения в случайно выбранный элемент матрицы скорректировать значения остальных элементов строки, чтобы условие полной вероятности соблюдалось. Реализуется это вычитанием из остальных допустимых элементов значения, на которое изменился мутировавший элемент матрицы. Этот метод можно интерпретировать как одновременную мутацию сразу двух элементов строки, при котором их суммарное значение не изменяется и не влияет на суммарное значение всей строки, сохраняя соблюдение требуемых условий. Возможны и более сложные схемы согласования строки матрицы после мутации, например, равномерное распределение изменений мутировавшего элемента по всем остальным допустимым элементам в сторону как увеличения их значения, так и уменьшения. Для одноточечного оператора мутации с прибавлением случайной величины автором получена экспериментальная зависимость работы алгоритма от вероятности мутации (рис. 3.6):
70
9,00E-212
8,00E-212
7,00E-212
0.1 0.2
Приспособленность
6,00E-212
0.3 0.4
5,00E-212
0.5 0.6 4,00E-212
0.7 0.8 0.9
3,00E-212
0.95
2,00E-212
1,00E-212
0,00E+00 1
8
15 22 29 36 43 50 57 64 71 78 85 92 99 106 113 120 127 134 141 148 155 162 169 176 183 190 197 Поколение
Рис.3.6 Зависимость работы генетического алгоритма от вероятности мутации
Из графика видно, что алгоритм быстрее достигает лучших значений при высоких значениях вероятности мутации. Данная ситуация, вообще говоря, не характерна для большинства реализаций ГА, поскольку в них выбираются низкие значения вероятности на уровне 0.1-0.3. В данном же случае очень эффективной является и вероятность 0.95. Это может свидетельствовать о том, что одноточечная мутация для моделей в данной задаче недостаточно эффективна, и может быть объяснено большим размером хромосомы (типичная СММ с 10 состояниями содержит 100 элементов, соответственно и хромосома содержит в себе 100 чисел с плавающей точкой), и в результате низкая вероятность мутации не оказывает желаемого влияния на работу алгоритма. То есть одноточечные (правильнее говорить однострочные, поскольку при мутации всё же затрагиваются соседние с мутируемым элементы, чтобы было соблюдено условие полной вероятности для строки) мутации должны происходить чаще. Во многих задачах изменение одного гена не позволяет выйти решению из локального оптимума [51]. Если принять во внимание, что в случае сходимости популяции в локальном оптимуме, мутация остаётся единственным механизмом, способным вывести популяцию из него, то проблема становится весьма ощутимой. Альтернативой этому варианту является использование операторов мутации, затрагивающих несколько элементов или несколько строк сразу.
71
Модифицированный многострочный оператор мутации работает несколько иначе. В случае его использования вероятность мутации трактуется как вероятность мутации каждой из строк матрицы, а не единичной произвольно выбранной строки. В этом случае мутация может затронуть сразу несколько строк матрицы. На рис. 3.7 представлены результаты сравнения работы однострочного (Simple) и многострочного (Complex) операторов мутации с соответствующими им вероятностями
Приспособленность
мутации:
9,00E-212 8,00E-212 7,00E-212 6,00E-212 5,00E-212 4,00E-212 3,00E-212 2,00E-212 1,00E-212 0,00E+00
Complex 0.9 Complex 0.5 Complex 0.3 Complex 0.1 Complex 0.03 Simple 0.2 Simple 0.5 Simple 0.9 1
54 107 160 213 266 319 372 Поколение
Рис.3.7 Сравнение однострочного и многострочного операторов мутации
Из графика видно, что эффективность работы однострочного оператора мутации при высокой вероятности самой мутации сравнима с эффективностью работы многострочного оператора мутации при традиционно низких вероятностях мутации, что подтверждает выдвинутое ранее предположение. Кроме того, высокие значения вероятности в сочетании с многострочным оператором мутации, наоборот, сильно снижают эффективность работы алгоритма, что в соответствии с Теоремой схем выражается в разрушении строительных блоков хромосом и уничтожении хороших особей в популяции. В итоге, для работы автором выбран многострочный оператор мутации с низкими значениями вероятности мутации.
72
3.2.7 Генетические операторы: оператор редукции Оператор редукции поддерживает постоянный размер популяции, не давая ей неограниченно увеличиваться, в простейшем случае просто приводя её к фиксированному размеру в конце каждого шага основного цикла ГА. Фактически это сводится к тому, что время жизни каждой хромосомы (индивида в популяции) становится ограниченным (особенно в отсутствии элитизма, при использовании которого есть теоретическая возможность для особи быть «вечной» – эта возможность для неё реализуется в том случае, если особь с момента своего появления и на каждом последующем шаге алгоритма оказывается в числе «элиты» – лучших особей популяции, которые без изменений переходят в следующее поколение). На практике работа оператора редукции сводится к уничтожению в популяции худших её особей. Эта процедура проводится для расширенной популяции, то есть той популяции, что получается после добавления вновь получившихся после скрещивания и мутации особей к исходной. Возможно расширение генетического алгоритма введением «времени жизни» каждой особи и наложением определённых ограничений на работу оператора редукции по этому параметру. Например, может быть запрещено удаление из популяции совсем молодых особей, в особенности только что созданных на этом шаге. Вероятно, этот метод более эффективен в сочетании с «плавающим» размером популяции, когда допустимо временное превышение её размера. Адаптивный вариант ГА, способный изменять свои параметры во время работы алгоритма, будет рассмотрен далее в главе 4. В чём-то работа оператора редукции сродни работе оператора отбора, но есть и определённые
отличия.
Рассмотренный
оператор
редукции
работает
строго
детерминированно: определяет худших особей по значению их целевой функции и удаляет их из результирующей популяции, переходящей на следующий шаг ГА. Работа же оператора отбора вероятностна. С его «точки зрения» лучшие особи отличаются от худших тем, что у них больше шансов быть отобранными. Но шансы быть отобранными ненулевые и у худших особей. В этом принципиальная разница между операторами отбора и редукции. Если бы оператор редукции работал аналогичным оператору отбора образом, то он мог бы порой удалять и самых лучших особей популяции, пусть и редко. Подобная ошибка стоит значительно дороже ошибки оператора отбора, когда к размножению допускается далеко не лучшая особь, так как такая ошибка при редукции приводит к ухудшению популяции, а ошибка при отборе к этому не ведёт. Это ошибки
73
разного рода. Более того, описанный вариант развития событий при отборе может и не считаться ошибкой, потому что способен создать новую очень хорошую особь на основе не лучших, но зато содержащих в своём генотипе очень хорошие участки, особей. В худшем случае он лишь замедляет достижение алгоритмом оптимального результата. В итоге, работа оператора редукции в разработанном автором программном комплексе «Иволга» заключается в уничтожении худших особей.
3.2.8 Критерий останова алгоритма Критерий останова ГА – это условие, при выполнении которого прекращается дальнейшее выполнение основного цикла ГА, выбирается лучшая особь (или лучшие особи) из результирующей популяции, и они и считаются результатами работы ГА. Их хромосомы декодируются, и эти полученные в результате работы алгоритма параметры могут использоваться в задаче, для которой они и предусматривались. Алгоритм может прекратить свою работу по достижению одного из следующих условий: 1. Отработано заданное пользователем количество поколений (или произведено заранее заданное число вычислений целевой функции). Заранее сказать, сколько поколений обычно достаточно для достижения сколько-нибудь приемлемого результата, нельзя. Это число зависит от самой задачи и от многих других факторов, например, от выбранных параметров самого ГА или от начальной популяции. Поэтому пользоваться данным критерием имеет смысл, когда уже есть представление о способностях алгоритма по решению данной конкретной задачи и о влиянии каждого из параметров алгоритма на его работу. Иначе
говоря,
этот
критерий
лучше
использовать,
уже
обладая
практическими данными о результатах его работы, когда алгоритм оттестирован, параметры изучены и есть статистика, позволяющая принимать решения. 2. Алгоритм
отработал
предыдущему при
фиксированное условии
работы
время.
Данный
программы
на
метод
эквивалентен
системах одинаковой
производительности и с одинаковой загрузкой, но при возможности работы на произвольном и заранее неизвестном парке систем различной производительности разумно использовать в качестве инварианта время работы алгоритма, а не число его поколений. Такой критерий останова оправдан, когда требуется предоставить пользователю сходные условия работы с программой на аппаратной базе с различающейся производительностью. Также метод может оказаться применимым
74
при отсутствии пользователя, но при наличии необходимости поддерживать синхронизацию со сторонними процессами, например при распределённой работе или при работе с различных телекоммуникационных системах и сетях. Так, для сравнения, время работы алгоритма со следующими параметрами: Размер популяции: 100 Число поколений: 400 Вероятность мутации: 0,2 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: многострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 0
на машине Pentium-III 500МГц составило 14 минут. 3. Достигнуто заданное пользователем значение целевой функции. Если разработчик заранее знает, какого результата (значения целевой функции) он хочет достичь, имеет смысл воспользоваться именно этим критерием. Это позволит сэкономить время работы по сравнению с предыдущим вариантом, если требуемое решение достигается достаточно быстро или же не требуется результат, превышающий определённое значение. Используя этот критерий, надо быть уверенным, что требуемый результат достижим, иначе алгоритм окажется в ситуации погони за недостижимым в принципе (или на практике при данных условиях) идеалом, поэтому всегда полезно иметь и другой дублирующий критерий, способный определить застопоривание работы алгоритма. Применительно к задаче оптимизации параметров СММ, где целевой функцией является вероятность генерации слова моделью, заранее сказать, какое численное значение вероятности должно быть достигнуто, проблематично, тем более, что от слова к слову оно может заметно различаться, поэтому использование этого критерия останова ГА не кажется осмысленным. Помимо прочего, значение целевой функции сильно зависит от настроек системы распознавания, в первую очередь от размера фреймов, на которые разбивается поступающий с микрофона речевой
сигнал.
При
увеличении
длины
фрейма
уменьшается
длина
последовательности наблюдений за счёт того, что сигнал той же длины покрывается меньшим числом фреймов. А уменьшение длины последовательности наблюдений приводит к уменьшению числа множителей при подсчёте вероятности генерации последовательности, что выражается в увеличении итогового значения
75
целевой функции. Поэтому с данным критерием останова следует быть особенно внимательным. Вариантом этого критерия может быть задание численного значения вероятности, равного улучшенному на определённый процент исходному её значению для данного слова, скажем, 30%. Но при этом надо быть уверенным в том, что все слова и модели, для которых проводится оптимизация, записаны в близких условиях и имеют примерно одинаковое качество. Иначе может получиться, что для одной из моделей невозможно улучшение более чем на 10%, в то время как другие допускают улучшение на сотни процентов. В этом случае была бы полезной система оценки качества моделей, их «потенциала оптимизации» и адекватности. Кроме того, этот «процент улучшения» требует сбора большой статистики для определения того, какой «запас» есть у используемых моделей и какой разумный порог может быть установлен, поэтому есть смысл пользоваться этим критерием лишь при удовлетворении вышеперечисленным условиям. Эксперименты автора показали, что для моделей, начальная популяция для которых была сгенерирована случайным образом, увеличение вероятности генерации происходит на несколько десятичных порядков, в то время как уже обученные по алгоритму Баума-Велча модели, как правило, могут быть улучшены не более чем на десятки процентов. 4. Близким к предыдущему вариантом является останов алгоритма по достижении всеми особями популяции некоторого заданного порога. Ограничения у этого метода практически те же самые – в случае рассматриваемой задачи смысла в использовании этого критерия нет, поскольку результатом работы алгоритма является одна, лучшая, особь, а не вся результирующая популяция. 5. Достигнута определённая сходимость алгоритма, то есть особи по значению фитнес-функции стали близки между собой, и улучшение популяции идёт незначительными темпами или вообще не идёт, а результат колеблется в области одного значения. Этот критерий очень хорош на этапе исследования, поскольку позволяет остановиться тогда, когда ничего интересного в популяции уже не происходит, скрещивание даёт только близкие результаты, а мутации ни к чему лучшему уже не приводят. В этих случаях возможно использование «встряски» популяции – проведение широкомасштабной мутации большой её части. Это может быть реализовано применением оператора мутации с вероятностью большей, чем у
76
основного оператора мутации в главном цикле, или, например, «вбрасыванием» в популяцию
некоторого
количества
случайных
или
каким-то
образом
подготовленных особей, как это рассматривалось в разделе про создание исходной популяции. Использование данного критерия в серии запусков даёт разработчику возможность оценить потенциал улучшения модели генетическим алгоритмом и в дальнейшем установить фиксированные значения в один из предыдущих критериев, если в этом есть необходимость. В итоге, предлагается следующий подход к выбору критерия останова ГА: на этапе исследования моделей критерием является заданная сходимость алгоритма, когда же проведено достаточное количество испытаний, система может быть перенастроена на использование в качестве критерия фиксированного числа поколений генетического алгоритма. Так, для выбранного размера популяции (см. рис. 3.2) и других заданных параметров ГА типичный график сходимости решения, полученный автором на РБД, имеет вид (рис. 3.8):
77
9,00E-212 Приспособленность
8,00E-212 7,00E-212 6,00E-212 5,00E-212 4,00E-212 3,00E-212 2,00E-212 1,00E-212 0,00E+00 1
121 241 361 481 601 721 841 961 Поколение
Рис.3.8. Значение целевой функции в зависимости от числа поколений
Из графика видно, что за 250-300 поколений достигается значение целевой функции, дальнейшее улучшение которого идёт крайне незначительно и варьируется в лучшем случае в пределах единиц процентов от этого значения. Поэтому становится оправданным использование в качестве критерия останова фиксированного значения числа поколений работы генетического алгоритма в районе 250-300.
3.3 Выводы В главе предложена конкретная реализация генетического алгоритма для решения поставленной
задачи
оптимизации
процесса
обучения
непрерывных
СММ
тренировочными последовательностями. Выбран метод кодирования информации в хромосомах вещественными числами как наиболее эффективный в поставленных условиях по сравнению с битовыми и символьными строками. Предложен вариант создания исходной популяции для работы генетического
78
алгоритма, основанный на результатах работы алгоритма оценки стартовых параметров СММ, с дополнением популяции мутированными и случайными особями, поскольку это повышает эффективность работы алгоритма. Алгоритм также способен эффективно работать со случайно сгенерированной популяцией. Экспериментально определён размер популяции, наиболее разумный с точки зрения баланса между скоростью нахождения алгоритмом приемлемого решения и скоростью работы самого алгоритма. Оптимальный размер популяции составил 200 особей. Рассмотрены различные варианты реализации генетических операторов и выбраны параметры их работы, основываясь на тестах, проведённых с использованием речевой базы данных (РБД), а именно: 1. Выбран пропорциональный оператор отбора, эффективность которого доказана теоремой схем; 2. Рассмотрены и реализованы одноточечный, двухточечный и равномерный кроссинговеры с учётом ограничений на значения элементов матрицы вероятностей переходов. Эксперименты автора показали, что в данных условиях эффективность всех трёх операторов близка друг к другу и серьёзных различий в их работе не наблюдается; 3. Выбран вариант оператора мутации, оперирующий сразу несколькими строками матрицы вероятностей переходов СММ (т.н. многострочный оператор мутации), учитывающий ограничения на значения элементов матрицы и соблюдающий условие полной вероятности для строк матрицы; 4. Выбран оператор редукции и рассмотрены особенности его работы в сравнении с другими генетическими операторами, показана разница с цене ошибки работы для внешне похожих операторов редукции и отбора. Предложены усовершенствования алгоритма, связанные с введением времени жизни особи. Все выбранные операторы ГА были реализованы в разработанном автором программном комплексе «Иволга», используемом на кафедре ЭВА МИЭМ для работ в области распознавания речи. Рассмотрены различные критерии останова работы генетического алгоритма, проанализированы их сильные и слабые стороны и определены условия, в которых использование каждого из критериев наиболее оправдано и эффективно. В качестве основного выбран критерий останова по достижению определённой сходимости
79
алгоритма,
когда
значения
фитнес-функции
каждого
последующего
поколения
незначительно отличаются друг от друга. Отмечена
хорошая
вариативность
генетического
алгоритма,
допускающая
различные варианты реализации его составных частей и выбор среди них наиболее эффективных в рамках данной задачи. Такая модульность является шагом на пути к созданию адаптивного генетического алгоритма.
80
Глава 4. Исследование эффективности оптимизации СММ с использованием генетических алгоритмов 4.1 Сравнение генетических алгоритмов с традиционными методами В данной главе производится исследование способности ГА решать поставленную задачу обучения СММ. Ориентиром при оценке является традиционный метод обучения СММ – метод Баума-Велча. Отобраны примеры, наглядно иллюстрирующие наиболее важные моменты в работе ГА. Тестирование проводилось на речевой базе данных (РБД) кафедры ЭВА МИЭМ, использовались словари: «Русский фонетический алфавит» (36 слов), «Связь и коммуникации» (46 слов), «Графический» (19 слов), «Управление в коммуникации» (15 слов), «Числовой» (21 слово), «Новый» (24 слова), «Латинский фонетический алфавит» (26 слов) и «Stv» (18 английских слов), а также отдельные слова из других словарей и слова,
поступающие
в
систему
распознавания
непосредственно
с
микрофона,
подключенного к компьютеру.
4.1.1 Метод Баума-Велча При сравнении использовалась реализация метода Баума-Велча из библиотеки Intel Recognition Primitives Library. Это хорошо оптимизированная по скорости работы библиотека,
созданная
специалистами
компании
Intel,
которая
предоставляет
разработчику набор функций, часто используемых при разработке приложений распознавания речи или зрительных образов. В цифрах, однократный запуск генетического алгоритма с числом поколений равным 300, и количеством особей в популяции равным 200, (эти значения по результатам множества тестов признаны оптимальными для данной задачи) для слов одного словаря («Числовой»), в сравнении с результатами обучения моделей для слов этого же словаря методом Баума-Велча, показывает результаты от -15% (на 15% худший результат) до +70% (на 70% лучший). Повторые запуски ГА способны найти ещё более хорошие решения (то есть, более качественно обученные модели слов). Так, уже троекратный запуск ГА для каждого слова из словаря и последующий выбор решения с наибольшим значением фитнес-функции для этого же словаря дал разброс значений от -7% до +72%.
81
Далее
рассматриваются
наиболее
показательные
примеры,
наглядно
демонстрирующие особенности функционирования ГА. Пример 1. Результат работы ГА лучше, чем результат метода Баума-Велча: В качестве тестовых слов для данного примера из РБД (словарь «Гласные в предударном слоге (кроме 1-го слога) (у)») были выбраны варианты слова «гуманист», произнесённые тремя разными дикторами. 1) Стартовые параметры СММ (матрица вероятностей переходов), полученные с помощью программы SdiApp: 0,97777778 0,01111111 0,01111111 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97727275 0,01136364 0,01136364 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97727275 0,01136364 0,01136364 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97727275 0,01136364 0,01136364 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97727275 0,01123596 0,01149132 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97727275 0,01162190 0,01110537 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97777778 0,01085859 0,01136364 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97674417 0,01189218 0,01136364 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97777778 0,02222222 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации этой моделью тестового слова составляет: F=1.726821E-532 2) Модель, обученная по алгоритму Баума-Велча: 0,95559531 0,04440471 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94398779 0,05601219 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95634621 0,04365379 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95669693 0,04330305 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94818640 0,05181359 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95486939 0,03008745 0,01504317 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95703518 0,04296482 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97034067 0,02965935 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97827351 0,02172647 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Для обученной модели вероятность генерации тестового слова составляет: F=1.481299E-529 Видно, что вероятность генерации слова стала значительно выше, а сама модель стала более строгой, допускающей практически во всех состояниях только переход в
82
следующее состояние модели. 3) Модель, обученная с помощью генетического алгоритма: Параметры ГА: Обрабатываемая HMM: humanist Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,5 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: однострочный Исходная популяция (Число мутированных особей): 0 Исходная популяция (Число случайных особей): 200
В данном случае исходная популяция решений была сформирована случайным образом, не опираясь на результаты работы какого-либо алгоритма. Результирующая модель выглядит следующим образом: 0,94052202 0,05947788 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,97217846 0,02782157 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91180485 0,08819514 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,88275850 0,11724144 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93922961 0,06077039 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,90030348 0,09969651 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94970661 0,05029343 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96292341 0,03707662 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93350101 0,06649913 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
И вероятность генерации тестового слова составляет: F=1,928618E-529 Столь
малые
порядки
величины
вероятности
генерации
наблюдаемой
последовательности возникают в силу того, что последовательность наблюдений имеет большую длину – нередки последовательности длиной 100-150 наблюдений, особенно в случае длинного слова, при малом размере фрейма и когда фреймы перекрываются друг с другом – все эти параметры задаются в настройках системы предобработки речевого сигнала. Как видно, в данном случае найденное решение на 20% лучше решения, к которому пришёл алгоритм Баума-Велча. Особенно интересно то, что генетический алгоритм стартовал с совершенно случайной точки и сумел обнаружить хорошее решение,
83
в то время как для метода Баума-Велча является важным выбор стартовых параметров – та самая задача, для решения которой и предназначена программа SdiApp. При этом матрица решения стала очень строгой – каждое состояние допускает переход только в следующее состояние, а переходы ограничены ещё сильнее, чем в случае решения, найденного методом Баума-Велча. Более строгая матрица лучше описывает конкретный экземпляр слова, но хуже учитывает возможную вариативность в его произнесении. Такой результат хорош, когда нужно обеспечить работу системы распознавания с одним диктором, психо-физиологическое состояние которого в процессе работы с системой изменяется незначительно. Пример 2. Результат работы ГА заметно лучше, чем результат метода Баума-Велча: Ещё один запуск ГА для той же модели и тех же тестовых слов, что и в примере 1, но с изменёнными параметрами ГА: увеличено значение вероятности оператора мутации: Параметры ГА: Обрабатываемая HMM: humanist Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,8 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: однострочный Исходная популяция (Число мутированных особей): 0 Исходная популяция (Число случайных особей): 200
Результирующее решение: 0,95874655 0,04031101 0,00000000 0,00090645 0,00000000 0,00003412 0,00000000 0,00000184 0,00000000 0,00000000 0,00000000 0,96958530 0,03026573 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00014896 0,00000000 0,00000000 0,00000000 0,95942461 0,04057539 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95637083 0,04362921 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93707424 0,06292575 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94376397 0,05623607 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96832579 0,03167425 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95078510 0,04921488 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96292055 0,03707949 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=2,491582E-529 В данном случае найдена матрица переходов СММ, дающая вероятность генерации
84
тестового слова ещё более высокую (на 68% выше, чем у метода Баума-Велча), чем в предыдущих примерах. Надо заметить, что в данном случае матрица решения наоборот менее строга, чем в предыдущих случаях – некоторые состояния допускают переходыскачки в другие состояния, порой далеко отстоящие от исходного. Это может иметь место при работе со словами, записанными разными дикторами (что и наблюдается в данном примере), где часть звуков у одного из дикторов может оказаться пропущена или, как говорят, «проглочена», или при наличии особенностей произнесения диктором отдельных фонем. Таким образом, данный вариант найденного решения хорош, когда система распознавания речи является многодикторной системой или когда можно ожидать изменения психо-физиологического состояния оператора в процессе работы с ней. Методу Баума-Велча трудно найти подобные решения, в то время как генетический алгоритм способен на это при определённых значениях параметров. В данном случае увеличение вероятности мутации привело к такому результату, что более хорошее решение было найдено. Пример 3. Результат одиночного запуска ГА хуже, чем результат работы метода Баума-Велча: В качестве тестовых слов для данного примера из РБД (словарь «Связь и коммуникации») были выбраны варианты слова «информация», произнесённые двумя дикторами. 1) Стартовые параметры СММ, полученные с помощью программы SdiApp: 0,98484850 0,00751703 0,00763448 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98437500 0,00787306 0,00775194 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98461539 0,00769231 0,00769231 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98437500 0,00775194 0,00787306 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98437500 0,00781250 0,00781250 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98461539 0,00775194 0,00763268 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98461539 0,00763268 0,00775194 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98437500 0,00793457 0,00769043 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98461539 0,01538462 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=3.796501E-578 2) Модель, обученная по алгоритму Баума-Велча: 0,95465481 0,04534521 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000
85
0,00000000 0,95313603 0,04686400 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95600164 0,04399837 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95087475 0,04912523 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95360994 0,04639006 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95309550 0,04690449 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95418280 0,04581719 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95325869 0,04674128 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95366406 0,04633596 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=7.385101E-574 3) Модель, обученная с помощью генетического алгоритма: Параметры ГА: Обрабатываемая HMM: humanist Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,8 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: однострочный Исходная популяция (Число мутированных особей): 0 Исходная популяция (Число случайных особей): 200 0,97168839 0,02829902 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00001252 0,00000000 0,00000000 0,95831221 0,04168778 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94622624 0,05377370 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96296942 0,03703059 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93797940 0,06202062 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96205044 0,03794955 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94965202 0,05034798 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94338018 0,05661981 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95319307 0,04680698 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=6.003291E-574 Повторный запуск ГА с теми же параметрами: 0,95334357 0,04665637 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94416010 0,05583986 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94751960 0,05248038 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94471288 0,05528712 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94620299 0,05379696 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95557588 0,04442408 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95639884 0,04360124 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96260571 0,03739430 0,00000000
86
0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94602019 0,05397980 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=6.408732E-574 Как видно, в данном случае ГА нашёл решение, несколько худшее (на 15%), нежели метод Баума-Велча, хотя и сравнимое с ним. Это свидетельствует о вероятностном характере работы алгоритма, и порой надо совершить серию запусков, чтобы по результатам выбрать среди них лучшее решение. Данный метод с использованием ГА для оптимизации СММ может быть воплощён в жизнь при создании системы распознавания, способной во время простоя основной части системы перебирать с помощью генетического алгоритма варианты СММ в поисках более хороших моделей. Поскольку в этом случае время работы ГА не столь важно, может быть произведена серия запусков, и затем среди их результатов будет отобран лучший из них. По итогам исследования нужно сделать важное замечание – генетические алгоритмы и метод Баума-Велча не противостоят друг другу и не являются взаимоисключающими. Хотя они и предназначены для решения одной задачи, они могут действовать в её решении согласованно. Так, исходной точкой для работы ГА могут быть значения, полученные с помощью метода Баума-Велча, и тогда ГА будет работать в направлении улучшения имеющегося решения. Или же наоборот, методом Баума-Велча может быть улучшено решение, полученное генетическим алгоритмом, особенно, когда число шагов его работы было заметно ограничено. Два следующих примера наглядно подтверждают возможность согласованной работы ГА и метода Баума-Велча. Пример 4. Используется метод Баума-Велча для улучшения модели, обученной ГА: В качестве тестовых слов для данного примера из РБД (словарь «Русский фонетический алфавит») были выбраны варианты слова «Борис», произнесённые тремя разными дикторами. 1) Стартовые параметры СММ (матрица вероятностей переходов), полученные с помощью программы SdiApp: 0,98113209 0,00934237 0,00952555 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000
87
0,00000000 0,98039216 0,00980392 0,00980392 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98076922 0,00970874 0,00952203 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98076922 0,00961538 0,00961538 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98039216 0,00961538 0,00999246 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98039216 0,00999246 0,00961538 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98113209 0,00934237 0,00952555 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98039216 0,00999616 0,00961169 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98076922 0,01923077 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации этой моделью тестового слова составляет: F= 6,882720E-578 2) Модель, обученная ГА Параметры ГА: Обрабатываемая HMM: boris(2453) Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,3 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: многострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 100 0,91680098 0,08319901 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91277629 0,08722372 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91770154 0,08229847 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92673600 0,07326398 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,90279222 0,09720786 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91462642 0,08537359 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91149938 0,08850066 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91731179 0,08268818 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,91630411 0,08369587 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Для обученной модели вероятность генерации тестового слова составляет: F= 2.062270E-316 3) Далее эта же модель дообучается с помощью метода Баума-Велча: Результирующая матрица выглядит следующим образом: 0,95299762 0,04700240 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92367470 0,07632531 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94081390 0,05918608 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94465566 0,05534436 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94123155 0,05876847 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93930799 0,06069203 0,00000000 0,00000000 0,00000000
88
0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94516885 0,05483115 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94144899 0,05855099 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94276303 0,05723699 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
И вероятность генерации тестового слова составляет: F=2.146812E-316 Как видно из этого примера, метод Баума-Велча не сильно (примерно на 5%), но всё же смог улучшить найденное генетическим алгоритмом решение. Подобный подход часто используется при поиске оптимальных решений: на первом этапе ГА определяет наиболее
интересные
области
в
пространстве
решений,
а
на
втором
этапе
специализированный алгоритм находит лучшее решение в каждом из получившихся кластеров. Пример 5. ГА используется для улучшения модели, обученной методом Баума-Велча: В качестве тестовых слов для данного примера из РБД (словарь «Числовой») были выбраны варианты слова «восемнадцать», произнесённые тремя разными дикторами. 1) Стартовые параметры СММ, полученные с помощью программы SdiApp: 0,98684210 0,00653538 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00671082 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,00657895 0,00657895 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00666667 0,00666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00662252 0,00671082 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00671082 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,00653538 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00680089 0,00653244 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,01315789 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=5,269427E-572 2) Модель, обученная по алгоритму Баума-Велча: 0,95749456 0,04250544 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96217304 0,03782693 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96409637 0,03590362 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95970535 0,04029462 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95414972 0,04585027 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95203704 0,04796297 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96778935 0,03221066 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95979440 0,04020561 0,00000000
89
0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96275073 0,03724928 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=3.337348E-567 3) Модель, обученная с помощью генетического алгоритма: Параметры ГА: Обрабатываемая HMM: 18 (1334) Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,3 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: многострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 100 0,94153488 0,05846512 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96217304 0,03782693 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95286930 0,04713069 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95970535 0,04029462 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95766723 0,04233278 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94986355 0,05013643 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96671927 0,03328073 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94106972 0,05893026 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96365827 0,03634175 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=3.582001E-567 В данном примере ситуация обратная – ГА улучшает решение, найдённое методом Баума-Велча (улучшение составляет порядка 7%).
4.1.2 Случайный поиск Случайный поиск не используется при обучении СММ в системах распознавания речи в силу своей неэффективности, но в демонстрационных целях можно произвести исследование эффективности этого метода. В чистом виде последовательный случайный перебор заведомо бесполезен, что было показано в разделе 2.2.2, но можно сэмулировать один из вариантов случайного поиска с помощью ГА. Это реализуется посредством усиления случайной составляющей ГА (радикальное повышение вероятности мутации) и отключением детерминированности
90
ГА (в первую очередь отключив отбор более приспособленных особей и их скрещивание). В результате получается алгоритм случайного поиска, работающий параллельно сразу с группой решений (как и ГА) и запоминающий лучшие обнаруженные решения благодаря сохранённому оператору редукции, но не использующий их как базу для создания новых решений. В качестве тестовых слов для данного примера были выбраны слудеющие слова: словарь «Числовой», варианты слова «четырнадцать», произнесённые тремя разными дикторами. 1) Стартовые параметры СММ, полученные с помощью программы SdiApp: 0,98684210 0,00653538 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00671082 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,00657895 0,00657895 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00666667 0,00666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00662252 0,00671082 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00671082 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,00653538 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00680089 0,00653244 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,01315789 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F= 2.240326E-663 2) Модель, найденная описанным методом случайного поиска: Параметры случайного поиска: Обрабатываемая HMM: 14 Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,95 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: отсутствует Оператор мутации: многострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 100 0,98684210 0,00653538 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00671082 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,00657895 0,00657895 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00666667 0,00666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00662252 0,00671082 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,89519161 0,09818589 0,00662252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,00653538 0,00662252 0,00000000
91
0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98666668 0,00680089 0,00653244 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98684210 0,01315789 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F= 4,172212E-663 3) Модель, обученная с помощью генетического алгоритма: Параметры ГА: Обрабатываемая HMM: 18 (1334) Размер популяции: 200 Число поколений: 300 Вероятность мутации: 0,3 Вероятность мутации при создании исходной популяции: 0,8 Нормализация значений фитнес-функции: On Оператор скрещивания: двухточечный Оператор мутации: многострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 100 0,94126195 0,05873805 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95590889 0,04409109 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96143496 0,03856502 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95138687 0,04861314 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95757866 0,04242136 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94794405 0,05205593 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95955491 0,04044511 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,94529301 0,05470697 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,95734340 0,04265657 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Вероятность генерации тестового слова: F=1,939520E-567 Как показывает данный пример, случайный поиск способен найти более хорошее решение, но эффективность его работы крайне низка. При таком же количестве просмотренных точек пространства поиска ГА гораздо быстрее находит значительно более хорошие решения, чем случайный поиск. Данные методы поиска имеют общую структуру и отличаются лишь одной деталью – наличием механизма отбора хороших решений. То есть, экспериментально показано, что введение детерминированности в алгоритм случайного поиска значительно повышает эффективность его работы.
92
4.2 Показатели эффективности генетических алгоритмов Основными показателями эффективности ГА являются скорость алгоритма и устойчивость поиска. Эффективность генетического алгоритма при решении конкретной задачи зависит от многих факторов, и в частности от таких, как генетические операторы и выбор соответствующих значений параметров, а также от способа представления задачи на хромосоме. Оптимизация этих факторов приводит к повышению скорости и устойчивости поиска, что существенно для применения генетических алгоритмов. Скорость генетического алгоритма оценивается временем, необходимым для выполнения заданного пользователем числа итераций. Если критерием останова является качество популяции или ее сходимость, то скорость оценивается временем достижения генетическим алгоритмом одного из этих событий. Устойчивость
поиска
оценивается
степенью
устойчивости
алгоритма
к
попаданию в точки локальных экстремумов и способностью постоянно увеличивать качество популяции от поколения к поколению. Два этих фактора – скорость и устойчивость – и определяют эффективность генетического алгоритма для решения каждой конкретной задачи.
4.2.1 Скорость работы генетического алгоритма По результатам экспериментов автора можно сделать вывод, что наибольшее влияние на скорость работы генетического алгоритма при решении поставленной задачи оказывают размер популяции и критерий останова. Кроме того, на скорость работы влияет и размер хромосомы, но этот параметр зависит не от разработчика, а от самой СММ, с которой проводится работа в данный момент времени – работа с СММ, соответствующим более длинным словам идёт несколько дольше. Варьирование других параметров работы ГА, как то вероятность применения оператора
скрещивания,
вероятность
применения
оператора
мутации,
варианты
операторов отбора и редукции, не оказывают сильного влияния на скорость работы алгоритма. Как было показано в Главе 3, правильный выбор размера популяции позволяет соблюсти баланс между скоростью нахождения алгоритмом хорошего решения и скоростью работы самой программы, реализующей алгоритм. Экспериментально было определено, что наиболее удачное соотношение между этими требованиями имеет место при размере популяции порядка 100-200 особей. При таких размерах популяции, с одной
93
стороны, достаточно быстро достигается хорошее решение, а, с другой, не происходит сильного замедления работы программы, как при популяциях размером 500 особей и выше. Кроме того, такие популяции не требуют большого объёма памяти для работы алгоритма, и в этом смысле не имеет большого веса «минус» кодирования хромосомы вещественными числами, заключающийся в требовании большего объёма памяти, чем при использовании других методов, например, битовой строки, рассмотренных в Главе 3. Что касается критерия останова, то, как было показано ранее, как правило, популяция достаточно быстро сходится к устойчивому хорошему решению за фиксированное число шагов, которое может быть экспериментально определено на этапе исследования, как это было описано в разделе 3.2.8, где оптимальным оказалось число 250-300 поколений. В этом случае хорошие результаты работы обеспечиваются при использовании в качестве критерия останова фиксированного числа поколений. Дополнительный плюс этого метода заключается в возможности довольно точной оценки требуемого для работы алгоритма времени, что может найти своё применение в системах, особо требовательных к точности и предсказуемости временных границ работы программы: в системах реального времени, в телекоммуникационных системах, там, где могут быть заранее заданы временные промежутки для работы системы оптимизации СММ. В случае если у разработчика имеются сомнения относительно одинакового поведения всех моделей в процессе оптимизации посредством ГА, как это может быть, например, в случае, когда слова записаны в различных условиях, разными дикторами или по каналам различного качества, что может выразиться в том, что часть моделей уже изначально достаточно хороша и не способна сильно улучшиться за разумное время, а другая часть, наоборот, допускает заметную оптимизацию, то тогда будет наиболее эффективен критерий останова, самостоятельно определяющий сходимость решения. Для оценки потенциала моделей в плане их возможной оптимизации была бы полезна система, способная оценивать качество модели в этом контексте. Ещё одним важным фактором, влияющим на скорость работы генетического алгоритма, является фитнес-функция. Фитнес-функция численно равна вероятности генерации заданного слова моделью и расчитывается для всех особей на каждом шаге работы алгоритма. Это то место в программе, где задача обучения СММ (Задача №3 среди основных задач, встающих перед разработчиком при работе с СММ, из классификации в Главе 1) вплотную соприкасается с Задачей №1 – задачей эффективного вычисления вероятности генерации заданной последовательности, и от успешного решения задачи №1
94
зависит эффективное решение задачи №3. Ввиду того, что вычисление фитнес-функции требуется регулярно, так как это наиболее часто используемая деталь алгоритма, она должна требовать минимум ресурсов, и потому важно, чтобы сама процедура её вычисления была достаточно эффективна. Поэтому оптимизация самой фитнес-функции также является методом повышения скорости работы генетического алгоритма. Эффективное вычисление вероятности генерации последовательности наблюдений – Задача №1 – подробно рассмотрена в Главе 1. Автором была выбрана высокоэффективная реализация данной функции из библиотеки Intel Recognition Primitives Library.
4.2.2 Средства повышения скорости работы генетических алгоритмов Основным способом повышения скорости работы генетических алгоритмов является распараллеливание [95]. Причем этот процесс можно рассматривать с двух позиций. Распараллеливание может осуществляться на уровне организации работы генетического
алгоритма
и
на
уровне
его
непосредственной
реализации
на
вычислительной машине. На уровне непосредственной реализации ГА используется следующая особенность генетических алгоритмов. В процессе работы многократно приходится вычислять значения целевой функции для каждой особи, осуществлять преобразования оператора скрещивания и мутации для нескольких пар родителей и т. д. Все эти процессы могут быть реализованы одновременно на нескольких параллельных системах или процессорах, что пропорционально повысит скорость работы алгоритма. Алгоритм требует достаточно большого количества вычислений, но в то же время не требуется его работа в реальном времени, поскольку процесс оптимизации моделей слов в системе может быть запущен во времена её простоя или проводиться отдельным процессом в фоновом режиме параллельно основной работе системы распознавания. Кроме того, работа генетического алгоритма может быть распараллелена, в том числе между различными машинами в сети, что является весьма интересным дальнейшим шагом в развитии системы в перспективе. На уровне организации работы ГА применяется структурирование популяции решений на основе одного из двух подходов: 1)
Популяция разделяется на несколько различных подпопуляций (демосов), которые впоследствии развиваются параллельно и независимо. То есть скрещивание происходит только между членами одного демоса. На каком-то
95
этапе работы происходит обмен частью особей между подпопуляциями на основе случайной выборки. И так может продолжаться до завершения работы алгоритма. Данный подход получил название концепции островов (island model) [43, 94]. Для каждой особи устанавливается ее пространственное положение в
2)
популяции. Скрещивание в процессе работы происходит между ближайшими особями. Такой подход получил название концепции скрещивания в локальной области (cellular genetic algorithms) [94]. Оба подхода, очевидно, также могут эффективно реализовываться на параллельных вычислительных машинах, что даёт хорошие перспективы использованию ГА в контексте современных тенденций развития аппаратных средств систем распознавания. Кроме того, практика
показала,
что
структурирование
популяции
приводит
к
повышению
эффективности генетического алгоритма даже при использовании традиционных вычислительных средств [19]. Еще одним средством повышения скорости работы является кластеризация [62]. Суть ее состоит, как правило в двухэтапной работе генетического алгоритма. На первом этапе генетический алгоритм работает традиционным образом с целью получения популяции более «хороших» решений. После завершения работы алгоритма из итоговой популяции выбираются группы наиболее близких решений. Эти группы в качестве единого целого образуют исходную популяцию для работы генетического алгоритма на втором этапе. Размер такой популяции будет, естественно, значительно меньше, и, соответственно, алгоритм будет далее осуществлять поиск значительно быстрее. Сужения пространства поиска в данном случае не происходит, поскольку применяется исключение из рассмотрения только ряда очень похожих особей, существенно не влияющих на получение новых видов решений.
4.2.3 Устойчивость работы генетического алгоритма Устойчивость или способность генетического алгоритма эффективно формировать лучшие решения зависит в основном от принципов работы генетических операторов (операторов отбора, скрещивания, мутации и редукции). Вычислительная эффективность этого процесса была рассмотрена при обсуждении теоремы схем в разделе 2.6. Рассмотрим механизм этого воздействия подробнее. Как правило, диапазон влияния можно оценить, рассматривая вырожденные случаи генетических операторов.
96
Вырожденными формами операторов скрещивания являются, с одной стороны, точное копирование потомками своих родителей, а с другой, порождение потомков, в наибольшей степени отличающихся от них. Преимуществом первого варианта является скорейшее нахождение лучшего решения, а недостатком, в свою очередь, тот факт, что алгоритм не сможет найти решения лучше, чем уже содержится в исходной популяции, поскольку в данном случае алгоритм не порождает принципиально новых особей, а лишь копирует уже имеющиеся. Чтобы всетаки использовать достоинства этой предельной формы операторов скрещивания в реальных генетических алгоритмах, применяют элитизм, речь о котором шла в главе 2. Во втором случае алгоритм рассматривает наибольшее число различных особей, расширяя область поиска, что, естественно, приводит к получению более качественного результата. Недостатком в данном случае является значительное замедление поиска. Одной из причин этого, в частности, является то, что потомки, значительно отличаясь от родителей, не наследуют их полезных свойств. В качестве реальных операторов скрещивания используются промежуточные варианты. В частности, родительское воспроизводство с мутацией и родительское воспроизводство с рекомбинацией и мутацией. Родительское воспроизводство означает копирование строк родительских особей в строки потомков. В первом случае после этого потомки подвергаются воздействию мутации. Во втором случае после копирования особипотомки обмениваются подстроками (то есть происходит кроссовер или рекомбинация). После рекомбинации потомки также подвергаются воздействию мутации. Последний подход получил наибольшее распространение в области генетических алгоритмов. Наиболее распространенными при этом являются одноточечный, двухточечный и равномерный операторы скрещивания. Основным параметром оператора мутации является вероятность его воздействия. Обычно она выбирается достаточно малой, чтобы, с одной стороны, обеспечивать расширение области поиска, а с другой, не привести к чересчур серьезным изменениям потомков, нарушающим наследование полезных параметров родителей. Сама же суть воздействия мутации обычно определяется фенотипом и на эффективность алгоритма особого воздействия не оказывает. Эксперименты на разработанном автором программно-аппаратном комплексе «Иволга» показали, что для решения задачи оптимизации СММ одиночные мутации с низкой вероятностью малоэффективны. Это обусловлено большим размером хромосомы, кодирующей матрицу вероятностей переходов скрытой марковской модели, и тем, что
97
такие мутации затрагивают лишь малую часть модели. Иначе говоря, работа случайной составляющей в генетическом алгоритме недостаточна и является ограничивающим фактором для всего алгоритма в целом. Устранение этого узкого места способно привести к общему повышению эффективности алгоритма. Выполненное автором сравнение результатов для одноточечного оператора мутации и для многострочного в третьей главе (рис. 3.7) показало, что многоточечный оператор при малой вероятности мутации (порядка 0.05-0.1) эквивалентен одноточечному оператору при высокой вероятности его применения (0.9-0.95). При увеличении вероятности его применения ГА становится неустойчивым, поскольку значительная часть хороших решений разрушаются этим оператором в соответствии с теоремой схем.
4.2.4 Средства повышения устойчивости работы генетических алгоритмов Существует
также
дополнительная
стратегия
расширения
поискового
пространства, называемая стратегией разнообразия [19]. Если генетический алгоритм использует данную стратегию, то
каждый порожденный потомок подвергается
незначительному случайному изменению. Отличие разнообразия и мутации в том, что оператор мутации вносит в хромосому достаточно значительные изменения, а оператор разнообразия – наоборот, малозаметные. Ведь если часто вносить в хромосомы потомков незначительные изменения, то они могут быть полезны с точки зрения как расширения пространства поиска, так и наследования полезных свойств. В этом заключается основная причина стопроцентной вероятности применения оператора разнообразия. Отметим, что стратегия разнообразия применяется далеко не во всех генетических алгоритмах, поскольку является лишь средством повышения их эффективности. Одним из параметров, также влияющих на устойчивость и скорость поиска, является размер популяции, с которой работает алгоритм. Классические генетические алгоритмы предполагают, что размер популяции должен быть фиксированным. В этом случае оптимальным считается размер 2log2(n), где n - количество всех возможных решений задачи [19]. Однако в некоторых случаях бывает полезно варьировать размер популяции в определенных пределах. [60] В данном случае после очередного порождения потомков усечения популяции не происходит. Таким образом, на протяжении нескольких итераций размер популяции может расти, пока не достигнет определенного порога. После чего популяция усекается до своего исходного размера. Такой подход способствует
98
расширению области поиска, но вместе с тем не ведет к значительному снижению скорости, поскольку усечение популяции, хотя и реже, но все же происходит. Аналогично, изменение размера
популяции
может
происходить в адаптивных
генетических
алгоритмах, рассматриваемых далее.
4.3 Направления развития генетических алгоритмов 4.3.1 Использование комбинированной фитнес-функции Как было отмечено ранее, в произнесении команд у человека может наблюдаться вариативность, вызванная изменением его психо-физиологического состояния. В целях учёта такой ситуации проводить оптимизацию надо на наборе вариантов произнесения слова, а не на одном его экземпляре. Также может потребоваться работа системы с группой дикторов. Чтобы учесть такие варианты и повысить адаптивность САРР, автор предлагает использовать комбинированную фитнес-функцию. В зависимости от варианта работы системы распознавания речи, должна ли она работать с одним диктором в каждый момент времени или со многими, на вход системы подаются несколько образцов одного и того же слова, произнесённые диктором в разные моменты времени или в разном эмоциональном состоянии, или же произнесённые различными дикторами. Комбинированная фитнес-функция должна учитывать этот полный набор слов и проводить оценивание особей по каждому экземпляру слова, подводя обобщённый итоговый результат. Такая фитнес-функция получает вероятности генерации для каждого из образцов слова, входящего в набор, и составляет их взвешенную сумму, отражающую итоговый результат. Здесь появляется возможность варьировать вклад каждого варианта произнесения слова в итоговую фитнес-функцию, например, с учётом статистики по частоте эмоциональных состояний диктора или по частоте работы различных дикторов с системой распознавания. При
реализации
подобной
комбинированной
фитнес-функции
система
распознавания команд может быть обучена на использование выбранных словарей и дикторов практически без вмешательства человека, если у неё есть интерфейс с речевой базой данных, содержащей всю необходимую информацию.
4.3.2 Адаптивный ГА В
области
исследований,
направленных
на
повышение
эффективности
генетических алгоритмов, большое значение приобрели идеи создания адаптивных
99
генетических алгоритмов, которые могут изменять свои параметры в процессе работы [61]. Они стали продолжением развития идеи поколенческих алгоритмов, которые в процессе работы изменяют размер популяции. Адаптивные алгоритмы способны изменять не только этот параметр, но и суть генетических операторов, вероятность мутации и даже генотип алгоритма. Как правило, данные изменения происходят путем выбора параметров из
нескольких
вариантов,
определенных
перед
началом
работы
алгоритма.
Дополнительным плюсом подобных алгоритмов является то, что они не требуют задания большого множества параметров перед своей работой. Класс подобных генетических алгоритмов называется pGA (parameterless GA) – генетические алгоритмы без параметров [57]. Задача поддержания динамического равновесия параметров ГА, когда все их значения флуктуируют в районе оптимальных и в то же время способны подстраиваться под изменяющуюся ситуацию, даёт возможность избавить разработчика от выбора многих параметров, предоставив ему лишь контролирующую функцию, и переложив задачу нахождения оптимальных параметров функционирования на сам алгоритм. Полезна данная возможность в условиях, когда ситуация изменяется с течением времени, динамически перестраивается структура систем, с которыми работает ГА, а постоянный контроль человека невозможен, да и не нужен, и его вмешательство носит лишь ситуационный характер, например, периодический аудит работы или эпизодическая перенастройка
системы.
Данная
ситуация
регулярно
наблюдается
в
телекоммуникационных сетях, способных динамически менять свою структуру, и неудивительно, что генетические алгоритмы находят своё применение при решении задач марштуризации в подобных условиях. Применительно к задачам распознавания речи и к работе с СММ в частности, подобный подход может быть актуален при динамическом изменении словарей, с которыми работает система распознавания речи, смене дикторов или психо-физиологических состояний работающего в данный момент с системой диктора,
изменении условий снятия сигнала для системы предобработки в составе
целостной системы распознавания, что может иметь место, скажем, при смене качества соединения при пакетной передаче голоса в системах IP-телефонии и так далее. Система распознавания должна уметь подстроиться под изменившиеся условия без участия человека. Существует два основных подхода к определению параметров ГА [57]: регулировка параметров (parameter tuning) и управление параметрами (parameter control). Регулировка параметров заключается в запуске множества тестов с целью
100
определить, при каких значениях параметров ГА ведёт себя наилучшим образом. Так, экспериментально выясняются значения вероятностей мутации и кроссовера, размер популяции и другие параметры. Данный подход и был применён автором в диссертационной работе, глава 3 посвящена выбору значений параметров ГА, работающего с вещественными числами. Для бинарного кодирования хромосомы при использовании специальных тестовых функций известны свои наборы хороших значений параметров [59]. Такой подход требует много времени на исследования и не гарантирует, что те же параметры будут хорошо работать на несколько отличающейся задаче. Управление параметрами подразумевает старт алгоритма с некими начальными значениями параметров, возможно, определёнными с помощью первого метода. Далее во время работы алгоритма эти параметры подвергаются модификациям различными путями. В зависимости от способа модификации параметров ГА такие системы классифицируют на несколько категорий [61]: 1. Детерминистические (deterministic) ГА. 2. Адаптивные (adaptive) ГА. 3. Сапоприспосабливающиеся (self-adaptive) ГА. В детерминистическом ГА параметры изменяются во время работы алгоритма по некоторому заранее заданному закону, который чаще всего зависит от времени (от числа поколений или от количества вычислений целевой функции). Так, например, Фогарти [63] изменял вероятность мутации по следующему закону: Pm =
1 0.11375 + , 240 2t
(4.1)
где t – номер поколения. Практически все подобные формулы включают в себя условие 1/t, где t – номер поколения. В этом случае начальная вероятность мутации достаточно высока и уменьшается по мере работы алгоритма. Это согласуется с идеей о том, что в самом начале ГА быстро определяет наиболее интересные для себя области (с помощью мутации), а затем неторопливо их исследует (с помощью кроссовера). Такие формулы не только устраняют необходимость задавать этот параметр, но, по оценкам исследователей, значительно повышают эффективность ГА [46]. В адаптивных ГА информация о работе алгоритма посредством обратной связи влияет на значения его параметров. Однако, в отличие от самоприспосабливающихся алгоритмов, значения этих параметров едины для всех особей популяции. Такой способ управления алгоритмом впервые был использован Реченбергом [84]. Он постулировал,
101
что одна из пяти мутаций должна вести к появлению лучшего индивидума. Далее, он связал вероятность мутации с частотой хороших мутаций. Так, если частота хороших мутаций выше 1/5, то вероятность мутации уменьшается, и наоборот. В самоприспосабливающихся ГА также благодаря обратной связи используется информация о работе алгоритма, но каждая особь популяции имеет собственные значения параметров. Впервые такой подход был использован Шефелем [87] в эволюционных стратегиях, где он пытался управлять шагом мутаций. Бэк [47] распространил его идеи на генетические алгоритмы. Он добавил к хромосоме дополнительные биты, в которых кодировались вероятности мутации и кроссовера. Идея адаптивных генетических алгоритмов получила свое воплощение во множестве разных концепций, одной из наиболее интересных среди которых является nGA [19]. nGA представляет многоуровневые генетические алгоритмы. Нижний уровень такого алгоритма непосредственно выполняет задачу улучшения популяции решений. Верхние
уровни
представляют
собой
генетические
алгоритмы,
решающие
оптимизационную задачу по улучшению параметров алгоритма нижнего уровня. При этом в качестве целевой функции используется обычно скорость работы алгоритма нижнего уровня и скорость улучшения им популяции от поколения к поколению. Подобная
организация
алгоритма,
отталкиваясь
от
базовых
параметров,
определённых в работе автора, должна быть способна подстраиваться под изменяющиеся условия функционирования системы распознавания речи, тем самым повышая надёжность её работы. Кроме того использование подобного метода даёт возможность освободить оператора от кропотливой настройки системы, найдя лучшие значения параметров самостоятельно.
4.4 Выводы В главе описано сравнение результатов работы генетического алгоритма с традиционно используемым для обучения СММ методом Баума-Велча. Приведены наиболее характерные примеры и показана высокая эффективность работы ГА при решении поставленной задачи и наличие определённых преимуществ перед методом Баума-Велча, как то независимость от начальных условий и способность выходить из локальных экстремумов. В сравнении со случайным поиском ГА обеспечивает гораздо более быстрое нахождение хорошего решения. Результаты, полученные с помощью ГА сопоставимы с результатами работы
102
метода Баума-Велча, а в некоторых случаях превосходят его, что говорит о способности алгоритма выходить из локальных экстремумов. На основании этих данных предлагается следующая схема организации процесса обучения в системе распознавания речевых команд
на
основе
СММ:
система
содержит
модуль,
реализующий
обучение
традиционным методом Баума-Велча и параллельно несёт в себе модуль ГА. Первоначальное обучение марковской модели слова производится с помощью метода Баума-Велча,
а
в
дальнейшем
(например,
во
время
простоя
системы,
когда
вычислительные ресурсы компьютера свободны) производятся запуски системы ГА как со случайной стартовой популяцией, так и с популяцией, построенной на основе уже обученных моделей. При нахождении генетическим алгоритмом модели слова лучшей, чем имеющаяся в словаре системы, производится её замена на новую. Данный подход позволяет произвести быстрое начальное обучение системы и затем последовательно работать над улучшением моделей слов в словаре. Независимость подтверждается
работы
генетического
алгоритма
при использовании в качестве
от
начальных
условий
начальной популяции случайно
сгенерированных решений. В этом случае разница с вариантом, когда используются созданные другим алгоритмом начальные решения, заметна лишь на ранних шагах работы алгоритма и заключается в некотором отставании ГА, т.е. возникновении ситуации, когда для достижения аналогичного результата ему требуется некоторое дополнительное время. Эта особенность может проявиться только в случае, когда в качестве критерия останова выбрано слишком малое число поколений работы ГА. Рассмотрены показатели эффективности работы генетических алгоритмов, изучено влияние параметров генетического алгоритма на эффективность его работы. Выявлено, что скорость работы генетического алгоритма напрямую зависит от правильного выбора размера популяции и критерия останова, а также от качественной реализации фитнесфункции. Автором определены наиболее эффективные значения параметров ГА и использована высокоэффективная реализация фитнес-функции. Отмечена хорошая масштабируемость генетического алгоритма, позволяющая повысить его скорость путём распараллеливания как на уровне организации работы генетического
алгоритма
и
на
уровне
его
непосредственной
реализации
на
вычислительной машине. Кроме того, способность параллельного выполнения ГА на нескольких машинах даёт возможность создания системы распределённых вычислений, целью которой является оптимизация СММ. При наличии парка компьютеров время их простоя может быть минимизировано за счёт выполнения таких распределённых
103
вычислений в моменты, свободные от решения иных задач. Предложены пути дальнейшего усовершенстования алгоритма, описанного в предыдущей главе – введение генетического алгоритма второго уровня в целях адаптивного подбора параметров функционирования основного ГА без вмешательства человека и использование комбинированной фитнес-функции, способной положительно повлиять на качество обучения (и последующего распознавания) в случае работы системы распознавания команд с несколькими дикторами или с одним диктором, но при возможности смены его психо-физиологического состояния.
104
Выводы и заключение 1. Для современных систем управления, использующих системы автоматического распознавания речевых команд на основе скрытых марковских моделей (СММ), при фиксированной аппаратной базе таких систем и существующих тенденциях её развития в ближайшем будущем проведёно исследование задачи обучения СММ тренировочными последовательностями. Исследование показало, что существует перспективное
направление
повышения
эффективности
обучения
СММ
посредством использования аппарата генетических алгоритмов (ГА), которые преодолевают ограничения и недостатки методов, традиционно используемых для оптимизации
СММ,
а
также
обладают
очень
хорошими
перспективами
использования с учётом тенденций развития аппаратных средств. 2. Для
решения
задачи
оптимизации
обучения
СММ
разработан
наиболее
приспособленный для этой цели ГА, выбран и реализован механизм кодирования хромосом вероятность
вещественным генерации
числами, тестовой
создана фитнес-функция, последовательности
вычисляющая
моделью
наиболее
эффективным способом. Разработанные генетические операторы ориентированы на работу с СММ и учитывают характерные для них ограничения. На основании теоремы схем показано, что выбранный оператор отбора ведёт к эффективному нахождению более хороших решений задачи. Определены условия эффективного применения
различных
вариантов
реализации
критерия
останова
ГА.
Экспериментально определены наиболее эффективные значения параметров алгоритма (размер популяции, вероятность мутации) для использования в задаче обучения СММ. 3. В результате исследования эффективности оптимизации обучения СММ с помощью генетического алгоритма и сравнения его с традиционными методами обучения установлено, что предложенный автором генетический алгоритм показывает результаты, сравнимые с методом Баума-Велча, а в некоторых случаях и превосходит их, находя решения за пределами локальных экстремумов, которые не может обнаружить метод Баума-Велча. Генетический алгоритм преодолевает и такое важное ограничение традиционных методов, как сильную зависимость от стартовых значений. Предложенный подход показал свою эффективность и перспективность использования в задачах распознавания речевых команд. 4. Экспериментально
определены
параметры,
оказывающие
влияние
на
105
эффективность решения алгоритмом поставленной задачи. Предложены методы, направленные на дальнейшее повышение эффективности и качества работы ГА в контексте рассматриваемой задачи: возможность оптимизации выбора параметров с использованием 2-уровневого ГА и использование комбинированной фитнесфункции. Это открывает путь к созданию самообучающихся систем распознавания и позволяет повысить качество распознавания команд при работе с разными дикторами, дикторами в условиях стресса, с дикторами, речь которых имеет особенности
в
виде
«проглатывания»
части
звуков,
а
также
в
телекоммуникационных системах при работе по каналам связи низкого качества, где часть голосовой информации может быть потеряна, в том числе и в сетях сотовой связи или IP-телефонии. 5. В рамках работы создан программно-аппаратный комплекс «Иволга» для исследования
генетических
алгоритмов.
Программная
его
часть является
дополнением системы SdiApp, решающей задачу оценки стартовых параметров СММ и функционирующей на кафедре ЭВА МИЭМ с 1998 г., и написана в среде Borland C++ Builder 6. Необходимая для работы аппаратная часть – ПК с процессором класса Pentium-3 500МГц и 256Мб оперативной памяти, а также звуковая карта, поддерживающая при записи звука частоты дискретизации до 44КГц. 6. Автором предлагается следующая схема организации процесса обучения в системе распознавания речевых команд на основе СММ: система содержит модуль, реализующий обучение традиционным методом Баума-Велча и параллельно несёт в себе модуль ГА. Первоначальное обучение марковской модели слова производится с помощью метода Баума-Велча, а в дальнейшем (например, во время простоя системы, когда вычислительные ресурсы компьютера свободны) производятся запуски системы ГА как со случайной стартовой популяцией, так и с популяцией, построенной на основе уже обученных моделей. При нахождении генетическим алгоритмом модели слова лучшей, чем имеющаяся в словаре системы, производится её замена на новую. Данный подход позволяет произвести быстрое начальное обучение системы и затем работать над улучшением моделей слов в словаре (в том числе и имея возможность распределить вычисления между различными компьютерами в сети). Предложенное в данной работе решение задачи оптимизации обучения СММ способно улучшить процесс обучения СММ тренировочными последовательностями и повысить надёжность работы систем
106
распознавания речевых команд, использующих в своей работе марковские модели.
107
Литература 1. Андрейчиков А.В., Андрейчикова О.Н. Интеллектуальные информационные системы: Учебник. – М.: Финансы и статистика, 2004. – 424 с.: ил. 2. Анохин П.К. «Философский смысл проблемы естественного и искусственного интеллекта», Вопросы философии (1973, № 6, с.83-97). 3. Баричев С. «Нас мало, но мы – супер!», Компьютерра, #47 (571), 2004, стр.19. 4. Белянин В.П. «Психолингвистика: учебник». – М.:Флинта: Московский психологосоциальный институт, 2003. – 232 с. 5. Буря А.Г. «Фонетическая база данных для речевых исследований», Диплом, Москва, МИЭМ, 2000 6. Витяев Е.Е. «Вероятностное прогнозирование и предсказание как принцип работы мозга» // Измерение и Модели Когнитивных Процессов, Труды ИМ СО РАН (Выч. системы, 162), Новосибирск, 1998, Стр. 14-40. 7. Галунов В.И. «Актуальные проблемы речевой акустики», Акустика речи. Медицинская и биологическая акустика. Сборник трудов XIII сессии Российского акустического общества. Т.3. – М.: ГЕОС, 2003. – 274 с. Стр.16-19. 8. Галунов В.И.
«Современные речевые
технологии
(обзорная
статья)»,
1999,
http://www.auditech.ru/article/cntrid/click.php?action=download&id=5. 9. Галунов В.И., Кутуков Г.П., Матюнин С.Н. «Состояние исследований в области речевых технологий и задачи, выдвигаемые государственными заказчиками», Секция по автоматическому распознаванию и синтезу речи РАН, 1999. 10. Галяшина Е.И. «Основы судебного речеведения», изд-во СТЭНСИ, 2003. 11. Годфруа Ж. «Что такое психология»: В 2-х т. Изд 2-е, стереотипное. Т.1: Пер. с франц. – М.: «Мир», 1999. – 496 с., ил. 12. Дубров А.М., Мхитарян В.С., Трошин Л.И. «Многомерные статистические методы» Финансы и статистика, Москва, 1998. 13. Дьяконов В. «MATLAB. Обработка сигналов и изображений. Специальный справочник». – СПб.: Питер, 2002. – 608 с.:ил. 14. Златоустова Л.В., Потапова Р.К., Потопов В.В., Трунин-Донской В.Н. «Общая и прикладная фонетика». – М.: МГУ, 1997. 15. Иконин С.Ю., Сарана Д.В. «Система автоматического распознавания речи SPIRIT ASP Engine», Цифровая обработка сигналов, #3, 2003. 16. Капра Ф. «Паутина жизни. Новое научное понимание живых систем», К.: София; 2002.
108
17. Клемент Р. «Генетические алгоритмы: почему они работают? Когда их применять?», Компьютерра, №289, 1999, стр. 20-23. 18. Кольман Я., Рём К.-Г. «Наглядная биохимия»: Пер. с нем. – М.: Мир, 2000. – 469 с. 19. Корнеев В.В., Гареев А.Ф., Васютин С.В., Райх В.В. «Базы данных. Интеллектуальная обработка информации». – М.: «Нолидж», 2000. – 352 с., ил. 20. Коротков А.В. «Послесловие к матрице: виртуальные миры или искусственная жизнь». – М.: МПБ «Деловая культура»; Альпина Бизнес Букс, 2005. – 308 с. 21. Косарев Ю.А. «Естественная форма диалога с ЭВМ». — Л.:Машиностроение, 1989. 22. Кочетков А. «Умные телефоны заговорили», Компьютерра #16 (588), 2005, стр.50-51. 23. Люгер Дж. «Искусственный интеллект: стратегии и методы решения сложных проблем», 4-е издание.: пер.с англ. – М.:Издательский дом «Вильямс», 2003, - 864 с. 24. Озеров С. «Архитектура CPU», Компьютерра #37 (609), 2005, стр.24-39. 25. Озеров С. «Ячейка. Она же клетка, она же… Cell», Компьютерра #38 (610), 2005, стр.38-41. 26. Петерс Э. «Хаос и порядок на рынках капитала. Новый аналитический взгляд на циклы, цены и изменчивость рынка»: Пер. с англ. – М.: Мир, 2000, – 333 с. 27. Пиотровский Р.Г. и др. «Математическая лингвистика. Учеб. пособие для пед. ин-тов». М., «Высшая школа», 1977. 28. Попов Э.В. «Общение с ЭВМ на естественном языке». Изд. 2-е, стереотипное. – М.: Едиториал УРСС, 2004. – 360 с. (Науки об искусственном.) 29. Потёмкин В.Г. «MATLAB 6: среда проектирования инженерных приложений». – М.: Диалог-МИФИ, 2003. – 448 с. 30. Саймон Г. «Науки об искусственном». Пер с англ. Изд. 2-е. – М.: Едиториал УРСС, 2004. 144 с. (Науки об искусственном.) 31. Самойленко А.П., Дюк В.А. Data Mining. Учебный курс, изд-во Питер, 2001 32. Сапунов Г.В., Труфанов Ф.А. «Генетические алгоритмы как метод оптимизации скрытых марковских моделей в задачах распознавания речи»,
Информационные
технологии в системах вычислительной техники. Выпуск 3. Под общей редакцией проф. Азарова В.Н. – М.:МИЭМ, 2004. 33. Серов А.А. «Оценка стартовых параметров СММ в задачах распознавания команд при кепстральной предобработке речевого сигнала», диссертация, УДК 534.78, Москва, МИЭМ, 2001. 34. Скляр Б. «Цифровая связь. Теоретические основы и практическое применение». Изд. 2-е, испр.: Пер. с англ. – М.:Издательский дом «Вильямс», 2003. – 1104 с.: ил.
109
35. Солонина А.И., Улахович Д.А., Яковлев Л.А. «Алгоритмы и процессоры цифровой обработки сигналов». – СПб.: БХВ-Петербург, 2002. – 464 с.: ил. 36. Солсо Р. «Когнитивная психология». – СПб.:Питер, 2002. – 592 с. 37. Сусов И.П. «Введение в теоретическое языкознание. Основы общей фонетики и фонологии». (http://www.tversu.ru/~ips) 38. Таран О., Мирошниченко С., Гуриев В. «Ничего никому не скажу?», Компьютерра, #36 (608), 2005, стр.25-33. 39. Тейлор Д., Грин Н., Стаут У. «Биология»: в 3-х т. Т.1: Пер. с англ./Под ред. Р.Сопера – 3-е изд., – М.: Мир, 2001. – 454 с. 40. Тьюринг А. «Может ли машина мыслить?» (С приложением статьи Дж. фон Неймана «Общая и логическая теория автоматов». Пер. и примечания Ю.В. Данилова). М.: ГИФМЛ, 1960. 41. Уитби Б. «Искусственный интеллект: реальна ли Матрица». М.: Фаир-пресс, 2004, 210 с. 42. Хофштадтер Д., Деннетт Д. «Глаз разума». – Самара: Издательский дом «Бахрах-М», 2003. – 432 с. 43. Цой Ю. «Модели ГА», http://qai.narod.ru/GA/gamodels.html 44. Ярушкина Н.Г. «Основы теории нечётких и гибридных систем»: Учеб. пособие. – М.: Финансы и статистика, 2004, – 320 с. 45. Artificial Intelligence FAQ «What are Gray codes, and why are they used?», http://www.faqs.org/faqs/ai-faq/genetic/part6/section-1.html 46. Bäck Th., «Evolutionary Algorithms in theory and practice», Oxford University Press, 1996. 47. Bäck Th., «Self-Adaptation in Genetic Algorithms», University of Dortmund, Department of Computer Science, Dortmund, Germany, 1992. 48. Baum L.E., Petrie T., «Statistical inference for probabilistic functions of finite state Markov chains», Ann. Math. Stat., vol.37, pp.1554-1563, 1966. 49. Baum L.E. «An inequality and associated maximization technique in statistical estimation for probabilistic functions of Markov processes», Inequalities, vol.3, pp. 1-8, 1972. 50. Blickle T., Thiele L., «A Comparison of Selection Schemes used in Genetic Algorithms», Computer Engineering and Communication Networks Lab, Swiss Federal Institute of Technology, Zurich, Switzerland, 1995. 51. Burger Y. «Мягкие вычисления», http://www.getinfo.ru/print28_0.html 52. Carnegie Mellon Engineering Researchers To Create Speech Recognition in Silicon, 13 September 2004, http://www.cmu.edu/PR/releases04/040913_speech.html
110
53. Capra F. «The Hidden Connections», Harper Collins Publishers, 2002, ISBN 0-00-257047-5. 54. Chau C.W., Kwong S., Diu C.K., Fahrner W.R. «Optimization of HMM by a Genetic Algorithm», Proceedings of the 1997 International Conference on Acoustics, Speech and Signal Processing, 1997, pp. 1727-1730. 55. Clement R.P., Wren A. «Genetic Algorithms and Bus-Driver Scheduling», Presented at the 6th International Conference for Computer-Aided Transport Scheduling, Lisbon, Portugal, 1993. 56. CompTek, «В России появился первый коммерческий продукт распознавания русской речи для телефонных приложений», http://news.telecominfo.ru/print.phtml?nid=26076. 57. Daridi F., Kharma N., Salik J.F.N. «Parameterless Genetic Algorithms: Review and Innovation», IEEE Canadian Review, Summer 2004, No. 47. 58. Deb K., Agrawal S. «Understanding Interactions Among Genetic Algorithm Parameters», Kanpur Genetic Algorithms Laboratory, Kanpur, India, 1998. 59. De Jong, K.A. «An analysis of the behavior of a class of genetic adaptive systems». Doctoral dissertation, University of Michigan, Ann-Arbor, MI (University Microfilms No. 76-9381), 1975. 60. Eiben A.E., Marchiori E., Valkó. «Evolutionary Algorithms with on-the-fly Population Size Adjustment», Department of Artificial Intelligence, Vrije Universiteit Amsterdam, 2004. 61. Eiben A.E., Hinterding R., Michalewicz Z. «Parameter control in evolutionary algorithms», IEEE Transactions on Evolutionary Computation, Vol.3, No.2, 1999, pp.124-141. 62. Elliott L., Ingham D., Kyne A., Mera N., Pourkashanian M., Whittaker S. «Efficient Clustering-Based Genetic Algorithms in Chemical Kinetic Modelling», GECCO 2004 Proceedings, Springer-Verlag Berlin Heidelberg, 2004, pp.932-944. 63. Fogarty T., Terence C. «Varying the probability of mutation in the genetic algorithm», Proceeding of the Third International Conference on Genetic algorithms, Morgan Kufmann, 1989, pp.104-109. 64. Fogel L.J., Owens A.J., Walsh M.J. «Artificial Intelligence Through Simulated Evolution», John Wiley, 1966. 65. Gales M. «The Theory of Segmental Hidden Markov Models», Cambridge University, 1993. 66. Galunov V.I., Soloviev A.N. «Black Patches in the Field of Automatic Speech Recognition», Proceedings of XV Session of the Russian Acoustic Society, Nizhny Novgorod, November 15-18, 2004. pp.412-415. 67. Goldberg D.E. «Genetic Algorithms in Search, Optimization and Machine Learning». Reading, MA: Addison-Wesley, 1989.
111
68. Goldberg D.E., Deb K., Clark J.H. «Genetic algorithms, noise, and the sizing of populations», Complex systems, 6(4), 1992, August, pp.333-362. 69. Gorges-Schleuter M. «Explicit Parallelism of Genetic Algorithms through Population Structures». Paralles Problem Solving from Nature, Springer Verlag, 1991, pp.150-159. 70. Grefenstette J.J. «Optimization of Control Parameters for Genetic Algorithms». IEEE Trans. Systems, Man, and Cybernetics, 16(1), 1986, pp.122-128. 71. Hand D., Mannila H., Smyth P. «Principles of Data Mining», Massachusetts Institute of Technology, 2001, ISBN 0-262-08290-X. 72. Holland J.H. «Adaptation in Natural and Artificial Systems: 2nd edition», MIT Press, 1992. 73. Holland J.H. «Building Blocks, Cohort Genetic Algorithms, and Hyperplane-Defined Functions», MIT Press, Evolutionary Computation #8(4), 2000, pp.373-391. 74. Jelinek F. «Statistical Methods for Speech Recognition», Massachusetts Institute of Technology, 1998, ISBN 0262100665. 75. Kaiser J. «Training of HMM with Genetic Algorithms», University of Maribor, Faculty of Electrical Engineering and Computer Science, Slovenia. 76. Kaiser J., Kačič Z. «Učenje prikritih modelov Markova z genetskimi algoritmi», Fakulteta za elektrotehniko, računalništvo in informatiko, Univerza v Mariboru, Slovenija. 77. Koutras A., Dermatas E., Kokkinakis G. «Recognizing simultaneous speech: a genetic algorithm approach», WCL, Electrical and Computer Engineering Dept., University of Patras, Greece. 78. Luke S. «When Short Runs Beat Long Runs», George Mason University. In GECCO-2001: Proceedings of the Genetic and Evolutionary Computation Conference. Lee Spector et al, eds. Morgan Kaufmann, 2001, pp. 74-80. 79. Marczyk
A.
«Genetic
Algorithms
and
Evolutionary
Computation»,
2004,
http://www.talkorigins.org/faqs/genalg/genalg.html. 80. Mathias K., Whitley D. «Transforming the Search Space with Gray Coding», Department of Computer Science, Colorado State University, 1994. 81. Penrose R. «Shadows of the Mind», Vintage Science, 1995, ISBN 0-09-958211-2. 82. Popovici E., De Jong K. «Understanding EA Dynamics via Population Fitness Distributions», Department of Computer Science, George Mason University, Fairfax, USA, 2003. 83. Rabiner L.R., «A tutorial on Hidden Markov Models and Selected Applications in Speech Recognition», Proceedings of the IЕЕЕ, vol, 77. no.2, February 1989, рр. 257-284. 84. Rechenberg I. «Evolutions strategie: Optimierung technischer systeme nach prinzipien der biologischen evolution», Frommann, 1973.
112
85. Sakrament ASR Engine, http://www.sakrament.com 86. Sastry K., O’Reilly U.M., Goldberg D.E. «Population Sizing for Genetic Programming Based Upon Decision Making», IlliGAL Report No. 2004028, April, 2004. 87. Schwefel
H-P.
«Numerische
optimierung
von
computer-modellen
mittels
der
evolutionsstrategie», Volume 26 of Interdisciplinary systems research. Birkhauser, Basel, 1997. 88. Smith W.S. «The Scientist and Engineer’s Guide to Digital Signal Processing», Second Edition, California Technical Publishing, San Diego, California, 1999, ISBN 0-9660176-6-8 89. SPIRIT Corp., http://www.spirit.ru 90. «StatSoft's Electronic Statistics Textbook», 1999 91. Tegmark M. «Parallel Universes», Scientific American, May, 2003. 92. Vector Quantization, http://www.data-compression.com/vq.shtml 93. Viterbi A.J., «Error bounds for convolutional codes and an asymptotically optimal decoding algorithm». IEEE Trans. Informat. Theory, vol. IT-13, pp. 260-269, Apr. 1967. 94. Whitley D. «A Genetic Algorithm Tutorial», Computer Science Department, Colorado State University, USA, 1993. 95. Wikipedia. «Genetic algorithm», http://en.wikipedia.org/wiki/Genetic_algorithm. 96. Wikipedia. «Artificial life», http://en.wikipedia.org/wiki/Artificial_life.
113
Предметный указатель EM (expectation-modification) метод .................................................................................................................. 29 Forward-Backward процедура ............................................................................................................................. 26 nGA................................................................................................................................................................... 103 pGA, parameterless GA...................................................................................................................................... 101 Баума-Велча процедура, Baum-Welch ............................................................................................................... 29 векторое квантование......................................................................................................................................... 21 Витерби алгоритм............................................................................................................................................... 28 ГА адаптивный, adaptive.................................................................................................................................... 102 детерминистический, deterministic .............................................................................................................. 102 сапоприспосабливающийся, self-adaptive ................................................................................................... 102 генетические алгоритмы (ГА), Genetic Algorithms (GA) ................................................................................... 38 генетические операторы ..................................................................................................................................... 42 генотип................................................................................................................................................................ 40 длина схемы ....................................................................................................................................................... 47 индивидуум.................................................................................................................................... См. хромосома искусственная жизнь, Artificial Life................................................................................................................... 38 качество особи .................................................................................................................................................... 41 комбинаторный взрыв........................................................................................................................................ 35 кроссинговер, crossover .............................................................................................. См. оператор скрещивания матрица вероятностей начальных состояний .............................................................................................................. 19 вероятностей переходов ................................................................................................................................ 18 мера давления отбора (selection pressure) .......................................................................................................... 50 методы оптимизации направленные................................................................................................................................................. 34 ненаправленные ............................................................................................................................................. 34 перечислительные.......................................................................................................................................... 35 модель бионическая ................................................................................................................................................... 38 марковская ..................................................................................................................................................... 16 скрытая марковская, СММ ............................................................................................................................ 17 мутация, mutation ............................................................................................................................................... 45 неявный параллелизм ......................................................................................................................................... 47 нулевой переход ................................................................................................................................................. 25 оператор мутации ............................................................................................................................................... 41 оператор отбора................................................................................................................................................... 41 оператор редукции ............................................................................................................................................... 41 оператор скрещивания ......................................................................................................................................... 41 особь............................................................................................................................................... См. хромосома переменная "обратная" ...................................................................................................................................................... 27 "прямая" ......................................................................................................................................................... 26 поколение ............................................................................................................................................................ 41 популяция............................................................................................................................................................ 41 порядок схемы.................................................................................................................................................... 47 потомок............................................................................................................................................................... 41 правило Холланда .............................................................................................................................................. 48 проблема «баланса исследования и использования»......................................................................................... 51 проблема «поля для гольфа».............................................................................................................................. 52 размер популяции ................................................................................................................................................ 41 размножение ....................................................................................................................................................... 41 регулировка параметров, parameter tuning....................................................................................................... 101 рекомбинация ............................................................................................................................. См. кроссинговер родитель ............................................................................................................................................................. 41 СММ "слева-направо", left-right model.................................................................................................................... 22 авторегрессионная ......................................................................................................................................... 24
114
Бэйкиса, Bakis model......................................................................................................... См. "слева-направо" полносвязная.................................................................................................................................................. 22 с длительностью состояний ........................................................................................................................... 24 с непрерывными плотностями вероятностей ................................................................................................ 24 с параллельными путями ............................................................................................................................... 23 с поступательно-ограниченными переходами .............................................................................................. 22 эргодическая ..........................................................................................................................См. полносвязная строительный блок ............................................................................................................................................. 47 схема хромосомы ............................................................................................................................................... 46 теорема схем....................................................................................................................................................... 47 управление параметрами, parameter control ..................................................................................................... 101 фенотип............................................................................................................................................................... 40 фитнес-функция, fitness function .......................................................................См. функция приспособленности функция приспособленности ............................................................................................................................. 43 хромосома ........................................................................................................................................................... 40 эволюционное программирование, Evolutionary Programming ......................................................................... 38 эволюционные вычисления................................................................................................................................ 37 эволюционные стратегии, Evolution Strategies .................................................................................................. 39 элитизм ............................................................................................................................................................... 45
115
Приложение 1. Описание программного комплекса для изучения генетических алгоритмов. Разработанный автором программный комплекс «Иволга» (Eevolga, Electronic Evolition: Genetic Algorithms) предназначен для исследования генетических алгоритмов в задачах распознавания речи на основе скрытых марковских моделей с кепстральной предобработкой речевого сигнала, что приводит к использованию непрерывных СММ. Программный комплекс создан автором на базе программы SdiApp, которая была разработана Серовым А.А. на кафедре ЭВА МИЭМ для оценки стартовых параметров СММ в задачах распознавания команд при кепстральной обработке речевого сигнала. Блок работы с генетическими алгоритмами реализован в виде отдельного модуля программы с собственным диалоговым окном настройки параметров, интегрированным в общую систему. Исходные данные программа принимает как из речевой базы данных (РБД), разработанной и используемой на кафедре ЭВА МИЭМ, так и непосредственно с микрофона или из заранее приготовленных wav-файлов.
Структура и функционирование программы Программа Eevolga написана на языке С++ как многопоточное приложение с применением среды разработки приложений Borland C++ Builder 6.0. Реализация программы в виде нескольких взаимодействующих потоков позволила наиболее
эффективно
использовать
ресурсы
системы
и
дала
принципиальную
возможность осуществить работу со звуковой подсистемой компьютера в режиме реального времени. Передача данных между потоками осуществляется посредством очередей и синхронизированного доступа к ним. Данные в очередях представляются в виде структур, содержащих всю необходимую и сопутствующую информацию для правильной работы последующих модулей-потоков. На рис. 5.1 представлена структура программы:
116
Рис. 5. 1 Структура программного комплекса
Здесь видны потоки команд и данных между модулями-потоками и их направление. По этой схеме можно судить о маршрутах прохождения информации через модули. Так, например, чтобы данные попали из файла в буфер речевых единиц, они должны
проследовать
через
модуль
АЦП,
в
котором
они
преобразуются
в
последовательность фреймов в соответствии с настройками модуля. И наоборот, чтобы данные попали из буфера речевых единиц в модуль генетических алгоритмов, они должны проследовать через модуль DSP. Каждому потоку приложения соответствует одно или несколько диалоговых окон, через которые осуществляется управление алгоритмами, которые реализует поток, и также через эти окна производится отображение результатов работы.
117
Назначение модулей программы На рис.5.2 представлено основное окно программы. Отдельным кнопкам в её окне соответствуют диалоговые окна для настройки и управления обозначенными модулями программы.
Рис. 5.2 Основное окно программы
VCL Этот модуль является основным потоком приложения, правда, при этом он не участвует ни в каких вычислениях. Он занимается взаимодействием с операционной системой и графической подсистемой компьютера в частности, т.е. все диалоги и окна приложения находятся в его ведении. За все, что видно на экране, ответственен VCL.
118
АЦП В обязанности этого модуля входит: §
управление драйвером звуковой карты.
§
реакция на прерывания со стороны звуковой карты.
§
формирование заданного потока фреймов из данных поступающих от звуковой карты.
§
отображение параметров текущего сигнала.
В диалоге управления этим потоком можно задать частоту дискретизации и разрядность
оцифровки
сигнала
с
микрофона.
Здесь
же
задаются
параметры
формируемого потока фреймов. Также в диалоговом окне этого модуля отображается текущее значение параметров входного сигнала, что позволяет настраивать систему на оптимальную работу с данной звуковой подсистемой компьютера.
Таксоном Модуль таксономии речи занимается вычленением изолированных слов из непрерывного потока данных, поступающего от АЦП, и помещает эти слова в буфер речевых единиц. Также через диалог этого модуля осуществляется управление этим буфером. По сути, это центр управления основными функциями системы. Отсюда речевые единицы отправляются на предобработку.
DSP Это «главный вычислительный центр». Этот модуль производит все трудоемкие вычисления, те, которые в аппаратных системах обычно выполняет цифровой сигнальный процессор. Этот модуль обслуживается несколькими диалоговыми окнами. Данные в модуль DSP поступают из модуля Таксоном в виде целых речевых единиц. Далее модуль производит кепстральное преобразование. В этом модуле реализована таксономия слов на фонемы, сохранние полученных фонем в виде wav и cps-файлов. Отсюда же слова передаются в простейший редактор, встроенный в программу.
119
ГА Модуль, реализующий генетические алгоритмы: основной цикл работы генетического алгоритма, работу с популяциями, генетические операторы. В процессе работы модуль может взаимодействовать со словарём системы и с буфером речевых единиц.
Настройка системы генетических алгоритмов Диалог настройки параметров генетического алгоритма доступен при нажатии на кнопку Eevolga в главном окне программы. При этом вызывается окно с базовыми параметрами ГА (рис. 5.3), где пользователь может задать размер популяции, а также параметры генерации исходной популяции: число случайных и мутировавших особей и вероятность мутации, применяющуюся при создании мутировавших особей начальной популяции.
Рис. 5.3 Базовые параметры ГА
Следующая закладка этого окна (рис. 5.4) позволяет настроить параметры оператора отбора. Среди этих параметров располагается выбор метода отбора а также переключатель, указывающий производить ли нормализацию значений фитнес-функции при пропорциональном отборе.
120
Рис. 5.4 Параметры отбора
Следующая закладка (рис. 5.5) управляет параметрами оператора скрещивания, здесь пользователь может выбрать метод кроссовера – одноточечный, двухточечный или равномерный:
Рис. 5.5 Параметры оператора скрещивания
Закладка с параметрами оператора мутации (рис. 5.6). Здесь задаётся вероятность применения оператора мутации, метод мутации – однострочная или многострочная, а
121
также переключатель, допускающий «странные» мутации, то есть мутации, ведущие к появлению ненулевых элементов в матрице слева от главной диагонали:
Рис. 5.6 Параметры оператора мутации
Закладка с параметрами критерия останова (рис. 5.7). Здесь задаётся число поколений работы генетического алгоритма:
Рис. 5.7 Параметры критерия останова
122
Порядок работы с программой Как уже отмечалось выше, программа имеет возможность сохранить все текущие параметры в файл или восстановить их из файла. При работе с программой следует учитывать, что результаты работы программы могут оказаться неверными или даже привести к системным ошибкам, если не учитывать соответствие текущих параметров с теми, при которых проводилось создание моделей. По этому, при создании моделей, целесообразно сохранить файл с настройками системы и затем, при работе с моделями, возвращаться к нему.
Сохранение настроек Для сохранения текущих настроек программы в меню главного окна программы выберите File->Save… При старте программа пытается загрузить файл с параметрами sdiapp.cfg, который должен находится в той директории, из которой запущена программа. Так если вы сохраните свои настройки в этом файле, то программа будет устанавливать их при каждом старте.
Загрузка настроек Для загрузки ранее сохраненных настроек системы в меню главного окна программы выберите File->Open…
Диктовка слов 1. Настройте параметры АЦП так, чтобы в тот момент, когда в микрофон ничего не произносится, динамический параметр ZCR, был равен нулю. Для этого установите в поле Амплитуда фонового шума значение, несколько превышающее значение динамического параметра Амплитуда. 2. Настройте параметры Таксонома так, чтобы значения обоих порогов превышали динамические параметры АЦП в тот момент, когда в микрофон ничего не произносится. Для понимания процесса использования пороговых значений руководствуйтесь рис.5.1. Для более точной работы алгоритма следует выбирать минимально приемлемые пороговые значения. 3. Произнесите в микрофон слово.
123
4. При правильной настройке системы и при условии нормального функционирования звуковой подсистемы компьютера, в буфере речевых единиц появится новая запись с написанием <нет>
Чтение WAV-файла 1. В главном окне программы нажмите кнопку «Файлы». 2. В открывшемся диалоге можно выбрать файлы для обработки программой. Диапазон файлов выбирается с нажатой клавишей Shift, отдельные файлы можно добавить к списку, удерживая нажатой кнопку Ctrl. 3. Нажмите кнопку OK. 4. После загрузки файлов будет произведена их обработка программой.
Создание новой модели 1. Отметьте в буфере речевых единиц не менее двух: 2. Проверьте написание всех отмеченных речевых единиц. Написание самой верхней из них, будет принято как название создаваемой модели. 3. Путем прослушивания убедитесь, что все отмеченные речевые единицы идентичны, при этом их длина должна отличаться незначительно. 4. Переместите курсор мыши на поле Буфер и нажмите правую кнопку мыши. Появится всплывающее меню. Рис.5.8 5. Выберите пункт меню Обучение 6. В словаре появится новая модель и в окне Результаты, будут выведены ее параметры. 7. В случае если вы хотите запустить обучение посредством генетических алгоритмов, выберите пунке Full Evo. Общие результаты работы генетического алгоритма выдаются в окно результатов. Подробные результаты работы выводятся в окно результатов работы генетического алгоритма, доступное по кнопке EvoRes главного окна программы.
124
Рис. 5.8 Обучение модели
125
Приложение 2. Результаты экспериментальной проверки комплекса на ПЭВМ. Ниже
приведён
детальный
пример
работы
генетического
алгоритма
запротоколированный программой в файле при следующих параметрах самого ГА: Размер популяции: 100 Число поколений: 400 Вероятность мутации: 0,9 Вероятность мутации при создании исходной популяции: 0,9 Нормализация значений фитнес-функции: On Оператор
скрещивания:
одноточечный
(1-point),
двухточечный
(2-point),
равномерный
(Random) Оператор мутации: однострочный Исходная популяция (Число мутированных особей): 100 Исходная популяция (Число случайных особей): 0
Протоколо работы ГА с комментариями: # первый этап – генерирование исходной популяции заданного размера Person 1 N:10 F:2,57856703717435E-216 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,76506811 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,19921762 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01724138 0,01847291 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,03571429 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
Person 2 N:10 F:5,22338126511996E-215 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01724138 0,01847291 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,03571429 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
…
126
Person 100 N:10 F:1,55866173433415E-216 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01724138 0,01847291 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,75220096 0,01666667 0,23113233 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,03571429 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
# Далее запускается основной цикл работы ГА, в начале каждого из шагов цикла отображается номер поколения и затем перечисляются проводящиеся этапы работы алгоритма: Population: 1 Selection Crossover Mutation Reevaluation Reduction
# Завершается шаг выводом значений фитнес-функций всех особей популяции: F:5,22338126511996E-215 F:1,69504741431515E-215 F:6,57668253554822E-215 F:5,22338126511996E-215 F:4,45454066048329E-215 F:5,22338126511996E-215 … F:6,57668253554822E-215
# И выводом матрицы вероятностей переходов лучшей из особей популяции N:10 F:1,2148686290549E-214 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01724138 0,01847291 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,89759427 0,08516435 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,98390800 0,01609195 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,03571429 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
# Далее осуществляется переход к следующему поколению:
127
Population: 2 Selection Crossover Mutation Reevaluation Reduction F:6,57668253554822E-215 F:9,09956294703976E-215 F:5,65017714232228E-215 F:6,57668253554822E-215 … F:5,22338126511996E-215 N:10 F:1,74400711280994E-214 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01666667 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,88096607 0,10056102 0,01847291 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96666664 0,01609195 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,01847291 0,01724138 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,90236545 0,08096787 0,01666667 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,96428573 0,03571429 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
# Завершается работа алгоритма по срабатыванию критерия останова – достижению популяции с заданным номером. Как видно из протокола работы, популяция к этому моменту стабилизировалась на одном достаточно хорошем решении: Population: 400 Selection Crossover Mutation Reevaluation Reduction F:8,26993157354578E-212 F:8,26993157354578E-212 F:8,26993157354578E-212 F:8,26993157354578E-212 … F:8,26993157354578E-212 N:10 F:8,26993157354578E-212 0,93633032 0,06366964 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92852277 0,07147722 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93370742 0,06629252 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92860907 0,07139093 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92960995 0,07039008 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93408930 0,06591063 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93012458 0,06987542 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,93378383 0,06621615 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,92853469 0,07146537 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 0,00000000 1,00000000
# И в заключение алгоритм выводит значения фитнес-функций лучших особей
128
каждой из популяции на протяжении всей истории работы алгоритма. Эти данные позволяют построить график сходимости решения. 1,2148686290549E-214 1,74400711280994E-214 2,33393079266842E-214 3,09676139915611E-214 4,83286369031649E-214 8,0089684497899E-214 1,11383385837564E-213 1,11662913417698E-213 1,704908077845E-213 1,75114532581059E-213 … 8,26993157354578E-212 8,26993157354578E-212 8,26993157354578E-212 8,26993157354578E-212
# На этом работа алгоритма заканчивается. В окне сообщений программы отображается информация о затраченном на выполнение алгоритма времени: Start: 13:46:39 Finish: 14:02:00
129