Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИС_метода

.pdf
Скачиваний:
25
Добавлен:
29.05.2015
Размер:
1.63 Mб
Скачать

Из сравнения графиков на рис 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)

 

 

131

Чтобы повысить стабильность результатов, увеличим размер по-

пуляции до 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).

132

Табл. 5.2. Варианты реализации компонентов ГА

Компонент

 

 

 

 

Объектно-

генетического

Структурный подход

ориентированный

алгоритма

 

 

 

 

 

подход

 

Особь

Одномерный массив для запи-

Класс «Особь», со-

 

си значений генов. Размер-

держащий массив ге-

 

ность массива совпадает с ко-

нов

 

 

 

 

 

личеством генов у одной особи

 

 

 

 

 

 

(количество генов равно числу

 

 

 

 

 

 

настраиваемых параметров)

 

 

 

 

 

Популяция

Двумерный массив, в котором

Отдельный

класс

 

i-я строка содержит гены i

«Популяция», содер-

 

особи

 

 

жащий

одномерный

 

 

 

 

массив

 

объектов

 

 

 

 

класса,

 

представ-

 

 

 

 

ляющего особь

 

 

 

 

 

Оценивание

Подпрограмма оценки

строк

Метод управляющего

популяции

массива популяции в соответ-

класса,

оценивающий

 

ствии с

выбранной целевой

популяцию в соответ-

 

функцией

 

 

ствии

с

выбранной

 

 

 

 

целевой функцией

Приспособлен-

Одномерный массив, в кото-

Одномерный

массив

ность популя-

ром i-й элемент соответствует

со значениями оши-

ции

приспособленности i-й особи

бок особей, входящий

 

 

 

 

в управляющий класс

Особи, вы-

Двумерный массив,

строки

Объект класса «По-

бранные для

которого

соответствуют хро-

пуляция»,

содержа-

скрещивания

мосомам

особей, выбранным

щий

объекты

класса

 

для скрещивания

 

«Особь», соответст-

 

 

 

 

вующие

выбранным

 

 

 

 

особям

 

 

 

Реализация

Подпрограммы, обрабатываю-

Методы управляюще-

скрещивания,

щие элементы массива, пред-

го класса, работаю-

мутации, фор-

ставляющего популяцию осо-

щие

с основной по-

мирования но-

бей, а также популяцию осо-

пуляцией

и популя-

вого поколе-

бей, выбранных для скрещи-

цией

 

особей

для

ния

вания

 

 

скрещивания

 

133

Приведенный в табл. 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).

134

Глава 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

135

(что вдвое превышает площадь поверхности стандартной клавиатуры). Приблизительно 1011 нейронов коры головного мозга участвуют в 1014 1015 передающих связях, протяженность которых достигает ве-

личины до одного метра и более. Каждый нейрон связан с 103 104 другими нейронами. Существует гипотеза, что степень умственного развития человека определяется не только числом нейронов, но главным образом количеством связей между ними.

Нейроны взаимодействуют посредством короткой серии импульсов, как правило, продолжительностью несколько миллисекунд (мс). Для передачи сообщения применяется частотно-импульсная модуляция. Частота может изменяться от нескольких единиц до сотен герц, что в десятки миллионов раз медленнее, чем быстродействующие переключательные электронные схемы. Но такую сложную для компьютера задачу, как распознавание лица, человек решает за несколько сотен мс. Поскольку скорость выполнения операций нейронами составляет несколько мс, то можно сделать вывод, что вычисления требуют не более 100 последовательных стадий. Для решения сложных задач мозг “запускает” программы, содержащие около 100 шагов. Оценки показывают, что количество информации, передаваемое от одного нейрона к другому, должно быть маленьким (несколько бит). По-видимому, основная информация не передается непосредственно, а захватывается и распределяется в связях между нейронами.

6.2. Формальный нейрон

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

Основной структурной и функциональной частью нейронной сети

является

формальный нейрон (formal neuron), представленный на

рис. 6.1,

где

x0 , x1,..., xn – компоненты вектора входных

сигналов,

w0 , w1,..., wn

значения весов входных сигналов нейрона, а

y – выход-

ной сигнал нейрона.

Формальный нейрон состоит из элементов 3 типов: умножителей (синапсов), сумматора и преобразователя. Синапс характеризует силу (вес) связи между двумя нейронами. Сумматор выполняет сложение входных сигналов, предварительно помноженных на соответствующие веса. Преобразователь реализует функцию одного аргумента – выхода

136

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

x0 w0

x1 ...w1

xn wn

y = f (S),

n

S= wi xi +b.

i=1

S

 

y

f

xi wi

 

i

 

 

 

 

ПреобраСумматор зователь

Рис. 6.1. Формальный нейрон (по [39])

Примеры некоторых активационных функций представлены в табл. 6.1 и на рис. 6.2.

