Пример feedforward нейронной сети


В этом примере лежит весь глубокий смысл нейронных сетей.

Для создание такого вида сети от вас потребуется всего лишь пару минут.

 

% Зададим первое множество значений кластера №1.

% Центром этого кластера является точка (2;0) с разбросом от центра rand(1,50) и колличеством отсчетов 50.

% Т.е x1 и y1 будет являться массивом размерность 1х50

x1=2+rand(1,50)

y1=0+rand(1,50)

plot(x1,y1,'or')

% Также зададим второе множество кластера №2 с центром (-2;0)

x2=-2+rand(1,50)

y2=0+rand(1,50)

plot(x2,y2,'ob')

% Далее зададим третье множество кластера №3 с центром (0;2)

x3=0+rand(1,50)

y3=2+rand(1,50)

plot(x3,y3,'oy')

% Далее зададим третье множество кластера №4 с центром (0;2)

x4=0+rand(1,50)

y4=-2+rand(1,50)

plot(x4,y4,'og')

% Посмотрим что у нас получилось на figure (1)

figure (1)

hold on

plot(x1,y1,'or')

plot(x2,y2,'ob')

plot(x3,y3,'oy')

plot(x4,y4,'og')

grid on

hold off

4 кластера feedforward нейронной сети

% Зададим цели четырех кластеров, т.е. какое значение будет выдавать

% нейронная сеть при симуляции

T1(1:50)=1;

T2(1:50)=2;

T3(1:50)=3;

T4(1:50)=4;

% Соединим все цели кластеров

T(1:50)=T1;

T(51:100)=T2;

T(101:150)=T3;

T(151:200)=T4;

% Соединим всю базу знаний для нейронной системы в одну матрицу,

% а именно соедимим x

x(1:50)=x1;

x(51:100)=x2;

x(101:150)=x3;

x(151:200)=x4;

% соедимим y

y(1:50)=y1;

y(51:100)=y2;

y(101:150)=y3;

y(151:200)=y4;

% и все это соединим в z

z(1,1:200)=x

z(2,1:200)=y

% проверим получившиеся размеры

size(T)

size(z)

% Создадим сруктуру feedforward нейронной сети, а именно создадим

% трехслойную нейронную систему с 10-ю нейронами на первом слое, 2-мя

% нейронами на втором слое и 1-ним нейроном на третьем слое.

% z - база знаний спектра

% T - цель сети

% logsig, tansig, purelin - вид активации слоя

% 1-ый слой logsig, 2-ой слой logsig, 3-ий слой purelin

net = newff(z,T,[10,2],{'logsig','logsig'})

% Теперь обучим созданную сеть

net = train(net,z,T);

4 кластера feedforward нейронной сети

% И просимулируем (проверим) сеть на спектрах с помощью которых мы обучали сеть

% Проверка первого кластера

a=sim(net,z(:,1:50))

100% результат

% Проверка второго кластера

a=sim(net,z(:,51:100))

100% результат

% Проверка третьего кластера

a=sim(net,z(:,101:150))

100% результат

% Проверка четвертого кластера

a=sim(net,z(:,151:200))

100% результат

4 кластера feedforward нейронной сети

Максимальная ошибка 0.0002

Также можете проверить систему на других реализациях, результат системы будет зависеть от расстояния между вектором, который вы подаете и центром кластера.

 

% Зададим первое множество значений кластера №1.

% Центром этого кластера является точка (2;0) с разбросом от центра rand(1,50) и колличеством отсчетов 50.

% Т.е x1 и y1 будет являться массивом размерность 1х50

x1=2+rand(1,50)

y1=0+rand(1,50)

plot(x1,y1,'or')

% Также зададим второе множество кластера №2 с центром (-2;0)

x2=-2+rand(1,50)

y2=0+rand(1,50)

plot(x2,y2,'ob')

% Далее зададим третье множество кластера №3 с центром (0;2)

x3=0+rand(1,50)

y3=2+rand(1,50)

plot(x3,y3,'oy')

% Далее зададим третье множество кластера №4 с центром (0;2)

x4=0+rand(1,50)

y4=-2+rand(1,50)

plot(x4,y4,'og')

% Посмотрим что у нас получилось на figure (1)

figure (1)

hold on

plot(x1,y1,'or')

plot(x2,y2,'ob')

plot(x3,y3,'oy')

plot(x4,y4,'og')

grid on

hold off

% Зададим цели четырех кластеров, т.е. какое значение будет выдавать

% нейронная сеть при симуляции

T1(1:50)=1;

T2(1:50)=2;

T3(1:50)=3;

T4(1:50)=4;

% Соединим все цели кластеров

T(1:50)=T1;

T(51:100)=T2;

T(101:150)=T3;

T(151:200)=T4;

% Соединим всю базу знаний для нейронной системы в одну матрицу,

% а именно соедимим x

x(1:50)=x1;

x(51:100)=x2;

x(101:150)=x3;

x(151:200)=x4;

% соедимим y

y(1:50)=y1;

y(51:100)=y2;

y(101:150)=y3;

y(151:200)=y4;

% и все это соединим в z

z(1,1:200)=x

z(2,1:200)=y

% проверим получившиеся размеры

size(T)

size(z)

% Создадим сруктуру feedforward нейронной сети, а именно создадим

% трехслойную нейронную систему с 10-ю нейронами на первом слое, 2-мя

% нейронами на втором слое и 1-ним нейроном на третьем слое.

% z - база знаний спектра

% T - цель сети

% logsig, tansig, purelin - вид активации слоя

% 1-ый слой logsig, 2-ой слой logsig, 3-ий слой purelin

net = newff(z,T,[10,2],{'logsig','logsig'})

% Теперь обучим созданную сеть

net = train(net,z,T);

% И просимулируем (проверим) сеть на спектрах с помощью которых мы обучали сеть

a=sim(net,z)

 

Поэтому из выше всего сказанного можно сделать вывод, что вам необходимо просмотреть много дополнительной информации и альтернатив!


Добавить комментарий


Защитный код
Обновить

Сайт создан в Seo-Dubna.ru