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

Лабораторная работа по предмету «Коммуникации»
Информация о работе
  • Тема: Лабораторная: Знакомство с нейронными сетями
  • Количество скачиваний: 32
  • Тип: Лабораторная работа
  • Предмет: Коммуникации
  • Количество страниц: 6
  • Язык работы: Русский язык
  • Дата загрузки: 2014-09-25 09:00:44
  • Размер файла: 219.28 кб
Помогла работа? Поделись ссылкой
Информация о документе

Документ предоставляется как есть, мы не несем ответственности, за правильность представленной в нём информации. Используя информацию для подготовки своей работы необходимо помнить, что текст работы может быть устаревшим, работа может не пройти проверку на заимствования.

Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»

Можно ли скачать документ с работой

Да, скачать документ можно бесплатно, без регистрации перейдя по ссылке:

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



ЛАБОРАТОРНАЯ РАБОТА №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");
}



Графики:





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