OutSignals M {Один выходной сигнал на нейрон}
{Число параметров определяется как взятое M раз число параметров нейронов}
Parameters NumberOf(Parameters, Ne)
Connections
{Входные сигналы – слою точек ветвления}
InSignals[1..N]<=> Br.InSignals[1..N]
{Выходные сигналы нейронов - выходные сигналы сети}
OutSignals[1..M] <=> Ne.OutSignals[1..M]
{Параметры слоя – параметры нейронов}
Parameters[1..NumberOf(Parameters, Ne)] <=>
Ne.Parameters[1.. NumberOf(Parameters, Ne)]
{Выход слоя точек ветвления – вход слоя нейронов}
Br.OutSignals[1..N * M] <=> Ne.InSignals[1..N * M]
End {Конец описания слоя сигмоидных нейронов с произвольным сумматором}
{Сеть с сигмоидными нейронами и произвольными сумматорами, содержащая
Input – число нейронов на входном слое;
Output – число нейронов на выходном слое (число выходных сигналов);
Hidden – число нейронов на H>0 скрытых слоях;
N – число входных сигналов
все входные сигналы подаются на все нейроны входного слоя}
Cascad Net1(aSum : Block; Char : Real; Input, Output, Hidden, H, N : Long)
{Под тремя разными псевдонимами используется одна и та же подсеть с разными параметрами}
Contents
In: FullLay(aSum,N,Input,Char),
Hid1: FullLay(aSum,Input,Hidden,Char)
Hid2: FullLay(aSum,Hidden,Hidden,Char)[H-1] {Пусто при H=1}
Out: FullLay(aSum,Hidden,Output,Char)
InSignals N {Число входных сигналов – N}
OutSignals Output {Один выходной сигнал на нейрон}
{Число параметров определяется как сумма чисел параметров всех подсетей}
Parameters NumberOf(Parameters, In)+ NumberOf(Parameters, Hid1)+
(H-1) * NumberOf(Parameters, Hid2)+ NumberOf(Parameters, Out)
{Входные сигналы – входному слою}
InSignals[1..N]<=> In.InSignals[1..N]
{Выходные сигналы нейронов - с выходного слоя сети}
OutSignals[1..Output] <=> Out.OutSignals[1.. Output]
{Параметры сети последовательно всем подсетям}
Parameters[1..NumberOf(Parameters,In)] <=>
In.Parameters[1.. NumberOf(Parameters, In)]
Parameters[NumberOf(Parameters,In)+1..NumberOf(Parameters,In)+
NumberOf(Parameters, Hid1)] <=>
Hid1.Parameters[1.. NumberOf(Parameters, Hid1)]
Parameters[NumberOf(Parameters,In)+ NumberOf(Parameters, Hid1)]+1
..NumberOf(Parameters,In)+NumberOf(Parameters, Hid1)+
(H-1) * NumberOf(Parameters, Hid2)] <=>
Hid2[1..H-1].Parameters[1.. NumberOf(Parameters, Hid2)]
Parameters[NumberOf(Parameters,In)+ NumberOf(Parameters, Hid1)]+
(H-1) * NumberOf(Parameters, Hid2)+1..NumberOf(Parameters,In)+
NumberOf(Parameters,Hid1)+(H-1)*NumberOf(Parameters,Hid2)+
NumberOf(Parameters, Out)] <=>
Out.Parameters[1.. NumberOf(Parameters, Out)]
{Передача сигналов от слоя к слою}
{От входного к первому скрытому слою}
In.OutSignals[1..Input] <=> Hid1.InSignals[1..Input]
{От первого скрытого слоя}
Hid1.OutSignals[1..Hidden] <=> Hid2[1].InSignals[1..Hidden]
{Между скрытыми слоями. При H=1 эта запись пуста}
Hid2[1..H-2].OutSignals[1.. Hidden] <=> Hid2[2..H-1].InSignals[1.. Hidden]
{От скрытых – к выходному}
Hid2[H-1].OutSignals[1.. Hidden] <=> Out.InSignals[1.. Hidden]
End
{Полносвязная сеть с M сигмоидными нейронами на К тактов функционирования с невыделенным входным слоем на M сигналов}
Loop Circle(aSum : Block; Char : Real; M, K : Long) K
Net: FullLay(aSum,M,M,Char)
InSignals M {Число входных сигналов – N}
{Число параметров определяется слоем FullLay}
Parameters NumberOf(Parameters, Net)
InSignals[1..M]<=> Net.InSignals[1..M] {Входные сигналы – на вход слоя}
{Выходные сигналы – на выход слоя}
OutSignals[1..M] <=> Net.OutSignals[1.. M]
{Все параметры слою}
Parameters[1..NumberOf(Parameters,Net)] <=>
Net.Parameters[1.. NumberOf(Parameters,Net)]
Net.OutSignals[1..M] <=> Net.InSignals[1..M] {Замыкаем выход на вход}
{Полносвязная сеть с М сигмоидными нейронами на К тактов функционирования с выделенным входным слоем на N сигналов. Все входные сигналы подаются на вход каждого нейрона входного слоя. Все параметры ограничены по абсолютному значению единицей}
Cascad Net2: (aSum : Block; Char : Real; M, K, N : Long)
In: FullLay(aSum,N,M,Char), {Входной слой}
Net: Circle(aSum,Char,M,K) {Полносвязная сеть}
Parameters NumberOf(Parameters, In)+ NumberOf(Parameters, Net)
ParamDef DefaultType -1 1
InSignals[1..N]<=> In.InSignals[1..N] {Входные сигналы – входному слою}
Parameters[1..NumberOf(Parameters, In)] <=>
Parameters[NumberOf(Parameters,In)+1..
NumberOf(Parameters,In)+NumberOf(Parameters, Net)]
<=> Net.Parameters[1.. NumberOf(Parameters, Net)]
In.OutSignals[1..M] <=> Net.InSignals[1..M] {От входного к циклу}
Net.OutSignals[1..M] <=> Net.InSignals[1..M] {От первого скрытого слоя}
{Нейрон сети Хопфилда из N нейронов}
Cascad Hopf(N : Long)
Contents Sum(N),Sign_Easy {Сумматор и пороговый элемент}
OutSignals 1 {Число выходных сигналов – 1}
Parameters NumberOf(Parameters,Sum(N)) {Число параметров – N}
InSignals[1..N]<=> Sum.InSignals[1..N] {Входные сигналы – сумматору}
{Выходной сигнал нейрона – выходной сигнал порогового элемета}
OutSignals <=> Sign_Easy.OutSignals
{Параметры нейрона – параметры сумматора}
Parameters[1..NumberOf(Parameters, Sum(N))] <=>
Sum.Parameters[1.. NumberOf(Parameters, Sum(N))]
{Выход сумматора на вход порогового элемента}
Sum.OutSignals <=> Sign_Easy.InSignals
{Слой нейронов Хопфилда}
Layer HLay(N : Long)
Contents Hop: Hopf(N)[N] {В состав слоя входит N нейронов}
InSignals N * N {N нейронов по N входных сигналов}
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76