Лабораторная работа № 5. ИЗУЧЕНИЕ СВОЙСТВ ЛИНЕЙНОГО НЕЙРОНА И ЛИНЕЙНОЙ НЕЙРОННОЙ СЕТИ
Изучить свойства линейного нейрона и линейной нейронной сети.
Формула срабатывания нейрона:
Все алгоритмы обучения нейросетей являются разновидностями алгоритма обучения по методу коррекции ошибки, которая осуществляется по-разному. Идея изменения весов НС сводится к нахождению общей меры качества сети, в качестве которой обычно выбирают функцию ошибки сети. Тогда, чтобы подобрать нужные веса, необходимо минимизировать функцию ошибки. Самым распространенным методом поиска минимума является метод градиентного спуска. Для случая функции с одной переменной веса изменяются в направлении, противоположном производной, т. е. справедлива формула:
где h – некоторый уровень обучения, шаг изменения;
F'(W) – производная функции качества НС для одной переменной.
Для
функции F от n переменных
и единичного вектора е в пространстве Rn ||е|| = 1, , дифференциал
выражается формулой:
.
Для случая е = (0, 0...1...0) определим частный дифференциал:
.
Таким образом, антиградиент – это набор следующих дифференциалов:
Для определения обобщенной функции ошибки рассмотрим обучающую выборку {(хk, yk)}, где k = 1, ..., К. Накопленная по всем эпохам ошибка:
Формула модификации весов НС:
уточняется
для различных видов функции активации. Для линейной функции F(t) = t, НС формирует каждый выход как скалярное произведение весов на
вектор входов: и градиент будет равен:
где Yi – желаемый выход; Oi – полученный выход; X – вектор выхода.
Таким образом, получаем формулу изменения весов:
Если значением назвать разницу
(Yi – Оi), то получим формулу:
что
является алгоритмом обучения по -правилу.
Функция newp. Для того чтобы создать нейрон, используют функцию newp, имеющую следующий синтаксис:
где PR – матрица минимальных и максимальных R входных элементов; S – количество нейронов (при создании одного нейрона S = 1); TF – функция активации (transfer function); LF – имя функции обучения нейрона.
В случае если параметры функции newp не заданы, их значения определяются посредством ввода значений в диалоговые окна. Построенный нейрон характеризуется функциями весов (weight function), входов сети (net input function) и определенной функцией активации. Функция весов – это умножение весов на входной сигнал, функция входов сети – их сумма. Веса задаются как для входов нейрона, так и для фиксированного входа, задающего порог срабатывания (bias). Вектор весов инициализируется нулями. Для обучения используются функции, рассмотренные ниже.
Функция learnp настраивает веса нейрона. Синтаксис функции обучения довольно сложен:
Функция learnp (W, P, Z, N, A, T, E, gW, gA, D, LP, LS) имеет несколько входов, где вектор W – вектор весов; Р – вектор входов; Z – вектор взвешенных входов; N – вектор сети; А – вектор выхода; Т – вектор желаемых выходов; Е – вектор ошибок; gW – вектор изменения весов; gA – изменения выходов. Функция возвращает значения: dW – изменения матрицы весов; LS – новый уровень обученности.
Функция learnp может быть использована с параметрами по умолчанию:
Использование пустого списка [ ] означает параметр по умолчанию.
Функция learnp вычисляет изменение весов dW для заданного нейрона в соответствии с правилом обучения персептрона:
т.е.
.
Функция learnpn настраивает нормализованные веса:
Функция learnpn вычисляет изменение весов dW для данного нейрона и его входа Р и ошибки Е в соответствии с нормализованным правилом обучения персептрона:
т.е.
.
Линейный нейрон имеет одно существенное ограничение. Входные векторы должны быть линейно разделимы. Если векторы невозможно отделить прямой или гиперплоскостью, то персептрон не способен решить задачу классификации.
Функция adapt адаптирует НС к условиям задачи:
Параметры функции adapt: net – имя сети; Р – входы сети; T – желаемый выход; Рi – исходные условия задержки; Ai – исходные условия задержки для слоя. Функция возвращает параметры адаптированной сети net.adaptParam: net – измененная сеть; Y – выход сети; Е – ошибки сети; Pf – условия задержки входов; Af – условия задержки слоя. Параметры Рi и Pf необязательные и необходимы только для сетей, имеющих задержки на входах и слое.
Функция train также обучает НС и использует следующий синтаксис:
Функция train имеет следующие параметры: net – сеть; Р – входы сети; Т – желаемый выход; Рi – исходные условия задержки входа; Ai – исходные условия задержки слоя.
Функция sim имитирует нейронную сеть:
где net – сеть; Р – входы сети; Pi — исходные условия задержки входов сети; Ai – исходные условия задержки слоя. Функция возвращает Y – выходы сети; Pf – окончательные условия задержки входов; Af – окончательные условия задержки слоя.
Функции активации. Ниже представлены назначения этих функций.
Функция |
Назначение |
hardlim |
Возвращает 1, если на входе положительное число и 0 в противном случае. |
tansig |
Вычисляет гиперболический тангенс от входа. |
purelin |
Вычисляет выход слоя от сетевого входа. |
Функции графического интерфейса и вспомогательные функции. Назначение этих функций представлено ниже.
Функция |
Назначение |
axis([Xmin Xmax Ymin Ymax) |
Устанавливает диапазоны координатных осей |
title(‘строка’) |
Выводит в графическое окно рисунков заголовок графика |
rand(M, N) |
Возвращает матрицу размерности М на N со случайными значениями |
xlabel(‘строка’) ylabel(‘строка’) |
Подписывают наименование координатных осей |
cla reset |
Очищает координатную сетку в окне рисунков |
hold on hold off |
Включают и отключают режим добавления графиков на координатную сетку |
text(X, Y, ‘строка’) |
Выводит строку, начиная с указанных координат в поле рисунков |
pause (n) |
Ожидает пользовательского ответа п секунд |
plot(X, Y, ‘цвет и символ’) |
Изображает на координатной сетке точки с координатами, заданными векторами X, Y, с помощью указанного символа и цвета |
plotpv(P, V) |
Изображает точки Р указанными маркерами Т, где Р – матрица входных векторов размерностью R на Q (R должен быть 3 или меньше), Т – матрица двоичных векторов размерностью 5 на Q (S должен быть 3 или меньше) |
plotes (WV, BV, ES, V) |
Изображает поверхность ошибки на отдельном входе, где WV – вектор строк значений весов W размерности N, BV – вектор строк значений порогов В размерности М, ES – матрица ошибки размерности М на N, V – угол зрения по умолчанию [-37, 5, 30] |
plotsom(POS) |
Изображает позицию нейрона красной точкой, связывая синей линией нейроны, находящиеся друг от друга на расстоянии 1. POS – матрица S N-размерных нейронов |
ind2vec vec2ind |
Позволяют представить индексы либо собственно значениями индексов, либо векторами, строки которых содержат 1 в позиции индекса |
full |
Преобразует разреженную матрицу в полную |
maxlinlr(P) |
Функция возвращает максимальный уровень обученности линейного слоя без bias, который обучался только на векторе Р |
trainlm |
Выполняет обучение многослойной НС методом Левенберга-Марквардта |
netprod |
Входная сетевая функция, которая вычисляет выход сетевого слоя, умножая входной вектор на веса и прибавляя bias |
init |
Итеративно инициализирует НС |
Структура данных описания нейронных сетей. Структура данных net – это описание обученной НС. Обучение осуществляется в соответствии со следующими параметрами, значения которых либо устанавливаются пользователем, либо по умолчанию.
Структура данных |
Комментарий |
net.trainParam. epochs 100 |
Максимальное количество эпох обучения |
net. trainParam.goal 0 |
Целевое значение ошибки |
net.trainParam.max_fail 5 |
Максимальное значение ошибки |
net.trainParam.mem reduc 1 |
Фактор оптимизации процесса обучения: оптимизация использования памяти или времени процессора |
net. trainParam. min_grad 1e-10 |
Минимальное значение градиента |
net.trainParam.show 25 |
Количество эпох между показами |
net.trainParam.time inf |
Максимальное время обучения в секундах |
TR |
Структура данных, содержащая значения об обученности НС в текущую эпоху |
TR. epoch |
Номер эпохи |
TR.perf |
Уровень обученности (Trainingperformance) |
TR.vperf |
Степень качества (Validation performance) |
TR.tperf |
Результативность обработки теста (Testperformance) |
TR.mu |
Значение адаптивности |
Структура данных описания адаптированной НС net.adaptfcn включает в себя следующие поля net.adapt.param: NET – адаптированная НС; Y – выходы НС; Е – ошибки НС; Pf – окончательные входные значения задержек; Af – окончательные выходные задержки; TR – результат обучения (эпохи и целевая ошибка). Проведем в среде MATLAB toolbox эксперименты, используя рассмотренные функции.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.