ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 14.06.2023

Просмотров: 273

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рис.4.10 сети Элмана

Нейронная сеть Джордана похожа на сети Элмана. Только в ней блок контекстных нейронов связаны не со срытым, а с выходным слоем. Контекстный блок таким образом сохраняет своё состояние. Они обладают рекуррентной связью с собой.

Сеть Джордана (рис.4.11) — вид нейронных сетей, который получается из многослойного перцептрона, если на его вход подать, помимо входного вектора, выходной с задержкой на один или несколько тактов.

При прохождении сигнала через сеть Джордана, он поступает на группу рецепторов соединенных с внешним миром (INPUT) и проходит в скрытый слой (HIDDEN). Обработанный скрытым слоем сигнал попадает на выходной слой (OUTPUT) и выходит из сети, а его копия попадет на задержку. Далее в сеть, на рецепторы, воспринимающие внешние сигналы, поступает второй образ, а на контекстную группу рецепторов (CONTEXT) — выходной образ с предыдущего шага. Затем сигнал из контекстного блока и входа идет в скрытый слой, от туда на выходной и так далее.

Рис. 4.11 Сеть Джордана

Нейронные сети Кохонена — это класс нейронных сетей основным элементом которых является слой Кохонена. Слой Кохонена состоит из линейных формальных нейронов. Обычно, выходные сигналы слоя Кохонена обрабатываются по правилу «Победитель забирает все», то есть сильнейший сигнал превращается в единичный, а другие обнуляются.

Рис.4.12 Пример карты Кохонена.

Размер каждого квадратика (рис.4.12) соответствует степени возбуждения соответствующего нейрона.

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

Самоорганизующиеся карты Кохонена – соревновательные нейронные сети с обучением без учителя, выполняющие задачи визуализации и кластеризации, применяются также для решения задач моделирования, прогнозирования. Предложил идею такой сети в 1982 году Т. Кохонен. Это метод проецирования многомерного пространства в пространство с низкой размерностью, как правило двумерное. Сеть Кохонена распознает кластеры в данных, а также устанавливает близость классов. Также применяется для обнаружения новых явлений. Сеть Кохонена при распознавании кластеров в обучающих данных относит все данные к тем или иным кластерам. Если сеть встречается с набором данных, непохожим ни на один из известных ей образцов, то она не может классифицировать такой набор и тем самым выявляет что он новый.


Для применения нейронных сетей Кохонена в задачах классификации требуется формализация. Каждый объект, который требуется классифицировать, представляется в виде вектора, который подается на вход нейронной сети. Количество нейронов во входном слое определяется количеством компонентов этого входного вектора. Количество выходов определяется количеством классов. Если количество классов N, то и количество нейронов в выходном слое тоже будет N. Таким образом, каждый нейрон в выходном слое «отвечает» за свой класс. Значения, которые принимают нейроны в выходном слое, отображают насколько вектор классифицируемого объекта на входе близок, по мнению нейронной сети Кохонена, к тому или иному классу. Чем больше «уверенность», что объект принадлежит к тому или иному классу, тем больше значение принимает нейрон соответствующего класса. Иногда применяют специальную функцию активации, которая делает сумму выходов со всех нейронов равной единице. В таком случае каждый выход можно трактовать, как вероятность того, что объект принадлежит к данному классу.[1]

Например в нейронной сети Кохонена с двумя выходами, для классификации всего по двум классам, обработка информации происходит следующим образом.(рис. 4.13)

Рис. 4.13 Нейронная сеть Кохонена

Нейроны входного слоя служат лишь точками разветвления и не выполняют никаких вычислений. Каждый нейрон входного слоя А соединен отдельным весом с каждым нейроном скрытого слоя B (слоем Кохонена). Например, первый нейрон слоя А соединен с первым нейроном слоя Кохонена весом WA1-B1. Нейроны слоя В суммируют поступающие значения и подают их на выходной слой C. Сигнал передается с одного нейрона слоя Кохонена на один нейрон выходного слоя. Обучение нейронной сети Кохонена - это обучение без учителя.

5. Обучение нейронных сетей

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

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


