Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Исследование линейных нейронных сетей



Цель работы: изучение архитектуры статистических и динамических линейных нейронных сетей и специальных функций для их создания, настройки параметров по методу Вудроу–Хоффа, адаптации и обучения, ознакомление с демонстрационными примерами и их скриптами, а также приобретение навыков построения и обучения линейных сетей для классификации векторов, линейной аппроксимации, предсказания, слежения и фильтрации сигналов, идентификации и моделирования линейных систем.

Теоретические сведения

Линейная сеть – это один слой из S нейронов и R входов, каждый из которых может состоять из нескольких элементов. Передаточной функцией каждого нейрона слоя является линейная функция purelin. Это является единственным отличием линейной сети от персептрона. Благодаря линейной передаточной функции каждый выход сети может принимать любое значение, в то время как выход персептрона ограничен значениями 1 и 0.

Линейные сети, как и персептроны, способны решать только линейно отделимые задачи классификации, однако в них используется правило обучения по методу Вудроу–Хоффа, основанное на использовании функции наименьших квадратов, которое является более мощным, чем правило обучения персептрона.

Помимо основных входов нейроны линейной сети имеют вход для постоянного смещения, равного единице. Элементы входов и смещения взвешиваются с помощью функции скалярного произведения dotprod и суммируются с помощью функции накопления netsum.

Линейная нейронная сеть может быть создана одним из следующих способов:

net=newlin(PR, S, id, lr),

net=newlin(PR, S, 0, P),

net=newlind(P, T),

где PR – массив размера R*2 минимальных и максимальных значений для R векторов входа;

S – число нейронов;

id – описание линии задержки на входе сети, по умолчанию [0];

lr – параметр скорости настройки, по умолчанию 0,01;

P – обучающие последовательности входов размера R*Q, причем Q – количество последовательностей;

Т – последовательность целей для Р размера S*Q;

0 – нуль..

Первый способ применяется, когда в сеть включаются задержки, т. е. для создания динамических адаптивных линейных нейронных сетей ADALIN (ADApture Linear Neuron networks), которые позволяют корректировать веса и смещения при поступлении на вход каждого элемента обучающего множества. Такие сети широко применяются при решении задач обработки сигналов и в системах управления.

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

Для первого и второго способа инициализация сети проводится при ее создании с помощью функции initzero. Адаптация и обучение сети затем осуществляется с помощью функции adaptwb, которая модифицирует веса и смещения, используя функцию Видроу – Хоффа hearnwh до тех пор, пока не будет достигнуто требуемое значение критерия качества обучения в виде средней квадратичной ошибки, вычисляемой функцией mse.

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

[W b]*[P;ones]=T,

при этом должно выполняться условие

S*R + S = Q.

Функция learnwh вычисляет приращение весов входов и смещений по следующим векторным формулам:

pn = p/(sqrt(1+P(1)^2)+… +P(R)^2);

dW = lr*e*pn;

db = lr*e.

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

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

Практические задания

Задание 1. Выполнить задания с 1 -го по 5- е лабораторной рабо-
ты № 6 и для линейной нейронной сети с таким же числом нейронов и входов, что и у соответствующего персептрона, заменив функцию newp функцией newlin, оставляя параметры неизменными и используя значения параметров id и lr по умолчанию, т. е. [0] и 0,01 соответственно.

Задание 2. Построить поверхность ошибок для линейной сети с одним нейроном и одним входом, используя функцию errsurf и выполнив следующие команды:

Р = [1 -1.2];

T = [0.5 1];

net = newlind(P,T);

Y = sim(net, P) %0.5 и 1;

net.IW{1,1} %-0.22727;

net.b{1} %0.72727;

w_rangle = -1: 0.1: 0 %диапазон весов;

b_ rangle = 0.5: 0.1: 1 %диапазон смещений;

ES = errsulf(P, T, w_ rangle, b_ rangle, 'purelin');

contour(w_ rangle, b_ rangle, ES, 20) %20 уровней;





Дата публикования: 2015-10-09; Прочитано: 757 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...