Типы сетей, реализуемых в ППП Neural Network Toolbox 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типы сетей, реализуемых в ППП Neural Network Toolbox



 

Рассмотрим следующие типы сетей, наиболее известных в литературе и реализуемых в ППП Neural Network Toolbox, к которым прежде всего можно отнести перспетроны, линейные сети и радиальные базисные сети.

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

Архитектура персептрона. Нейрон, используемый в модели персептрона, имеет ступенчатую функцию активации hardlim с жесткими ограничениями (рисунок 6.10). Каждый элемент вектора входа персептрона взвешен с соответствующим весом w1 j, и их сумма является входом функции активации. Нейрон персептрона возвращает 1, если вход функции активации n > 0, и 0, если n < 0. Функция активации с жесткими ограничениями придает персептрону способность классифицировать векторы входа, разделяя пространство входов на 2 области, как это показано на рис. 6.24. для персептрона с двумя входами и смещением.

Пространство входов делится на 2 области разделяющей линией L, которая для двумерного случая задается уравнением

wTp + b = 0. (8.10.)

 

Рисунок 6.24- Нейрон персептрона.

 

 

Эта линия перпендикулярна к вектору весов w и смещена на величину b. Векторы входа выше линии L соответствуют положительному потенциалу нейрона, и, следовательно, выход персептрона для этих векторов будет равен 1; векторы входа ниже линии L соответствуют выходу персептрона, равному 0. При изменении значений смещения и весов граница линии L изменяет свое положение. Персептрон без смещения всегда формирует разделяющую линию, проходящую через начало координат; добавление смещения формирует линию, которая не проходит через начало координат, как это показано на рис. 6.25. В случае, когда размерность вектора входа превышает 2, разделяющей границей будет служить гиперплоскость.

Архитектура сети. Персептронная сеть состоит из единственного слоя, включающего S нейронов. Уравнение однослойного персептрона имеет вид:

a = f(Wp + b). (6.11.)

Модель персептрона. Для формирования модели однослойного персептрона предназначена функция newp:

net = newp(PR, S)

со следующими входными аргументами: PR- массив минимальных и максимальных значений для R элементов входа размера Rx2; S - число нейронов в слое.

 

Рис.6.25. Разделение пространства персептроном на 2 области.

 

В качестве функции активации персептрона по умолчанию используется функция hardlim.

Пример:

Функция

net = newp([0 2],1);

создает персептрон с одноэлементным входом и одним нейроном; диапазон значений входа - [0 2].

Моделирование персептрона. Рассмотрим однослойный персептрон с одним двухэлементным вектором входа, значения элементов которого изменяются в диапазоне от -2 до 2:

net = newp([-2 2;-2 2],1); % Создание персептрона net

По умолчанию веса и смещение равны 0, и для того, чтобы установить желаемые значения, необходимо применить следующие операторы:

net.IW{l,l}= [-1 1]; net.b{l} = [1].

В этом случае разделяющая линия имеет вид:

L: -р12+1 = 0. (8.12)

Теперь определим, как откликается сеть на входные векторы р1и р2, расположенные по разные стороны от разделяющей линии, рис.6.25, и введем:

p1 = [1; 1];

a1 = sim(net, pl) % Моделирование сети net с входным вектором pi;

получим: a1=1;

р2 = [1; -1];

а2 = sim(net, p2) % Моделирование сети net с входным вектором р2

и получим: а2 = 0.

Персептрон правильно классифицировал эти два вектора.

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

Архитектура линейной сети. На рис. 6.26. показан линейный нейрон с двумя входами. Он имеет структуру, сходную со структурой персептрона; единственное отличие состоит в том, что используется линейная функция активации purelin.

Весовая матрица W в этом случае имеет только одну строку и выход сети определяется выражением:

a = purelin(n) = purelin(Wp + b) = Wp + p = w11p1 + w12p2 +b. (6.13)

 

Рис.6.26. Линейный нейрон с двумя входами.

 

 

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

Архитектура сети. Архитектура линейной сети аналогична архитектуре персептрона: она включает S нейронов, размещенных в одном слое и связанных с R входами через матрицу весов W.