5.1 Обучение с учителем

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

Элементами этих множеств есть пары ( X, YI ), где X - вход, для обучаемой нейронной сети, YI - идеальный (желаемый) выход сети для входа X, так же определяется функция ошибки E. Обычно это средняя квадратичная ошибка:

где P - количество обработанных нейронной сетью примеров, yi - реальный выход нейронной сети, di - желаемый (идеальный) выход нейронной сети;

Алгоритм обучения искусственной нейронной сети сводится к процедуре коррекции весов её связей. Целью процедуры коррекции весов является минимизация функции ошибки E.

Схема обучения "с учителем" в общем виде выглядит так :

Весовые коэффициенты нейронной сети устанавливаются некоторым образом, обычно - малыми случайными значениями.

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

Затем происходит проверка правильности работы сети. На вход подаются контрольные примеры. Для каждого примера вычисляется ошибка обобщения EG . Если результат неудовлетворительный то, корректировка весов и повторение цикла обучения шаги 2 и 3.

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

Обучение сети методом Розенблатта состоит в подстройке весовых коэффициентов каждого нейрона. Имеется набор пар векторов (x, y),  = 1..p, так называемая обучающая выборка. Нейронная сеть считается обученной на данной обучающей выборке, если при подаче на вход сети каждого вектора x на выходах получается соответствующий вектор y

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


Шаг 0.

Начальные значения весов всех нейронов W(t=0) полагаются случайными.

Шаг 1.

Сети предъявляется входной образ x, в результате формируется выходной образ Y’≠Y

Шаг 2.

Вычисляется вектор ошибки δ=(Y’-Y), делаемой сетью на выходе. Дальнейшая идея состоит в том, что изменение вектора весовых коэффициентов в области малых ошибок должно быть пропорционально ошибке на выходе, и равно нулю если ошибка равна нулю.

Шаг 3.

Вектор весов модифицируется формуле: . где - скорость обучения.

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

Шаг 4.

Шаги 1-3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки называется эпохой. Обучение завершается по истечении нескольких эпох, если вектор весов перестает изменяться, или когда полная просуммированная по всем векторам абсолютная ошибка станет меньше некоторого заранее определенного малого значения.

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

Персептрон Розенблатта ограничивается бинарными выходами. Видроу и Хофф изменили модель Розенблатта. Их первая модель - ADALINE (Adaptive Linear Element) имела один выходной нейрон и непрерывную линейную функцию активации нейронов.

Метод обучения Видроу-Хоффа известен еще как дельта-правило (delta-rule). Этот метод ставит своей целью минимизацию функции ошибки E в пространстве весовых коэффициентов.

где

P - количество обработанных и сетью примеров

E(k) - ошибка для k-го примера

yk - реальный выход сети для k-го примера

dk - желаемый (идеальный) выход сети для k-го примера


Минимизация E осуществляется методом градиентного спуска 

Где

Таким образом весовые коэффициенты изменяются по правилу 

wj(t+1)=wj(t) - a * (yk-dk)* xjk

Пример результатов работы линейного классификатора на основе ADALINE(рис.5.1).

Рис.5.1 результат работы ADALINE

Сеть с двумя и более нейронными слоями становится сложно обучать предыдущими методами т.к. в многослойных сетях известен выход лишь последнего слоя нейронов. Решение этой проблемы было предложено Д.Румельхартом с соавторами в 1986 году. Этот метод обучения многослойной искусственной нейронной сети, был назван методом обратного распространения ошибки. Главная идея этого метода состоит в распространении сигналов ошибки от выходов сети к её входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы.

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

где - изменение веса связи на шаге итерации t обучающей пары вход-выход i -го нейрона, получающего входной сигнал, и j –го нейрона, посылающего выходной сигнал; µ - коэффициент, задаваемый пользователем в интервале (0,1); ɛ - величина шага сети или мера точности обучения сети. Чем меньше шаг сети, тем больше времени потребуется на обучение сети и тем больше вероятность ее попадания в окрестность локального минимума ошибки.

Общая ошибка функционирования сети определяется по формуле: