Круглов В.В., Борисов В.В. - Искусственные нейронные сети (ИНС) Теория и практика (778918), страница 23
Текст из файла (страница 23)
которые закодированы в генотипе, могут представ- пять собой команды какой-либо виртуальной машины. В таком случае можно говорить об эволюционном или генетическом программировании. В простейшем случае, можно ничего не менять в генетическом алгоритме. Однако в таком случае, длина получаемой последовательности действий (программы) получается не отличающейся от той (или тех), которая является «затравкой» на этапе инициализации. Современные алгоритмы генетического программирования функционируют в системах с переменной длиной генотипа. 3.6.3. Обучение нечетких нейронных сетей на основе генетических алгоритмов Одной из наиболее востребованных областей применения генетических алгоритмов являются задачи обучения нейронных сетей, в том числе и нечетких, путем подбора адекватных параметров. Общими этапами такого обучения являются следующие: ШАГ 1.
Выделение управляющих параметров задачи обучения. ШАГ 2 Получение решения при фиксированных значениях параметров ШАГ 3. Определение рассогласованности полученного и требуемого решений. ШАГ 4 Выбор новых значений параметров на основе работы генетического алгоритма ШАГ 5 Останов в случае получения удовлетворительной рассогласованности решения, иначе — переход к шагу 2. В качестве управляющих параметров обучения нечетких нейронных сетей, влияющих на качество решения, могут быть выбраны параметры функций принадлежности (см. разд, 3.4,2), а также различная формализация логических правил 140 3.6.4. Особенности генетических алгоритмов Генетические алгоритмы — не единственный способ решения задач оптимизации. Кроме него существуют два основных подхода для решения таких задач — переборный и локально-градиентный, каждый из которых имеет свои достоинства и недостатки Сравним стандартные подходы с генетическими алгоритмами на примере задачи коммивояжера (ТЗР— Тгачейпй За)евгпап ргоЫегп), суть которой состоит в нахождении кратчайшего замкнутого пути обхода городов, заданных своими координатами.
Уже для 30 городов поиск оптимального пути представляет собой сложную задачу, побудившую развитие новых методов (в том числе нейронных сетей и генетических алгоритмов). Каждый вариант решения (для 30 городов) — это числовая строка, где на !'-м месте стоит номер)-го по порядку обхода города. Таким образом, в этой задаче 30 параметров, причем, не все комбинации значений допустимы. Переборный метод наиболее прост в программировании Для поиска оптимального решения (максимума целевой функции) требуется последовательно вычислить значения целевой функции во всех возможных точках, запоминая максимальное иэ них. Недостатком метода является большая вычислительная сложность.
требуется просчитать длины более 10 вариантов путей, что совершенно нереально. Однако, если перебор всех вариантов за разумное время возможен, то найденное решение является оптимальным. Второй подход основан на методе градиентного спуска Вначале выбираются некоторые случайные значения параметров, а затем эти значения постепенно изменяют, добиваясь наибольшей скорости роста целевой функции. При достижении локального максимума такой метод останавливается, поэтому для поиска глобального оптимума требуются дополнительные меры Градиентные методы работают быстро, но не гарантируют оптимальности найденного решения Они идеальны дпя применения в так называемых унимодальных задачах, где целевая функция имеет единственный локальный максимум (он же — глобальный) Однако задача коммивояжера таковой не является.
Пракгические задачи, как правило, мультимодальны и многомерны, т. е. содержат много параметров Для них не существует универсальных методов, позволяющих достаточно быстро найти абсолютно точные решения. Комбинируя переборный и градиентный методы, можно получить приближенные решения, точность которых будет возрастать с увеличением времени расчета 141 Комбонаторная Уномодальная Мульглимодальная Тип задано Рис 3 21. Эффективность генетических алгоритмов Генетический алгоритм представляет собой именно такой комбинированный метод Механизмы скрещивания и мутации в каком-то смысле реализуют переборную часть метода, а отбор лучших решений — градиентный спуск.
На рис. 3.21 показано, что такое сочетание обеспечивает устойчиво хорошую эффективность генетического поиска для любых типов оптимизационных задач. Таким образом, если на некотором множестве задана сложная функция от нескольких переменных, то генетический алгоритм за разумное время находит значение функции достаточное близкое к оптимальному. Задавая время расчета, можно получить одно из лучших решений, которые реально получить за это время. Часть 11 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Глава 4 ОСНОВНЫЕ ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ ПРОГРАММ МОДЕЛИРОВАНИЯ НЕЙРОННЫХ СЕТЕЙ Меньше всего авторам хотелось бы, чтобы после прочтения первой части данной книги у читателя сложилось впечатление о нейронных сетях как о какой-то непостижимой вещи, требующей как серьезного знания математики, так и программирования.
На самом деле, для использования аппарата нейронных сетей ни того, ни другого не требуется. Единственное, что нужно после формулировки задачи, это подготовить, например, в форме табл. 4.! данные для обучения сети, а далее — использовать какую-либо из известных программ моделирования нейронных сетей и следовать инструкциям этой программы.
Таблица 4 1 Первая (верхняя) строка таблицы соответствует обозначениям входных и выходных переменных поставленной задачи, каждая последующая строка — значениям входного и целевого (требуемого) выходного вектора. Но какие же программы моделирования нейронных сетей известны, и какие иэ являются наилучшими? Остановимся на этом подробнее.
4.1. Общие сведения о программах моделирования нейронных сетей Программу моделирования нейронной сети обычно называют программой-имитатором или нейропакетом, понимая под этим программную оболочку, эмулирующую для пользователя среду нейрокомпьютера на обычном компьютере. В настоящее время на рынке программного обеспечения имеется множество самых разнообразных программ для моделирования нейронных сетей.
Можно выделить несколько основных функций, которые реализованы во всех этих программах. Формирование (создание) нейронной сети Для решения разных практических задач требуются различные модели нейронных сетей. Модель нейронной сети определяется моделями нейронов и структурой связей сети. Программы-имитаторы в зависимости от структуры связей реализуют следующие группы нейронных сетей. ° Многослойные нейронныв сети. Нейроны в таких сетях делятся на группы с общим входным сигналом — слои. Различают несколько типов связей между слоями с номерами г) и (д+ р). ° последовательные (р = 1); ° прямые (р > 1); ° обратные (р < 0).
Связи между нейронами одного слоя называют латеральными (боковыми). ° Полносвязные нейронные сети. Каждый нейрон в полно- связных сетях связан со всеми остальными. На каждом такте функционирования сети на входы нейронов подается внешний входной сигнал и выходы нейронов предыдущего такта. ° Нейронные сети с локальными связями. Нейроны в таких сетях располагаются в узлах прямоугольной или гексагональной решетки. Каждый нейрон связан с небольшим числом (4, 6 или 8) своих топологических соседей. 144 ° Неструктурированные нейронные сети. К этой группе относятся все модели нейронных сетей, которые нельзя отнести ни к одной иэ предыдущих групп. Модели реализуемых программами-имитаторами нейронов чрезвычайно разнообразны.
В простейшем случае нейроны первого порядка выполняет взвешенное суммирование компонентов входного вектора и нелинейное преобразование результата суммирования. Нейроны более высоких порядков осуществляют перемножение двумерных матриц и многомерных тенэоров. В моделях нейронов используются различные варианты нелинейных преобразований. Наиболее часто используются сигмоидальные, кусочно-линейные и жесткие пороговые функции активации В сети все нейроны могут иметь как одинаковые (гомогенная сеть), так и различные функции активации (гетерогенная сеть) Для построения нейронной сети, ориентированной на решение конкретной задачи, используются процедуры формирования нейронных сетей, которые обеспечивают ввод указанных характеристик моделей нейронов и структур нейронных сетей. Каждая группа моделей нейронных сетей может быть использована для решения лишь некоторого ограниченного класса практических задач.
Так, многослойные и полносвязные нейронные сети с сигмоидальными передаточными функциями используются для распознавания образов и адаптивного управления; нейронные сети с локальными связями — для обработки изображений и некоторых других частных задач. Для решения задач линейной алгебры используются многослойные сети с особыми передаточными функциями. Лишь для небольшого числа моделей нейронных сетей существует строгое математическое обоснование возможности их применения для решения конкретных практических задач. В наибольшей степени теоретически проработаны двухслойные нейронные сети с сигмоидальными передаточными функциями. На основе приведенной в гл.
1 теоремы Колмогорова-Арнольда доказано, что такие сети могут реализовывать любые отображения входного сигнала в выходной К построению многопараметрических отображений сводится большинство задач распознавания, управления, идентификации. Обучение нейронной сети В большинстве программ-имитаторов предлагаются стандартные процедуры обучения нейронных сетей, ориентированные на конкретные нейропарадигмы Как правило, в нейропакетах реализуется возможность задания различных типов данных и различных размерностей входных и 145 выходных сигналов в зависимости от решаемой задачи В качестве входных данных в обучающей выборке могут использоваться растровые изображения, таблицы чисел, распределения Типы вход ных данных — бинарные (О и 1), биполярные (-1 и +1) числа, целые или действительные числа из некоторого диапазона Выходные сигналы сети — векторы целых или действительных чисел Для решения практических задач часто требуются обучающие выборки большого объема Поэтому в ряде нейропакетов предусмотрены средства, облегчающие процесс формирования и использования обучающих примеров Однако в настоящее время отсутствует универсальная методика построения обучающих выборок и набор обучающих примеров, как правило, формируется индивидуально для каждой решаемой задачи В качестве функции ошибки, численно определяющей сходство всех текущих выходных сигналов сети и соответствующих требуемых выходных сигналов обучающей выборки, в большинстве случаев используется среднеквадратичное отклонение Однако в ряде нейроимитаторов существует либо возможность выбора, либо задания своей функции ошибки Реализуемые в нейропакетах алгоритмы обучения нейронных сетей можно разделить на три группы градиентные, стохастические, генетические Градиентные алгоритмы (первого и второго порядков) основаны на вычислении частных производных функции ошибки по параметрам сети В стохастических алгоритмах поиск минимума функции ошибки ведется случайным образом Генетические алгоритмы комбинируют свойства стохастических и градиентных алгоритмов на основе аналога генетического наследования реализуют перебор вариантов, а на основе аналога естественного отбора — градиентный спуск При обучении нейронных сетей, как правило, используются следующие критерии останова ° при достижении некоторого малого значения функции ошибки, ° в случае успешного решения всех примеров обучающей выборки (при неизменности выходных сигналов сети) В нейроимитаторах предусмотрено наличие специальных процедур инициализации перед обучением сети, т е присваивания параметрам сети некоторых малых случайных значений Обучение представляет собой итерационную процедуру, которая при реализации на персональных компьютерах требует значительного времени Скорость сходимости алгоритма обучения является одной из самых важных характеристик программ для мо.