Синтез сети

Для создания нейронной сети GRNN предназначена М-функция newgrnn. Зададим следующее обучающее множество векторов входа и целей и построим сеть GRNN:

P = [4 5 6];

T = [1.5 3.6 6.7];

net = newgrnn(P,T);

net.layers{1}.size % Число нейронов в скрытом слое

ans = 3

Эта сеть имеет 3 нейрона в скрытом слое. Промоделируем построенную сеть сначала для одного входа, а затем для последовательности входов из интервала [4 7]:

p = 4.5;

v = sim(net,p);

p1 = 4:0.1:7;

v1 = sim(net,p1);

plot(P,T,'*k',p,v,'ok',p1,v1,'–k','MarkerSize',10,'LineWidth',2)

Результат показан на рис. 6.11.

Рис. 6.11

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

Демонстрационная программа demogrn1 иллюстрирует, как сети GRNN решают задачи аппроксимации. Определим обучающее множество в виде массивов Р и Т.

P = [1 2 3 4 5 6 7 8];

T = [0 1 2 3 2 1 2 1];

Для создания сети GRNN используется функция newgrnn. Примем значение параметра влияния SPREAD немного меньшим, чем шаг задания аргумента функции (в данном случае 1), чтобы построить аппроксимирующую кривую, близкую к заданным точкам. Как мы уже видели ранее, чем меньше значение параметра SPREAD, тем ближе точки аппроксимирующей кривой к заданным, но тем менее гладкой является сама кривая:

spread = 0.7;

net = newgrnn(P,T,spread);

net.layers{1}.size % Число нейронов в скрытом слое

ans = 8

A = sim(net,P);

plot(P,T,'*k','markersize',10)

hold on,

plot(P,A,'ok','markersize',10);

Результат показан на рис. 6.12.

Рис. 6.12

Моделирование сети для диапазона значений аргумента позволяет увидеть всю
аппроксимирующую кривую, причем возможна экстраполяция этой кривой за пределы области ее определения. Для этого зададим интервал аргумента в диапазоне [–1 10]:

P2 = –1:0.1:10;

A2 = sim(net,P2);

plot(P2,A2,'–k','linewidth',2)

hold on,

plot(P,T,'*k','markersize',10)

Результат показан на рис. 6.13.

Рис. 6.13

Сформированная сеть GRNN использует всего 8 нейронов в скрытом слое и весьма успешно решает задачу аппроксимации и экстраполяции нелинейной зависимости, восстанавливаемой по экспериментальным точкам.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: