
Программная система автоматического формирования нечеткого логического контроллера
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
a сигмоида меняется его внешний вид. Уменьшение параметра приводит к тому, что сигмоид становится более пологим, а в пределе, при a=0, вырождается в горизонтальную линию на уровне 0.5. Увеличение a приближает сигмоид по внешнему виду к функции единичного скачка с порогом в точке x=0 [4].
Данная сигмоидная функция обладает свойством усиливать слабые сигналы лучше, чем большие, и предотвращает насыщение от больших сигналов, так как они соответствуют областям аргументов, где сигмоид имеет пологий наклон.
Структура нейросетей. Искусственная нейронная сеть (ИНС, нейросеть) - это совокупность нейронов, объединенных между собой (рис. 2.2.3). Как правило, передаточные функции всех нейронов в сети фиксированы, а веса являются параметрами сети и могут изменяться. Некоторые входы нейронов помечены как внешние входы сети, а некоторые выходы - как внешние выходы сети. Подавая любые числа на входы сети, мы получаем какой-то набор чисел на выходах сети. Таким образом, работа нейросети состоит в преобразовании входного вектора в выходной вектор, причем это преобразование задается весами сети и функциями активации.
Проектирование ИНС происходит в два этапа. На первом этапе необходимо выбрать тип (архитектуру) сети, которая определяется видом нейронов, способом их соединения, направлением распространения сигналов, а также подобрать количество слоев и число нейронов на каждом слое. На втором этапе производится процесс обучения сети - подбор весов синаптических связей сети.
Рис. 2.2.3 Нейронная сеть с k скрытыми слоями
Выбор архитектуры сети осуществляется в зависимости от того, какая задача решается. В настоящее время для различных классов задач уже определены оптимальные структуру и параметры, кроме весов, сети. Остается лишь отнести решаемую задачу к тому или иному классу.
Обучение сети. Обучить нейросеть - значит, подобрать такие веса синаптических связей сети, чтобы на любой выходной вектор значений сеть выдавала адекватный (правильный) выходной вектор.
Обучение сети может производиться одним из двух способов: с учителем и без учителя. При обучении с учителем набирается некоторый объем наблюдений, либо с помощью экспертной оценки создается минимальный задачник (совокупность входных и выходных значений) и на их основе производится обучение нейронной сети по одному из известных алгоритмов обучения, например, Error Back Propagation - алгоритм обратного распространения ошибки [3]. Если такой подход невозможен, то используется обучение без учителя. Настройка весом в этом случае производится либо на основе конкуренции нейронов между собой, либо с учетом корреляции обучающих и выходных сигналов. Примерами алгоритмов обучения без учителя могут служить алгоритм Winner Take All, генетические алгоритмы, обучение по Хеббу.
В контексте ИНС процесс обучения может рассматриваться как настройка архитектуры сети и весов синаптических связей для эффективного выполнения конкретной задачи. В процессе обучения функционирование сети улучшается по мере итеративной настройки весовых коэффициентов.
Очень важным является то, что качество процесса обучения будет во многом определяться обучающей выборкой или задачником, на основе которых и производится обучение сети. Это связано с тем, что вся информация, которую сеть имеет о задаче, содержится в наборе обучающих примеров. Поэтому обучение сети напрямую будет зависеть от количества примеров в задачнике и от того, насколько полно эти примеры описывают данную задачу.
2.3 Генетические алгоритмы
автоматический проектирование нейронный семантика
Генетические алгоритмы (ГА) относятся к так называемым эволюционным методам поиска, моделирующим процессы природной эволюции. Генетические и эволюционные алгоритмы являются алгоритмами глобального поиска и используются для решения различных задач оптимизации, в то числе и для задач оптимизации сложных систем.
Каждый индивид в ГА представляет собой решение, закодированное определенным образом (например, в виде бинарной, восьмеричной, десятичной или др. строки) - хромосому. Совокупность таких индивидов в фиксированный момент времени составляет популяцию. Этап эволюционного развития индивидов определяется номером поколения, в котором в данный момент времени находятся индивиды. Индивиды последующей популяции (потомки) получаются путем наследования признаков своих родителей и случайного изменения их генотипа, известного в природе как мутация. Каждый индивид в ГА характеризуется некоторым числом (пригодностью), обозначающим меру его адаптации к окружающей среде [5].
Процессы эволюции, происходящие в ГА, основаны на следующем принципе: каждый биологический вид целенаправленно развивается и изменяется для того, чтобы наилучшим образом приспособиться к окружающей среде.
Операторы генетического алгоритма. Новые индивиды - решения в ГА создаются с использованием таких генетических операторов, как селекция, рекомбинация и мутация, каждый из которых отвечает за определенный процесс в развитии. Рассмотрим более подробно эти операторы.
Селекция - это оператор, посредством которого индивиды (т.е. хромосомы) выбираются для спаривания и порождения потомков. Существует большое число различных селекций, некоторые из них не имеют биологических аналогов. Большинство моделей селекций создают небольшие промежуточные популяции, из которых, в дальнейшем, определенным образом выбираются пары для скрещивания. Рассмотрим основные виды селек