Применение генетических алгоритмов для обучения нейронной сети

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Джанунц, Г.А. Компьютерный метод кусочно-полиномиального приближения решений обыкновенных дифференциальных уравнений в применении к моделированию автоколебательных реакций: дис. ... канд. техн. наук / Г.А. Джанунц. - Таганрог: Изд-во ТТИ ЮФУ, 2012. - 223 с.

2. Колесников, А.А. Прикладная синергетика: основы системного синтеза / А.А. Колесников. - Таганрог: Изд-во ТТИ ЮФУ, 2007. - 384 с.

3. Колесников, А.А. Сравнительный анализ устойчивости движения Меркурия на основе классического и синергетического законов тяготения / А.А. Колесников, Я.Е. Ромм, С.Г. Буланов // Системный синтез и прикладная синергетика: мат-лы Четвертой Международ. науч. конф. - Таганрог: Изд-во ТТИ ЮФУ, 2011. - С. 40-51.

4. Ромм, Я.Е. Моделирование устойчивости по Ляпунову на основе преобразований разностных схем решений обыкновенных дифференциальных уравнений // Известия РАН. Математическое моделирование. -2008. - Т. 20. - № 12. - С. 105-118.

5. Ромм, Я.Е. Компьютерный метод варьируемой кусочно-полиномиальной аппроксимации функций и решений обыкновенных дифференциальных уравнений / Я.Е. Ромм, Г.А. Джанунц // Кибернетика и системный анализ. - 2013. - № 3. - С. 95-112.

УДК 517.91: 518.1 ББК 81.11

Т.Г. Каплунов

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ДЛЯ ОБУЧЕНИЯ НЕЙРОННОЙ СЕТИ

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

Ключевые слова: генетические алгоритмы, нейронные сети, задача оптимизации, распознавание образов.

T.G. Kaplunov

APPLICATION OF GENETIC ALGORITHMS FOR NEURAL NETWORK TRAINING

Abstract. This article discussed in detail an example of the construction of a genetic algorithm. Just an example of using this algorithm for training neural networks. The variants of the classical scheme of conversion algorithm for solving the problem of learning neural networks.

Key words: genetic algorithms, neural networks, optimization task, image recognition.

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

Рассмотрим некоторую задачу. Пусть дан вектор X с размерностью 256. Данный вектор представляет собой некоторое закодированное изображение распознаваемого символа. Дан вектор Y, с размерностью 10, который отражает эталонный результат распознавания. Тогда необходимо найти весовую матрицу W такую, чтобы:

X *W = Y.

Элементы матрицы W представляют собой числа в интервале [0,1]. При этом следует из условия что матрица имеет размерность 10 строк и 256 столбцов. Количество столбцов определяет размер места отводимого под каждый символов.

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

Рис. 1. Преобразование матрицы весов Ж в вектор весов V-„

Классический генетический алгоритм состоит из следующих этапов:

1. ИНИЦИАЛИЗАЦИЯ.

2. ОЦЕНКА ПРИСПОСОБЛЕННОСТИ.

3. СЕЛЕКЦИЯ.

4. СКРЕЩЕВАНИЕ.

5. МУТАЦИЯ.

6. ФОРМИРОВАНИЕ НОВОЙ ПОПУЛЯЦИИ.

На первом этапе генетический алгоритм генерирует начальную популяцию. В качестве такой популяции выбирается N векторов из пространства Дп. Каждому гену любой хромосомы присваивается случайное значение из интервала допустимых значений. Соответственно, при настройке весовой матрицы W каждый ген получит генетическую информацию в виде случайного значения в отрезке [0; 1].При этом распределение исходной популяции выбирается исходя из требований поставленной задачи. Обычно используется выборка из n-мерного равномерного распределения, с заданной дисперсией и математическим ожиданием.

После формирования производится сравнение целевой функции для него. В новую популяцию переносится та особь, у которой целевая функция достигает меньшего значения (речь идет о задаче минимизации). Здесь необходимо заметить, что описанное правило отбора гарантирует неизменность размера популяции в процессе работы алгоритма. Иными словами необходимо привести матрицу W к такому виду, при котором ошибка распознавания эталонного образа будет минимальной. Таким образом, функция пригодности будет оценивать ошибку распознавания каждого образа, и чем меньше данная ошибка тем выше значение пригодности. Следовательно, необходимо сравнивать получаемый вектор Y' с эталонным образцом Y.