Табл. 6.1. Функции активации нейронов

Название

Формула

Область зна-

 

 

 

 

 

чений

Пороговая

0,S < Θ

(0, 1)

f (S) =

 

 

 

1,S ≥ Θ

 

Линейная

f (S ) = aS

(– ∞, + ∞)

Лог-сигмоидная

f (S) =

 

1

 

(0, 1)

 

 

 

 

1+ eaS

 

Гиперболический

eaS

eaS

 

тангенс

f (S) = eaS

+ eaS

(–1, 1)

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

зывают нейроподобными элементами или формальными нейронами1.

1 Для этого в англоязычной литературе для обозначения нейрона в ИНС часто используют термин «node» – узел, вершина.

137

6.3 Нейронные сети

Описанные в п. 6.1 формальные нейроны можно объединять таким образом, что выходные сигналы одних нейронов являются входными для других. Полученное множество связанных между собой нейро-

нов называют искусственными нейронными сетями (artificial neural networks, ANN) или, коротко, нейронными сетями.

Рис. 6.2. Примеры активационных функций: а) пороговая; б) линейная; в) лог-сигмоидная; г) гиперболический тангенс

Пример нейронной сети с тремя входами и одним выходом представлен на рис. 6.3, нейроны обозначены кружками, стрелками показано направление распространения сигналов, веса межнейронных связей указаны рядом с соответствующими связями.

0 1,04

1

0,23 4 -1,5

3

4,79

2 -0,08

Рис. 6.3. Пример нейронной сети

Различают следующие три общих типа нейронов, в зависимости от их положения в нейронной сети:

входные нейроны (input nodes), на которые подаются вход-

138

ные для все сети сигналы. Такие нейроны нейроны имеют, как правило, один вход с единичным весом, смещение отсутствует, а значение выхода нейрона равно входному сигналу (нейроны

синдексами 0-2 на рис. 6.3);

выходные нейроны (output nodes), выходные значения которых представляют результирующие выходные сигналы нейронной сети (нейрон с индексом 3 на рис. 6.3);

скрытые нейроны (hidden nodes), не имеющие прямых связей

свходными сигналами, при этом значения выходных сигналов скрытых нейронов не являются выходными сигналами ИНС (нейрон с индексом 4 на рис. 6.3).

Отметим, что структуру ИНС можно рассматривать как ориентированный граф, в котором узлы соответствуют нейронам, а ребра – межнейронным связям.

По структуре межнейронных связей различают два класса ИНС:

1.ИНС прямого распространения (feed-forward ANNs), в кото-

рых сигнал распространяется только от входных нейронов к выходным. Орграф, соответствующий таким ИНС, не имеет циклов и петель. Примером ИНС прямого распространения является ИНС на рис. 6.3 и 6.4а.

2.Рекуррентные ИНС (recurrent ANNs) – ИНС с обратными связями. В таких ИНС сигналы могут передаваться между любыми нейронами, вне зависимости от их расположения в ИНС. Орграф, соответствующий структуре рекуррентных ИНС, может иметь петли и циклы

(рис. 6.4б).

a)

б)

Рис. 6.4. Примеры структур нейронных сетей:

а) ИНС прямого распространения: б) рекуррентная ИНС

Среди различных структур ИНС наиболее известны многослойные ИНС (multi-layered ANNs) (рис. 6.5). Рассмотрим такие ИНС более подробно.

В многослойных сетях нейроны объединяются в слои таким обра-

139

зом, что нейроны одного слоя имеют одинаковые входные сигналы. Число нейронов в слое может быть произвольным и зависит в большей степени от решаемой задачи, чем от количества нейронов в других слоях. Внешние (входные) сигналы подаются на нейроны входного слоя (его часто нумеруют как нулевой), а выходами сети являются выходные сигналы нейронов последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети может быть один или несколько скрытых слоев. Выходные сигналы нейронов слоя (q) являются входными сигналами следующего слоя (q+1). Одной из основных характеристик многослойных нейронных сетей является число слоев. В дальнейшем для описания структуры многослойных ИНС будем использовать количество присутствующих в ней скрытых слоев.

По структуре многослойные ИНС могут представлять как ИНС прямого распространения (рис. 6.4а и 6.5), так и рекуррентные (рис. 6.4б). Отметим также, что возможны многослойные сети, в которых существуют прямые связи между нейронами из несмежных слоев. Такие связи называют перекрестными. В данном пособии будут рассматриваться только многослойные нейронные сети без перекрестных и обратных связей.

Входной

Скрытый

Выходной

слой

слой

слой

Входные сигналы

.

.

.

.

.

.

.

.

.

Выходные сигналы

Рис. 6.5. Многослойная ИНС прямого распространения

Рис. 6.6. Многослойная ИНС с перекрестной связью

140