s
Sesiya.ru

Лабораторная: Знакомство с нейронными сетями

Информация о работе

Тема
Лабораторная: Знакомство с нейронными сетями
Тип Лабораторная работа
Предмет Коммуникации
Количество страниц 6
Язык работы Русский язык
Дата загрузки 2014-09-25 09:00:44
Размер файла 219.28 кб
Количество скачиваний 27
Скидка 15%

Поможем подготовить работу любой сложности

Заполнение заявки не обязывает Вас к заказу


Скачать файл с работой

Помогла работа? Поделись ссылкой

СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ
им. А. А. УГАРОВА
(филиал) федерального государственного автономного
образовательного учреждения высшего профессионального образования
«Национальный исследовательский технологический университет «МИСиС»
Кафедра АИСУ



ЛАБОРАТОРНАЯ РАБОТА №3

по дисциплине: «Интеллектуальные системы и технологии»
на тему:
«Знакомство с нейронными сетями»



Выполнил:
ст. гр. ИП-11-1д

Проверил:






Старый Оскол, 2014


Лабораторная работа № 3
Знакомство с нейронными сетями
3.1 Цель работы
Ознакомление со структурой нейронных сетей. Получение навыка программирования нейронных сетей.
Порядок выполнения лабораторной работы
Написать программу на С++ моделирующую двухслойную нейронную сеть структуры согласно варианту.
№ варианта Количество входов Количество скрытых нейронов Количество выходов
Функция активации в скрытом слое Функция активации в выходном слое
6 3 4 3 Сигмоидная Линейная




x1y1


x2y2


x3y3

Входной слой Выходной слой

Промежуточный слой







Код программы:
#include"stdafx.h"
#include"iostream"
#include"math.h"
#include"stdlib.h"

usingnamespacestd;

doublefsigmoid(double s) {
doublef,a;
a = 1;
f = 1/(1 + exp(-a*s));
return f;
}

doublefline(double s) {
doublef,k;
k = 10;
f = k*s;
return f;
}

int main()
{
setlocale(LC_ALL, "Russian");

double a[1][3],b[3][4],c[1][4],d[1][4],e[4][3],f[1][3],sum;
doublemin,max;
min = -1.00; max = 1.00;

cout<<"Введите первый входной сигнал (значения от 1 до 10):"<<endl;
for (inti = 1; i<= 3 ; i++) {
cout<<"x"<<i<<"= ";
cin>> a[1][i];
}

cout<<endl;
cout<<"Рандомные значения весовых коэффициентов:"<<endl;
for (inti = 1; i<= 3 ; i++) {
for (int j = 1; j <= 4 ; j++) {
b[i][j] = (double)rand()/(double)RAND_MAX*(max-min)+min;
cout<<"b["<<i<<"]["<< j <<"]= "<< b[i][j] <<endl;
}
cout<<endl;
}

cout<<"Взвешенные суммы для нейронов скрытого слоя:"<<endl;
for (inti = 1; i<= 1; i++) {
for(int j = 1; j <= 4; j++){
c[i][j] = 0;
for (int k = 1; k <= 3; k++)
c[i][j] += a[i][k] * b[k][j];
cout<<"c["<<i<<"]["<< j <<"]= "<< c[i][j] <<endl;
}
cout<<endl;
}

cout<<"Активация скрытого слоя:"<<endl;
for (inti = 1; i<= 4 ; i++) {
d[1][i] = c[1][i] + ((double)rand()/(double)RAND_MAX*(max-min)+min);
fsigmoid(d[1][i]);
cout<<"d[1]["<<i<<"]= "<< d[1][i] <<endl;
}
cout<<endl;
cout<<"Рандомные значения весовых коэффициентов для второго слоя:"<<endl;
for (inti = 1; i<= 4 ; i++) {
for (int j = 1; j <= 3 ; j++) {
e[i][j] = (double)rand()/(double)RAND_MAX*(max-min)+min;
cout<<"e["<<i<<"]["<< j <<"]= "<< e[i][j] <<endl;
}
cout<<endl;
}

cout<<"Взвешенные суммы для нейронов второго слоя:"<<endl;
for (inti = 1; i<= 1; i++) {
for(int j = 1; j <= 3; j++){
f[i][j] = 0;
for (int k = 1; k <= 4; k++)
f[i][j] += d[i][k] * e[k][j];
cout<<"f["<<i<<"]["<< j <<"]= "<< f[i][j] <<endl;
}
cout<<endl;
}

cout<<"Активациявторогослоя:"<<endl;
for (inti = 1; i<= 3 ; i++) {
f[1][i] += (double)rand()/(double)RAND_MAX*(max-min)+min;
fline(f[1][i]);
cout<<"y"<<i<<"= "<< f[1][i] <<endl;
}

system("pause");
}



Графики:





С увеличением суммы:

© Copyright 2012-2020, Все права защищены.