Файл: Интеллектуальные информационные системы и технологии.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 358
Скачиваний: 11
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Рис. 6.3. Структура нейронной сети
с одним скрытым слоем
, x1 = 1, x2 = –1. Определить значения y1, y2.
Решение:
Пример 6.2. Пусть задана нейронная сеть с двумя скрытыми слоями (рис. 6.4). Порог возбуждения отсутствует, .
Рис. 6.4. Структура нейронной сети с двумя скрытыми слоями
, , x1 = –1, x2 = 1.
Определить значения y1, y2, и преобразовать сеть в однослойную.
Решение:
Для преобразования нейронной сети в однослойную необходимо переопределить семантическую матрицу, т.е. вычислить новую мат-рицу Wп:
.
Самым важным свойством нейронной сети является ее способность обучаться на примерах. Цель обучения состоит в настройке синаптических матриц.
6.3. Алгоритмы обучения нейронных сетей
На этапе обучения происходит вычисление синаптических коэф-фициентов в процессе решения нейронной сетью конкретных задач. Контролируемое обучение нейронной сети можно рассматривать как решение оптимизационной задачи. Ее целью является минимизация функций ошибок (невязок) на данном множестве примеров путем выбора значений весов W.
Известно два вида обучения: с учителем и без учителя. Обучение
с учителем предполагает предъявление сети последовательности пар
(
Xi, Di), где Xi – обучающий пример; Di – эталон, который должен быть получен на выходе сети. Для каждого Xi вычисляется yi, который сравнивается с Di. Разница используется для корректировки синапти-ческой матрицы. Обучение без учителя предполагает наличие только обучающих примеров Xi. Синаптическая матрица настраивается так, чтобы близким входным векторам соответствовали одинаковые резуль-тирующие векторы.
Обучение можно рассматривать как дискретный процесс, описываемый конечно-разностными уравнениями. Большинство методов обучения используют идею Хэбба, сущность которой заключается в повторении заучиваемого примера. Синаптический вес увеличивается, если оба нейрона – источник и приемник – активизированы. Наращивание веса определяется произведением уровней возбуждения двух нейронов, что можно записать так:
,
где – значения веса связи от i-го нейрона к j-му на предыдущей итерации обучения и текущей;
– скорость обучения ( );
– выход нейрона i, являющийся входом для j-го нейрона на
0-й итерации;
– выход нейрона j на 0-й итерации.
Процесс обучения нейронной сети рассматривается как задача минимизации некоторой функции F(W) min, где W – синаптическая матрица сети.
Для решения такой задачи могут использоваться различные мето-
ды нелинейного программирования: градиентный, квазиньютоновский случайного поиска и др.
Общим для методов обучения сети является следующее: для некоторого начального состояния синаптической матрицы определяется направление уменьшения целевой функции
F(W) и находится ее минимум в этом направлении. Для полученной точки снова вычисляется направ-ление убывания функции и осуществляется одномерная оптимизация.
В общем алгоритм можно представить как
где величина шага на нулевом этапе;
направление поиска на нулевом этапе.
Наиболее развитым методом обучения является алгоритм обрат-ного распространения. Каких-либо ограничений на количество слоев
и топологию сети не накладывается. Единственное требование состоит в том, чтобы функция возбуждения была всюду дифференцируема. Как правило, используется сигмоидная (логистическая) функция. Алгоритм обратного распространения является методом обучения с учителем (рис. 6.5).
Рис. 6.5. Схема обучения нейронной сети с учителем
Алгоритм обратного распространения представляет собой развитие обобщенного дельта-правила и является алгоритмом градиентного спуска, минимизирующим суммарную квадратичную ошибку. Главная цель состоит в том, чтобы вычислить чувствительность ошибки сети к изменению весов.
Пусть нейронная сеть соответствует схеме, показанной на рис. 6.2. Тогда алгоритм обучения можно описать следующим образом [6]:
1. Задать синаптические матрицы W, W*.
2. Для каждой обучающей пары (Xi, Di) выполнить действия:
подать на вход скрытого слоя очередной набор обучающих данных ;
вычислить выход скрытого слоя :
;
вычислить выход выходного слоя:
.
3. Рассчитать ошибки для выходного и скрытого слоев:
между полученными выходными величинами сети и эталонными величинами;
для нейронов скрытого слоя.
Повторять шаги 2 и 3 до тех пор, пока ошибки не станут приемлемыми.
Пример 6.3. Пусть нейронная сеть соответствует схеме на рис. 6.2. При этом n = 2, m = 2, k = 1 (рис. 6.6). Обучающее множество = (1; 2), D = 3. Необходимо обучить нейронную сеть складывать числа 1 и 2. Все нейроны возбуждаются сигмоидной функцией. Заданы синаптические матрицы для скрытого слоя на первой итерации:
и вектор для выходного слоя:
.
Рис. 6.6. Нейросеть с одним скрытым слоем
Вычислим взвешенную сумму:
тогда
.
Взвешенный вход для выходного слоя
В то же время желаемое значение y(1), преобразованное функцией возбуждения:
D = F (3) = 0,952,
поэтому среднеквадратическая ошибка:
Значения фактического выхода и желаемого не совпадают, поэтому синаптические веса следует изменить. Для этого следует выяснить, каким образом повлияют эти изменения на величину ошибки. Анализ, согласно алгоритму обратного распространения, выполняют начиная с выходного слоя сети и продвигаясь к входу:
1) прежде всего выясняют, как влияют на ошибку сети изменения на выходе. Для этого достаточно определить скорость изменения ошибки при данном значении выхода. Скорость находится с помощью производной. Дифференцирование выполняется по аргументу y(1).
Полученная реакция скорости изменения ошибки при данном зна-чении выхода отрицательная, что указывает на необходимость увеличения значения на выходе;
-
определить, каким образом влияет на ошибку сети каждый из
входов выходного слоя. Для этого определим скорость изменения ошибки сети при изменении средневзвешенного входа выходного слоя V*(1):
Значение EQ показывает, что скорость изменения ошибки в
процессе изменения средневзвешенного входа выходного нейрона существенно ниже по сравнению со скоростью реакции сети на изменение ее выхода.
Каким образом влияет на ошибку сети каждый из входов
выходного слоя, можно узнать, если результат предыдущего шага умножить на уровень активности нейрона, из которого эта связь исходит: