Представления знаний в информационных системах
.pdf
|
|
Табл. 5.1 Проблемы в работе ГА и |
|
|
|
возможные пути их исправления |
|
Проблема |
|
Возможные способы исправления |
|
|
|
|
|
1. Плохая приспособлен- |
1. |
Увеличение числа поколений эволю- |
|
ность решений |
|
ционного поиска. |
|
|
2. |
Увеличение численности популяции. |
|
|
3. |
Изменение критерия оценки особей. |
|
|
4. |
Исправление способа формирования |
|
|
|
родительских пар для скрещивания. |
|
|
5. |
Исправление стратегии скрещивания и |
|
|
|
формирования нового поколения. |
|
2. Преждевременная |
1. |
Изменение стратегии выбора |
|
сходимость (вырождение |
|
родительских пар для скрещивания. |
|
популяции) |
2. |
Отслеживание появления в популяции |
|
|
|
идентичных особей и их удаление. |
|
|
3. |
Использование сильно разрушающего |
|
|
|
оператора кроссинговера. |
|
|
4. |
Увеличение вероятности мутации. |
|
3. Низкая «стабильность» |
1. |
Применение “элитизма” (уменьшение |
|
эволюции популяции (зна- |
|
разрыва поколений). |
|
чительные колебания |
2. |
Уменьшение вероятности мутации. |
|
значения средней |
3. |
Использование кроссинговера со |
|
приспособленности от |
|
слабой разрушающей способностью. |
|
поколения к поколению) |
|
|
|
4. Преобладание |
1. |
Изменение стратегии выбора |
|
удовлетворительных |
|
родительских пар для скрещивания. |
|
результатов над хорошими |
2. |
Изменение операторов скрещивания |
|
|
|
и/или мутации. |
|
|
3. |
Распараллеливание поиска. |
|
|
|
Инициализация нескольких |
|
|
|
независимых популяций, которые |
|
|
|
развиваются независимо и, время от |
|
|
|
времени, обмениваются особями. |
|
Рассмотрим пример |
использования ГА для решения задачи мини- |
||
мизации следующей функции (сферическая функция): |
|
||
n |
|
|
|
z = åxi2 ,n = 10, xi [−5,12; 5,11], |
(5.1) |
i=1
z → min .
Параметр n задает количество переменных функции z. Необходи- мо найти такие значения переменных xi , при которых функция z прини-
111
мает наименьшее значение. Будем использовать общую схему решения
(рис. 5.8):
1.Определение неизвестных переменных задачи. По условию
поставленной задачи необходимо найти значения переменных xi, мини- мизирующие значение функции z, поэтому в хромосоме будем кодиро-
вать значения xi. Таким образом, каждый i-й ген хромосомы будет соот- ветствовать i-й переменной функции z.
2.Задание функции приспособленности. Будем определять при-
способленность особи в зависимости от значения, которое принимает функция z при подстановке в нее вектора параметров, соответствующих хромосоме этой особи. Поскольку рассматривается задача минимизации функции z, то будем также считать, что чем меньше значение z, тем
приспособленнее особь. Приспособленность i-й особи fi будем опреде- лять по следующей формуле:
fi = zi ,
где zi – значение функции z в точке, соответствующей i-й особи.
Рис. 5.8. Общая схема решения задачи с использованием ГА
112
3.Выбор способа кодирования. В качестве способа представле-
ния генетической информации рассмотрим целочисленное кодирование
сточностью кодирования параметров 0,01. Тогда в имеющемся по усло- вию задачи диапазоне изменения значений параметров [–5,12; 5,11] можно закодировать (5,12 – (-5,11))/0,01 + 1 = 1024 различных значений переменной. Единица прибавляется, так как значение переменной рав- ное 0 также учитывается.
Для того чтобы представить 1024 различных значений перемен-
ной, достаточно использовать log21024 = 10 бит на каждую переменную. Таким образом, будет использоваться целочисленное кодирование с 10- разрядными генами.
4.Определение параметров ГА. Для решения задачи рассмотрим популяцию из 20 особей. При отборе особей для скрещивания будем использовать турнирную селекцию с бинарным турниром. В качестве генетических операторов будем использовать 1-точечный кроссинговер и битовую мутацию. Вероятности применения операторов скрещивания и мутации установим равными 0,7 и 0,05, соответственно. Новое поколение будем формировать только из особей-потомков, т.е. величина разрыва поколений T равна 1.
Результат работы генетического алгоритма с выбранными пара- метрами представлен на рис. 5.9. Показаны зависимости изменения
среднего <z> и наименьшего zmin в популяции значения функции z от номера поколения t. Данные усреднены по 100 независимым запускам.
По данным рис. 5.9 видно, что после 20-го поколения значение
zmin колеблется в достаточно большом диапазоне. Из этого следует, что потери хороших особей в результате мутации велики, и следует умень-
шить вероятность мутации. Установим значение этого параметра рав- ным L-1 = 0,01, где L – длина хромосомы в битах, в данном случае L = 100. Результаты работы ГА с измененным значением вероятности мута- ции показаны на рис. 5.10.
113
100 |
|
|
|
|
|
90 |
|
|
|
|
|
80 |
|
|
|
|
|
70 |
|
|
|
|
|
60 |
|
|
|
|
|
z |
|
|
|
|
<z>(t) |
50 |
|
|
|
|
|
|
|
|
|
|
|
40 |
|
|
|
|
|
30 |
|
|
|
|
zmin(t) |
|
|
|
|
|
|
20 |
|
|
|
|
|
10 |
20 |
40 |
60 |
80 |
100 |
0 |
|||||
|
|
|
t |
|
|
Рис. 5.9. Изменение zmin(t) и <z>(t). Популяция из 20 особей, |
|||||
бинарный турнирный отбор, одноточечный кроссинговер (РС = 0,7), |
|||||
|
битовая мутация (РМ = 0,05) |
|
|
100 |
|
|
|
|
|
80 |
|
|
|
|
|
60 |
|
|
|
|
|
z |
|
|
|
|
|
40 |
|
|
|
|
|
20 |
|
|
|
|
<z>(t) |
|
|
|
|
|
|
0 |
|
|
|
|
zmin(t) |
|
|
|
|
|
|
0 |
20 |
40 |
60 |
80 |
100 |
|
|
|
t |
|
|
Рис. 5.10. Изменение zmin(t) и <z>(t). Популяция из 20 особей, |
|||||
бинарный турнирный отбор, одноточечный кроссинговер |
|||||
|
(РС = 0,7), битовая мутация (РМ = 0,01) |
|
114
Из сравнения графиков на рис 5.9 и 5.10 следует, что уменьшение вероятности мутации улучшило результат работы ГА. Также отметим, что теперь эволюционный процесс стабилизировался значительно позд- нее, примерно после 60-го поколения. Усредненное по всем запускам минимальное значение функции z, достигнутое за первые 100 поколе- ний, равно ~1,016. Чтобы улучшить результат, увеличим давление се- лекции путем увеличения размера турнира до 4. Результат представлен на рис. 5.11.
Увеличение давления селекции привело к ускорению эволюцион-
ного поиска за счет удаления из популяции особей со средней и плохой приспособленностью. В результате стабилизация наступила после 40-го поколения, а усредненное по всем запускам минимальное полученное значение функции z равно ~0,013. Наименьшее значение функции z дос- тигается в точке xi = 0, i = 1,2,…,10 и равно 0. В случае поиска миниму- ма функции z с точностью 0,01, для ГА с параметрами, соответствую- щими графикам на рис. 5.11, решение было найдено в 69 запусках из 100. При этом в среднем было использовано 1698,68 вычислений целе- вой функции.
100 |
|
|
|
|
|
80 |
|
|
|
|
|
60 |
|
|
|
|
|
z |
|
|
|
|
|
40 |
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
<z>(t) |
0 |
|
|
|
|
zmin(t) |
|
|
|
|
|
|
0 |
20 |
40 |
60 |
80 |
100 |
|
|
|
t |
|
|
Рис. 5.11. Изменение zmin(t) и <z>(t). Популяция из 20 особей, |
|||||
турнирный отбор (t = 4), одноточечный кроссинговер (РС = 0,7), |
|||||
|
битовая мутация (РМ = 0,01) |
|
|
115
Чтобы повысить стабильность результатов, увеличим размер по- |
|||||
пуляции до 50 особей. Полученные кривые zmin(t) и <z>(t) изображены |
|||||
на рис. 5.12. Во всех 100 запусках найден минимум функции z с точно- |
|||||
стью не меньше 0,01. Среднее количество вычислений целевой функ- |
|||||
ции, использованное для нахождения решения, равно 3145,34. |
|||||
100 |
|
|
|
|
|
80 |
|
|
|
|
|
60 |
|
|
|
|
|
z |
|
|
|
|
|
40 |
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
<z>(t) |
0 |
|
|
|
|
zmin(t) |
|
|
|
|
|
|
0 |
20 |
40 |
60 |
80 |
100 |
|
|
|
t |
|
|
Рис. 5.12. Изменение zmin(t) и <z>(t). Популяция из 50 особей, |
|||||
турнирный отбор (t = 4), одноточечный кроссинговер (РС = 0,7), |
|||||
|
битовая мутация (РМ = 0,01) |
|
|
5.7. Общие рекомендации к программной реализации генетического алгоритма
Программную реализацию ГА можно создать, используя как объ- ектно-ориентированный, так и структурный подход. Ниже предлагается
способ реализации различных компонентов генетического алгоритма с использованием обоих подходов (табл. 5.2).
116
Табл. 5.2. Варианты реализации компонентов ГА
Компонент |
|
|
|
|
Объектно- |
|||
генетического |
Структурный подход |
ориентированный |
||||||
алгоритма |
|
|
|
|
|
подход |
|
|
Особь |
Одномерный массив для запи- |
Класс «Особь», со- |
||||||
|
си значений генов. Размер- |
держащий массив ге- |
||||||
|
ность массива совпадает с ко- |
нов |
|
|
|
|
||
|
личеством генов у одной особи |
|
|
|
|
|
||
|
(количество генов равно числу |
|
|
|
|
|
||
|
настраиваемых параметров) |
|
|
|
|
|
||
Популяция |
Двумерный массив, в котором |
Отдельный |
класс |
|||||
|
i-я строка содержит гены i-й |
«Популяция», содер- |
||||||
|
особи |
|
|
жащий |
одномерный |
|||
|
|
|
|
массив |
|
объектов |
||
|
|
|
|
класса, |
|
представ- |
||
|
|
|
|
ляющего особь |
|
|||
|
|
|
|
|||||
Оценивание |
Подпрограмма оценки |
строк |
Метод управляющего |
|||||
популяции |
массива популяции в соответ- |
класса, |
оценивающий |
|||||
|
ствии с |
выбранной целевой |
популяцию в соответ- |
|||||
|
функцией |
|
|
ствии |
с |
выбранной |
||
|
|
|
|
целевой функцией |
||||
Приспособлен- |
Одномерный массив, в кото- |
Одномерный |
массив |
|||||
ность популя- |
ром i-й элемент соответствует |
со значениями оши- |
||||||
ции |
приспособленности i-й особи |
бок особей, входящий |
||||||
|
|
|
|
в управляющий класс |
||||
Особи, вы- |
Двумерный массив, |
строки |
Объект класса «По- |
|||||
бранные для |
которого |
соответствуют хро- |
пуляция», |
содержа- |
||||
скрещивания |
мосомам |
особей, выбранным |
щий |
объекты |
класса |
|||
|
для скрещивания |
|
«Особь», соответст- |
|||||
|
|
|
|
вующие |
выбранным |
|||
|
|
|
|
особям |
|
|
|
|
Реализация |
Подпрограммы, обрабатываю- |
Методы управляюще- |
||||||
скрещивания, |
щие элементы массива, пред- |
го класса, работаю- |
||||||
мутации, фор- |
ставляющего популяцию осо- |
щие |
с основной по- |
|||||
мирования но- |
бей, а также популяцию осо- |
пуляцией |
и популя- |
|||||
вого поколе- |
бей, выбранных для скрещи- |
цией |
|
особей |
для |
|||
ния |
вания |
|
|
скрещивания |
|
117
Приведенный в табл. 5.2 способ реализации генетического алго- ритма не является эталонным и, вполне возможно, далек от идеала. Данные в табл. 5.2 могут служить в качестве «опорных» для конкретной реализации генетического алгоритма. Отметим, что бóльшую гибкость и расширяемость программной реализации не только генетического ал- горитма, но и любого другого алгоритма и системы вообще можно дос- тичь, используя компонентно-ориентированный подход и паттерны проектирования [35].
5.8.Задания для лабораторных работ
1.Аппроксимировать набор точек линейной функцией:
y(x) = a × x + b .
Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.
2. Аппроксимировать набор точек экспоненциальной функцией: y(x) = a × exp(b × x) .
Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.
3. Найти минимум функции:
y(x) = x2 + 4.
Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.
4. Найти максимум функции:
y(x) = 1x ; x [– 4; 0).
Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.
5. Найти точку перегиба функции:
f(х) = (x–1.5)3 + 3.
Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.
6. Найти точку пересечения функции с осью Ох. f(х) = ln (x+1) – 2,25, x > –1.
Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.
7.Сгенерировать с помощью генетического алгоритма слово
“МИР”.
8.Найти с помощью генетического алгоритма особь, гены которой соответствуют, в формате RGB, фиолетовому цвету (96, 96, 159).
118
Глава 6 ИСКУССТВЕННЫЕ НЕЙРОННЫЕ СЕТИ
Вданной главе описываются искусственные нейронные сети (ИНС) – современное средство решения задач классификации, аппроксимации и кластеризации. Глава организована следующим образом. Раздел 6.1 дает краткое представление об устройстве биологических нейронных сетей.
Вразделе 6.2. представлен формальный нейрон – основная структурная единица искусственных нейронных сетей. Понятие искусственной ней-
ронной сети и описание основных архитектур представлены в разде- ле 6.3. Раздел 6.4 описывает обучение ИНС в общем виде, а в разделе 6.5 изложен алгоритм обратного распространения ошибки и одна из его модификаций. В разделе 6.6 представлены общие принципы функцио- нирования ИНС прямого распространения и дается общее представле- ние об ИНС с радиально-базисными функциями активации. Пример ра- боты ИНС и описание одного шага обучения даны в разделе 6.7. В раз- деле 6.8 представлены краткие рекомендации к программной реализа- ции нейронных сетей для выполнения лабораторных работ. Задания на лабораторные работы приведены в разделе 6.9.
6.1. Биологические нейронные сети
Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию, первоначально поступающую от органов чувств. Она состоит из тела клетки и двух типов внешних дре- воподобных ветвей: аксона и дендритов. Нейрон выполняет прием, пре- образование и дальнейшую передачу информации другим нейронам. Информация переносится в виде импульсов нервной активности, имеющих электрохимическую природу [19].
Нейрон получает сигналы от других нейронов через дендриты и передает сигналы, генерированные телом клетки, вдоль аксона (играю- щего роль передатчика), который разветвляется на волокна. На оконча- ниях этих волокон находятся синапсы. Синапс является функциональ- ным узлом между двумя нейронами. Он представляет собой волокно ак- сона одного нейрона и дендрит другого. Синапсы способны обучаться в процессе передачи через них сигналов за счет изменения своих характе- ристик.
Кора головного мозга человека является протяженной, образован- ной нейронами в слое толщиной 2–3 мм с площадью около 2200 см2
119
(что вдвое превышает площадь поверхности стандартной клавиатуры). Приблизительно 1011 нейронов коры головного мозга участвуют в 1014 −1015 передающих связях, протяженность которых достигает ве-
личины до одного метра и более. Каждый нейрон связан с 103 −104 дру- гими нейронами. Существует гипотеза, что степень умственного разви- тия человека определяется не только числом нейронов, но главным об- разом количеством связей между ними.
Нейроны взаимодействуют посредством короткой серии импуль- сов, как правило, продолжительностью несколько миллисекунд (мс). Для передачи сообщения применяется частотно-импульсная модуляция. Частота может изменяться от нескольких единиц до сотен герц, что в десятки миллионов раз медленнее, чем быстродействующие переключа- тельные электронные схемы. Но такую сложную для компьютера зада- чу, как распознавание лица, человек решает за несколько сотен мс. По- скольку скорость выполнения операций нейронами составляет несколь- ко мс, то можно сделать вывод, что вычисления требуют не более 100 последовательных стадий. Для решения сложных задач мозг “запуска- ет” программы, содержащие около 100 шагов. Оценки показывают, что количество информации, передаваемое от одного нейрона к другому, должно быть маленьким (несколько бит). По-видимому, основная ин- формация не передается непосредственно, а захватывается и распреде- ляется в связях между нейронами.
6.2. Формальный нейрон
Искусственные нейронные сети появились в результате примене-
ния математического аппарата к исследованию функционирования нервной системы [18]. Полученные при этом результаты успешно при- меняются при решении проблем распознавания образов, моделирова- ния, прогнозирования, оптимизации и управления [18, 38].
Основной структурной и функциональной частью нейронной сети
является |
формальный нейрон (formal neuron), представленный на |
|
рис. 6.1, |
где x0 , x1,..., xn – компоненты вектора входных |
сигналов, |
w0 , w1,...,wn – значения весов входных сигналов нейрона, а |
y – выход- |
ной сигнал нейрона.
Формальный нейрон состоит из элементов 3 типов: умножителей (синапсов), сумматора и преобразователя. Синапс характеризует силу (вес) связи между двумя нейронами. Сумматор выполняет сложение входных сигналов, предварительно помноженных на соответствующие веса. Преобразователь реализует функцию одного аргумента – выхода
120