Лабораторная работа № 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
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.