Создание модели линейной сети. Линейную сеть с одним нейроном, показанную на рис. 6.27, можно создать следующим образом:

net = newlin([-1 1; -1 1],1).

Первый входной аргумент задает диапазон изменения элементов вектора входа; вто­рой аргумент указывает, что сеть имеет единственный выход. Начальные веса и смещение по умолчанию равны 0. Присвоим весам и смещению следующие значения:

net.IW{l,l} = [2 3];

net.b{l> =[-4].

Теперь можно промоделировать линейную сеть для следующего предъявленного вектора входа:

Р = [5;6];а = sim(net,p);

и получим: а = 24.

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

р = [2 1 -2 -1; 2 -2 2 1];

t = [0 1 0 l]

Определим линейную сеть с начальными значениями веса и смещения, используемыми по умолчанию, т. е. нулевыми; зададим допустимую погрешность обучения, равную 0.1:

net = newlin([-2 2; -2 2],1);

Инициализация линейной сети с двумя входами и одним выходом:

net.trainParam.goal= 0.1;

[net, tr] = train(net,p,t);

После прогона и достижения порогового значения функции качества соответствующие параметры сети принимают значения:

weights =-net.iw{l,1}

bias = net.b(l)

или для данного примера:

weights = -0.061482 -0.21938;

bias = [0.5888].

Mоделирование созданной сети с векторами входа из обучающего множества и вычисление ошибки осуществляется следующим образом:

А = sim(net, p)

err = t - sim(net,P),

равные для данного примера:

А = 0.028173 0.86719 0.2741 0.432

err = -0.028173 0.03282 0.2741 0.568.

 

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

Модель нейрона и архитектура сети. На рис. 6.27. показана радиальная базисная сеть с R входами. Функция активации для радиального базисного нейрона имеет вид:

radbas(n) = e^(n2). (6.14.)

Вход функции активации определяется как модуль разнос-ти вектора весов w и вектора входа р, умноженный на смещение b.

 

Рис.6.27- Радиальная

базисная сеть с R входами.

 

Радиальная базисная сеть состоит из двух слоев: скрытого радиального базисного слоя, име-ющего S1 нейронов, и выходного линейного слоя, имеющего S2 нейронов (рис.6.28).

Входами блока ||dist|| на этом рисунке являются вектор входа р и матрица весов IW1,1, выходом - вектор, состоящий из S1 элементов, которые определяются расстояниями между i- ым вектором входа р и i -ой вектор-строкой IW1,1 матрицы весов. Это вектор весов i -го нейрона. Выход блока ||dist|| умножается поэлементно на вектор смещения b1 и формирует вход функции активации. Тогда выход первого слоя может быть записан в следующей форме:

a{l}=radbas (net.prod (dist (net.IW{l, 1},p),net.b{l}))).

 

Рис.6.28. Слои радиальной базисной сети.

 

Создание сети. Для построения радиальных базисных сетей предназначены М-функции newrbe и niewrb. Для построения радиальных базисных сетей с нулевой ошибкой предназначена функция newrbe, которая вызывается следующим образом: net = newrbe(P, T, SPREAD).

Эта функция возвращает радиальную базисную сеть с такими весами и смещениями, что ее выходы T точно равны входам P. Параметр SPREAD- параметр влияния, определяющий долю влияния смещения.

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

В качестве примера приведем пример обучения и моделирования следующей радиальной сети:

P = [1 2 3 4 5 6 7 8];% Входной вектор

T = [0 1 2 3 2 1 2 1];выходной вектор

Аппроксимировать, т.е.найти весовые коэффициенты W и b, позволяющие по входной величине p найти величину a.

Определим первоначально параметр влияния: spread = 0.7;

Сформируем сеть: net = newgrnn(P,T,spread);

Смоделируем сеть по входному вектору P: A = sim(net,P)

Зададим входную величину p, по которой необходимо найти выходную величину а: p = 3.5; a = sim(net,p)

Результат: а=2.5, т.е. выходной сигнал распознается в соответствии с обучающей выборкой.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-06; просмотров: 323; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.175.70.29 (0.026 с.)