Исследование свойств сетей Хопфилда и поиска максимума
Лабораторная работа, 15 Марта 2014, автор: пользователь скрыл имя
Краткое описание
Цель: исследовать основные свойства сетей Хопфилда и поиска максимума.
Задание:
1. Создать программный продукт в любой удобной среде визуального программирования, реализующий нейронную сеть вида:
Формирование синаптических весов сети
Вложенные файлы: 1 файл
ЛР 6 НСТ.docx
— 49.18 Кб (Скачать файл)Министерство образования и науки Украины
Донбасская государственная машиностроительная академия
Лабораторная работа № 6
«Исследование свойств сетей Хопфилда и поиска максимума»
по дисциплине:
«Нейросетевые технологии»
Краматорск 2014
Цель: исследовать основные свойства сетей Хопфилда и поиска максимума.
Задание:
1. Создать программный продукт в любой удобной среде визуального программирования, реализующий нейронную сеть вида:
Формирование синаптических весов сети:
Функционирование сети:
где wij – i-й синаптический вес j-го нейрона,
xi – i-й элемент входного сигнала сети,
yj – выход j-го нейрона,
M – количество элементов (размерность) входного сигнала, количество нейронов в сети.
f – активационная функция (линейная с насыщением).
Число синапсов в сети: M(M – 1). Размерности входных и выходных сигналов совпадают.
Итерации сети завершаются после того, как выходные сигналы нейронов перестают меняться.
Лситинг:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,y,s,yn:array[1..3] of Real;
w:array[1..3,1..3] of Real;
T,l:Real;
i,j:Integer;
label
GotoLabel;
begin
x[1]:=StrToFloat(Edit1.Text);
x[2]:=StrToFloat(Edit2.Text);
x[3]:=StrToFloat(Edit3.Text);
T:=1; l:=0.5;
s[1]:=0;s[2]:=0;s[3]:=0;
for i:=1 to 3 do begin
yn[i]:=x[i];
end;
Gotolabel: for i:=1 to 3 do begin
for j:=1 to 3 do
if i=j then w[i,j]:=1 else w[i,j]:=-1/3;
end;
for i:=1 to 3 do begin
for j:=1 to 3 do
s[i]:=s[i]+yn[j]*w[i,j];
end;
for i:=1 to 3 do begin
for j:=1 to 3 do
if s[i]<T then y[i]:=0 else
begin if (s[i]>T)and (s[i]<l)
then y[i]:=(s[i]-T)/l else y[i]:=1;
end;
end;
if (y[1]<>yn[1]) or (y[2]<>yn[2]) or (y[3]<>yn[3]) then
begin
yn[1]:= y[1];
yn[2]:=y[2];
yn[3]:=y[3];
goto Gotolabel;
end;
Edit6.Text:=floattostr(y[1]);
Edit7.Text:=floattostr(y[2]);
Edit8.Text:=floattostr(y[3]);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Вывод: в ходе проведения лабораторной работы мы исследовали основные свойства сетей Хопфилда и поиска максимума.