Этап селекции предусматривает выбор тех особей, генетический материал которых будет участвовать в формировании следующей популяции решений, т.е. в создании очередного поколения. Алгоритм использует метод селекции, называемый метод рулетки. Идея этого метода состоит в том, что особи отбираются при помощи N запусков рулетки, где N это количество особей в популяции. Колесо рулетки содержит по одному сектору для каждой особи популяции. Размер ьго сектора пропорционален вероятности попадания особи в новую популяцию P(i), вычисляется по формуле:

по =

ЯР

где i - пригодность ьй особи. Ожидаемое число копий ьой хромосомы после оператора рулетки определяется по формуле Л^ = P(i)N.

При таком отборе члены популяции с более высоким значением функции пригодности будут выбираться чаще, чем особи с низкими значениями (табл. 1) [2].

Таблица 1

Популяция из 5 особей Пригодность Вероятность выбора

Сх 52 52/200=0.26

С2 85 85/200=0.425

Сз 37 37/200=0.185

С4 3 3/200=0.015

С5 23 23/200=0.115

На очередном шаге алгоритма производится скрещивание каждой особи X из исходной популяции со случайно выбранной особью С, отличной от X. Координаты векторов X и С рассматриваются как генетические признаки. Скрещивание производится путем задания вероятности Р, с которой потомок Т наследует измененный мутацией ген от родителя С, соответствующий признак от не измененного родителя Х наследуется с вероятностью 1-Р. Фактически п раз разыгрывается бинарная случайная величина с математическим ожиданием Р, и для единичных ее значений производится наследование (перенос) искаженного генетического признака от родителя С (т.е. соответствующей координаты вектора С'), а для нулевых значений - наследование генетического признака от родителя X. В результате формируется вектор-потомок Т.

Скрещивание работает по следующему принципу. Сперва случайным образом выделяется точка разрыва. Оба родителя в этой точке разделяются на два сегмента. Затем происходит обмен сегментами и на выходе получаем две новых особи-потомка.

На рис. 2 изображен процесс получения новых особей с использованием упорядоченного кроссинговера. Имеются две родительские хромосомы: Vw1 и Vw2. Генетическим материалом являются вещественные числа от 0 до 1. Упорядоченный кроссинговер работает следующим образом. Изначально случайным образом определяется «разрезающая точка». На следующем этапе первый потомок New_Vw1 наследует левую часть родительской хромосомы Vw1. Заполнение оставшихся генов новой хромосомы осуществляется за счет информации, хранящейся у второго родителя Vw2. Алгоритм просматривает хромосому Vw2 с самого начала и осуществляет извлечение генов, которые отличаются от генов, уже находящихся в потомке, более чем на величину е = 0,02. Малая величина е задается в алгоритме для определения «родства» генов. С каждым последующим шагом, а в особенности на завершающих этапах алгоритма, имеет смысл уменьшать значение этой величины для достижения более точных результатов. Аналогичная процедура выполняется при получении второго потомка New_Vw2. Второй потомок New_Vw2 наследует левую часть родительской хромосомы Vw2. Заполнение оставшихся генов получаемой хромосомы осуществляется за счет информации, находящейся у второго родителя Vw1.

Рис. 2. Принцип работы упорядоченного кроссинговера

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

Оператор мутации - языковая конструкция, позволяющая на основе преобразования родительской хромосомы создавать хромосому потомка.

Обычно этот оператор заключает в себе 2 этапа:

1. В хромосоме А — (^1,  , &м—2, м—1, случайным образом две позиции. (например ам_2иа2).

2. Гены соответствующие выбранным меняют местами А — (а1,ам_2,аз,  , а2>ам-1> ам). Таким образом получается новая матировавшая хромосома.

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

Часто используют операторы мутации, которые имеют знания о решаемой задаче. Реализация таких методов заключается в перестановке местами любых генов в хромосоме, но точки мутации выбираются не случайно, а направленно.

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

В алгоритме представлен пример функции, которая отвечает за мутацию особей:

с; — с^.ц.-вд

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

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

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

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

Критерий остановки работы алгоритма напрямую зависит от решаемой задачи. В большинстве оптимизационных задач, для которых известно оптимальное значение функции пригодности, остановку алгоритма можно организовать при достижении наилучшей особью этой величины, возможно с некоторой погрешностью [2]. Но данная задача не располагает сведениями о оптимуме функции пригодности. Поэтому в данном алгоритме целесообразно применить механизм, основанный на отсутствии изменений функции пригодности наилучшей особи за определенное число итераций. Так же целесообразно задать остановку работы алгоритма по достижении определенного числа итераций. Если выполнено условие остановки, алгоритм выдает оптимальное решение, представленное наилучшей особью, которая будет передана нейронной сети в качестве первоначальной матрицы весовых коэффициентов W.

Таким образом, в результате работы генетического алгоритма получен набор весовых коэффициентов, обеспечивающих корректную работу нейронной сети. Также стоит отметить тот факт, что использование специального оператора мутации позволило сократить время обучения сети. Для обучения было выбрано обучающее множество из 180 элементов. Время обучения на этом множестве с помощью описанного генетического алгоритма с использованием мутации на основе приращения, нечеткой сети Ванга-Менделя составило 2 мин. 50 сек., обучение с использованием алгоритма с применением классического многоточечного оператора мутации длилось 3 мин. 10 сек., а применение гибридного оператора мутации позволило сократить время обучения

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Осовский, С. Нейронные сети для обработки информации: пер. с польск. И.Д. Рудинского / С. Осовский. -М.: Финансы и статистика, 2002. - 344 с.

2. Панченко, Т.В. Генетические алгоритмы: учебно-метод. пособие / Т.В. Панченко; под ред. Ю.Ю. Тарасе-вича. - Астрахань, 2007.

УДК 519.613 ББК 22.193

С.А. Катрич

ВЫЧИСЛИТЕЛЬНЫЕ ОСОБЕННОСТИ МИНИМИЗАЦИИ ПОГРЕШНОСТИ АППРОКСИМАЦИЙ ФУНКЦИЙ ПО ЧЕБЫШЕВСКИМ УЗЛАМ ИНТЕРПОЛЯЦИИ

Аннотация. Рассматриваются интерполяционные полиномы Чебышева и вопросы использования их корней в качестве узлов интерполяции с целью минимизации погрешности интерполирования, с этой целью строится полином Лагранжа. Приводятся результаты численных экспериментов в системе MathCAD по интерполированию по чебышевским узлам.

Ключевые слова: интерполяция, полиномы Чебышева, Лагранжа, чебышевская система узлов интерполяции, численные эксперименты.

S.A. Katrich

COMPUTING FEATURES OF MINIMIZATION OF THE ERROR IN THE APPROXIMATION OF FUNCTIONS ON CHEBYSHEV INTERPOLATION UNITS

Abstract. Chebyshev interpolation polynomials and the use of their roots as the interpolation units in order to minimize the error of interpolation are considered, for this purpose Lagrange polynomial is built. The results of numerical experiments in MathCAD for interpolation on Chebyshev units are given.

Key words: interpolation, Chebyshev, Lagrange polynomials, Chebyshev system of interpolation units, numerical experiments.

Постановка вопроса. Ставится задача исследовать погрешность интерполяции достаточно гладких функций полиномом Лагранжа, построенным по корням полиномов Чебышева. С целью моделирования поведения погрешности полином Лагранжа строится по чебышевской системе узлов и близкой к ней системе узлов интерполяции. В качестве вычислительной среды используется система MathCAD, обсуждаются возможности использования для этих целей Delphi. Полученные результаты численных экспериментов анализируются исходя из того, что погрешность интерполирования достаточно гладкой функции на отрезке [ —1,1 ] многочленом n -ой степени будет минимальной, когда в качестве узлов интерполяции берутся корни полиномов Чебышева.

Интерполяционные полиномы Чебышева и их свойства. Как известно, полиномом Чебышева называется функция [4]

Tn

где n e N0, x e[—1, l]. Очевидно, при n = 0 и n = Соответственно получается T0 (x) = 1, T1(x) = x . Последовательность функций Tn (x), начинающихся с T0 (x) = 1, ?1(x) = x, рекуррентно определяется соотношением [4]

Tn+ 1(x) = 2 • x • Tn (x)— Tn—1(x) ,

где x e [— 1,1], как и в (1), n = 1,2,3,....

В частности, некоторые полиномы Чебышева имеют вид [4]:

T9 (x )= 256 • x9 — 576 • x7 + 432 • x5 —120 • x3 + 9 • x, T10 (x)= 512 • x10 —1280 • x8 +1120 • x6 — 400 • x4 + 50 • x2 — 1

и