Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_17.05..docx
Скачиваний:
7
Добавлен:
04.05.2019
Размер:
3.08 Mб
Скачать

1.1.4 Методы и средства решения поставленной задачи

1.1.4.1 Методы решения задачи и варианты использования разрабатываемого программного обеспечения

Можно выделить следующие основные функции разрабатываемой подсистемы:

  • задать параметры генетического алгоритма;

  • запустить генетический алгоритм;

  • сохранить топологию в файл;

Таблица 1.3 - Характеристика аналогичных программных средств настройки нейронной сети

Название ПО

Интерфейс

Алгоритм

Метод кодирования

Настройка

Особенности

JavaSANE

SANE-C

Библиотека

SANE

Прямой

Параметры и структуру сети

Открытый исходный код,

длительное время работы алгоритма.

ESP C++

ESP JAVA 1.1

Библиотека

ESP

Прямой

Параметры сети

Открытый исходный код, является развитием алгоритма SANE, но работает быстрее.

NEAT C++ NEAT: ANJI

Библиотека

NEAT

Прямой

Параметры и структуру сети

Открытый исходный код, более эффективный алгоритм, чем предыдущие.

SharpNEAT

Удобный графический интерфейс

NEAT

HyperNEAT

Прямой

Косвенный

Параметры и структуру

Параметры сети

Открытый исходный код, реализовано решение 2 задач для экспериментов с настройкой сети.

JNEAT

Графический интерфейс

NEAT

Прямой

Параметры и структуру

Открытый исходный код, есть 2 задачи для проведения экспериментов.

NEAT Delphi

Графический интерфейс

NEAT

Прямой

Параметры и структуру

Открытый исходный код, есть 6 задач для проведения экспериментов.

NEAT Matlab

Графический интерфейс

NEAT

Прямой

Параметры и структуру

Открытый код, одна задача для экспериментов.

Система выращивания топологии нейронной сети

Графический интерфейс

Основан на правилах

Косвенный

Топологию нейронной сети

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

  • загрузить топологию из файла;

  • посмотреть информацию о топологии;

  • посмотреть информацию о текущей итерации.

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

Перед работой генетического алгоритма необходимо задать его параметры. Это действие отражает вариант использования «Задать параметры ГА», объединяющий 7 прецедентов: «Задать размер популяции», «Задать количество вершин», «Задать длину хромосомы», «Задать коэффициент мутации», «Задать коэффициент скрещивания», «Задать коэффициент селекции», «Задать фитнесс-функцию».

Запуск генетического алгоритма (прецедент «Запустить ГА») включает в себя следующие этапы: задание начальной популяции (прецедент «Создать популяцию»), мутация (прецедент «Выполнить мутацию»), скрещивание (прецедент «Выполнить скрещивание»), вычисление фитнесс-функции (прецедент «Посчитать фитнесс-функцию») и селекция (прецедент «Выполнить селекцию»).

Также на данной диаграмме изображены варианты использования «Загрузить топологию из файла» (отображение существующей топологии), «Посмотреть информацию о топологии» (просмотр данных о количестве вершин, количестве вершин конкретной степени, количестве граней и количестве граней конкретной степени), «Посмотреть информацию о текущей итерации» (просмотр данных о времени и номере итерации, значении фитнесс-фенкции, длине хромосомы и количестве активных генов), «Сохранить топологию в файл» (сохранение полученных результатов с возможностью их дальнейшего использования).

Рисунок 1.5 – Диаграмма прецедентов

Главной целью дипломного проекта является реализация генетического алгоритма для выращивания топологии нейронной сети. Применение генетических алгоритмов для настройки параметров искусственных нейронных сетей получило название нейроэволюции или нейроэволюционных методов.

Центральной точкой любого метода эволюционного построения нейронных сетей является выбор схемы кодирования и соответствующего декодирования. Схема представления определяет класс сетей, которые могут быть построены с помощью данного метода. Кроме того, от них зависит эффективность метода по всем параметрам.

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

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

Примером набора правил, для некоторого графа может служить такой список:

  1. «если узел находится в состоянии А, то создать связанный узел в состоянии В»;

  2. «если узел находиться в состоянии В, и количество связей меньше двух, то создать связанный узел в состоянии В»;

  3. «если узел находится в состоянии В и предыдущее состояние было B, то перейти в состояние С».

Над графом можно проводить различные операции, например:

    • переход узла в состояние X;

    • рождение нового узла, связанного с текущим;

    • соединение узла с ближайшим не соединённым узлом, находящимся в состоянии X;

    • отсоединение узла, находящегося в состоянии X.

Условиями для совершения операций будут являться текущее состояния узла и количеством связей между этим узлом и другими узлами, а также число родителей.

Общий вид правила имеет вид:

[Текущее состояние узла][Предыдущее состояние узла][Количество связей больше чем][Количество связей меньше чем][Количество родителей больше чем] [Количество родителей меньше чем][Операция][Операнд].

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

В нашем случае в качестве гена будет выступать одно правило. Общий вид гена приведен на рисунке 1.6.

Рисунок 1.6 – Общий вид гена

Приведем конкретный пример гена на рисунке 1.7.

Рисунок 1.7 – Ген

Этому гену соответствует следующее правило: «Если текущее состояние узла В, а предыдущее А, количество связей в пределах от 3 до 5, а количество родителей больше 1, но меньше 3, то к этому узлу добавить новый узел в состоянии С».

А хромосома соответственно будет представлять собой набор правил, по которым впоследствии будет построена топология нейронной сети. Пример хромосомы представлен на рисунке 1.8.

Рисунок 1.8 – Пример хромосомы

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

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

Планарный граф — граф, который может быть изображен на плоскости без пересечения ребер. Или более строго: граф укладывается на некоторой поверхности, если его можно на ней нарисовать без пересечения ребер. Уложенный граф называется геометрическим, его вершины это точки плоскости, а ребра линии на ней, области, на которые граф разбивает поверхность называются гранями. Плоский граф — граф, уложенный на плоскость. Граф называется планарным, если он изоморфен некоторому плоскому графу [32].

Критерий непланарности:

  • достаточное условие — если граф содержит двудольный подграф K3,3 или полный подграф K5, то он является не планарным;

  • необходимое условие — если граф не планарный, то он должен содержать больше 4 вершин, степень которых больше 3, или больше 5 вершин степени больше 2.

Т акже для определиния планарности графа можно использовать теорему Понтрягина-Куратовского: граф планарен тогда и только тогда, когда не содержит подграфов, гомеоморфных K5 или K3,3 [33]. Граф К5 изображен на рисунке 1.9, граф К3,3 на рисунке 1.10.

Рисунок 1.9 – Полный граф с 5 вершинами

Рисунок 1.10 – Граф К3,3