зелень / 4лаба1
.docМинистерство образования и науки,молодежи и спорта Украины
Государственное высшее учебное заведение Украинский государственный химики-технологический университет
Лабораторная работа №4 «Проектирование нейронной сети с заданной структурой»
Выполнила : ст.группы 4-СКС-5 Пономарёв В.Н. Проверили: Зеленцов Д.Г Новикова Л.В.
Днепропетровск 2012
14. Найти выходной вектор нейронной сети со структурой 2 – 3 – 4 – 3 для входного вектора . Значения весов:
для 1-го слоя, для 2-го слоя и для 3-го.
Функции активности:
1-го слоя - линейная: ;
2-го слоя – логистическая: ;
3-го слоя- пороговая: .
Код программы:
#include<iostream.h>
#include<conio.h>
#include<math.h>
float x1[3]={1.0,-0.4,1.3};
float x2[3],x3[4],x4[4];
float v1[3][3]={-0.3, -1.5, 0.6,
0.7, 1.8, 1.6,
1.1, -1.2, 0.5};
float v2[3][4]={0.9, 0.5, 0.5,
-0.5, 0.5, 1.0,
0.5, -1.0, 0.7,
0.9, -0.5, -0.2};
float v3[4][3]={1.8, 1.2, -0.6,
0.2, -1.4, 1.7,
1.1, 0.4, 1.6,
-1.6, -0.3, 0.5
0.4, 0.2, -1.6};
void main()
{
clrscr();
for(int i=0;i<3;i++)
{
x2[i+1]+=x1[i+1]*1.5;
}
for( i=0;i<3;i++)
{
x2[i+1]=x2[i+1]*2.5;
}
x2[0]=1.0;
cout<<"1 vector = {"<<x2[1] <<", "<<x2[2]<<", "<< x2[3]<<"}"<<endl;
for( i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
x3[i+1]+=v2[j][i]*x2[j];
}}
for( i=0;i<4;i++)
{
x3[i+1]=1/(1+exp(x3[i+1]*-1));
}
x3[0]=1.0;
cout<<"2 vector = {"<<x3[1] <<", "<<x3[2]<<", "<<x3[3]<<", "<<x3[4]<<"}"<<endl;
for(int i=0;i<3;i++)
{
x4[i+1]+=x3[i+1]*1.5;
}
for( i=0;i<3;i++)
{
x4[i+1]=x4[i+1]*1.75;
}
x4[0]=1.0;
cout<<"3 vector = {"<<x4[1]<<", "<<x4[2] <<", "<<x4[3]<<"}"<<endl;
getch();
}
Результат: