Notebook "нейронные сети" Глава 2
Вид материала | Документы |
С263. newrb С265. newrbe С267. newgrnn С269. newpnn С271. newc |
- Программа дисциплины «Теория нечетких множеств и нейронные сети» Для специальности, 567.45kb.
- Самостоятельная работа по прогнозированию экономических процессов на тему: нейронные, 148.65kb.
- Лекция 2 Лекция «Нейронные сети» Начнем с определения: Искусственные нейронные сети, 131.57kb.
- "Нейроновые сети ", 374.46kb.
- Нейронные сети как механизм представления лексико-семантической информации, 376.06kb.
- Программа, 39.37kb.
- Нейронные сети: алгоритм обратного распространения, 336.15kb.
- Предупреждение. Спасение. Помощь, 3059.76kb.
- Нейрокомпьютерная обработка сигналов и изображений, 184.71kb.
- Нейронные сети: основы теории / А. И. Галушкин. М. Горячая линия Телеком, 2010., 585.42kb.
С263. NEWRB
Создадим радиальную базисную сеть для следующей обучающей последовательности при средней квадратичной ошибки 0.1:
P = 0:3; T = [0.0 2.0 4.1 5.9];
net = newrb(P,T,0.1); net.layers{1}.size
gensim(net)
NEWRB, neurons = 0, SSE = 1.80858
ans =
3
Сформированная радиальная базисная сеть имеет 3 нейрона с функцией активации radbas.
Выполним моделирование сети для нового входа
figure(1), clf,
plot(P,T,'*r','MarkerSize',2,'LineWidth',2), hold on
V = sim(net,P); % Векторы входа из обучающего множества
plot(P,V,'ob','MarkerSize',8, 'LineWidth',2), grid on
P1 = 0.5:2.5; Y = sim(net,P1)
plot(P1,Y,'+k','MarkerSize',10, 'LineWidth',2)% Рис.11.21
Y =
1.0346 2.8817 5.5053
С265. NEWRBE
Создадим радиальную базисную сеть с нулевой ошибкой для следующей обучающей последовательности:
P = 0:3; T = [0.0 2.0 4.1 5.9];
net = newrbe(P,T); net.layers{1}.size
ans =
4
Сформированная радиальная базисная сеть с нулевой ошибкой имеет 4 нейрона в первом слое. Сравните с предыдущим случаем, когда число нейронов было равно трем.
Выполним моделирование сети для нового входа
figure(1), clf, plot(P,T,'*r','MarkerSize',2,'LineWidth',2)
hold on, grid on
V = sim(net,P); % Векторы входа из обучающего множества
plot(P,V,'ob','MarkerSize',8, 'LineWidth',2)
P1 = 0.5:2.5; Y = sim(net,P1)
plot(P1,Y,'+k','MarkerSize',10, 'LineWidth',2)% Рис.11.22
Y =
1.0346 2.8817 5.5053
С267. NEWGRNN
Создадим обобщенную регрессионную сеть с входами P и целями T:
P = 0:3; T = [0.0 2.0 4.1 5.9];
net = newgrnn(P,T); gensim(net)
Выполним моделирование сети для нового входа и построим график:
figure(1), clf, plot(P,T,'*r','MarkerSize',2,'LineWidth',2)
hold on, grid on
V = sim(net,P); % Векторы входа из обучающего множества
plot(P,V,'ob','MarkerSize',8, 'LineWidth',2)
P1 = 0.5:2.5; Y = sim(net,P1);
plot(P1,Y,'+k','MarkerSize',10, 'LineWidth',2)% Рис.11.25
Y = sim(net, 0:0.5:3)
Y =
Columns 1 through 4
0.8104 1.3759 2.1424 3.0300
Columns 5 through 7
3.9030 4.6345 5.1615
Из анализа результатов моделирования следует, что на границах интервала расхождения существенны.
Если уменьшить значение параметра влияния до 0.1, то мы получим аппроксимацию высокой точности
net = newgrnn(P,T,0.1); Y = sim(net, 0:0.5:3)
Y =
Columns 1 through 4
0.0000 1.0000 2.0000 3.0500
Columns 5 through 7
4.1000 5.0000 5.9000
С269. NEWPNN
Задача классификации определена множествами входа P и индексов класса Tc:
P = [1 2 3 4 5 6 7]; Tc = [1 2 3 2 2 3 1];
Индексы класса преобразуем в вектор целей и сформируем вероятностную нейронную сеть:
T = ind2vec(Tc);
net = newpnn(P,T); gensim(net)
Выполним моделирование сети, используя обучающее множество входов
Y = sim(net,P); Yc = vec2ind(Y)
Yc =
1 2 3 2 2 3 1
Самоорганизующиеся сети
С271. NEWC
Зададим массив входа P в виде четырех двухэлементных векторов:
P = [.1 .8 .1 .9; .2 .9 .1 .8];
Необходимо определить центры группирования (кластеризации) близких векторов. В этой задаче интуитивно ясно, что существует два таких центра. Поэтому сформируем слой Кохонена с двумя нейронами и определим диапазон расположения входных векторов в интервале [0 1].
net = newc([0 1; 0 1],2); gensim(net)
Выполним настройку параметров слоя, чтобы решить задачу для заданного входа
net = train(net,P);
TRAINR, Epoch 0/100
TRAINR, Epoch 25/100
TRAINR, Epoch 50/100
TRAINR, Epoch 75/100
TRAINR, Epoch 100/100
TRAINR, Maximum epoch reached.
Центры кластеризации расположены в точках
w = net.IW{1}
w =
0.8031 0.8031
0.1536 0.1969
Построим на плоскости входных векторов точки кластеризации и сами входные векторы
figure(1), clf,
plot(P(1,:),P(2,:)','+b','MarkerSize',8, 'Linewidth',2) % Рис.7.3
title(' Векторы входа'), xlabel('P(1,:)'), ylabel('P(2,:)')
hold on, grid on, axis([0 1,0 1])
plot(w(:,1), w(:,2)', 'or', 'MarkerSize',8, 'Linewidth',2)
Моделирование сети с определением близости проверяемых точек к центрам кластеризации можно реализовать следующим образом
P1 = [0.2:0.1:0.7; 0.2:0.1:0.7]
Y = sim(net,P1); Yc = vec2ind(Y)
P1 =
Columns 1 through 4
0.2000 0.3000 0.4000 0.5000
0.2000 0.3000 0.4000 0.5000
Columns 5 through 6
0.6000 0.7000
0.6000 0.7000
Yc =
2 2 2 1 1 1