Учебное пособие по курсу «Нейроинформатика»
Шрифт:
Net: Circle(aSum,Char,M,K) {Полносвязная сеть}
InSignals N {Число входных сигналов – N}
OutSignals M {Один выходной сигнал на нейрон}
{Число параметров определяется как сумма чисел параметров всех подсетей}
Parameters NumberOf(Parameters, In)+NumberOf(Parameters, Net)
ParamDef DefaultType -1 1
Connections
InSignals[1..N]<=> In.InSignals[1..N] {Входные
сигналы – входному слою}
{Выходные сигналы нейронов - с выходного слоя сети}
OutSignals[1..M]<=> Net.OutSignals[1.. M]
{Параметры сети последовательно всем подсетям}
Parameters[1..NumberOf(Parameters, In)] <=> In.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] {От первого скрытого слоя}
End
{Нейрон сети Хопфилда из N нейронов}
Cascad Hopf(N : Long)
Contents Sum(N),Sign_Easy {Сумматор и пороговый элемент}
InSignals N {Число входных сигналов – N}
OutSignals 1 {Число выходных сигналов – 1}
Parameters NumberOf(Parameters,Sum(N)) {Число параметров – N}
Connections
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
End
{Слой нейронов Хопфилда}
Layer HLay(N : Long)
Contents Hop: Hopf(N)[N] {В
состав слоя входит N нейронов}
InSignals N * N {N нейронов по N входных сигналов}
OutSignals N {Один выходной сигнал на нейрон}
Parameters N * NumberOf(Parameters, Hop)
Connections
{NumberOf(InSignals, Hop) сигналов первому нейрону, и т.д.}
InSignals[1..Sqr(N)] <=> Hop[1..N].InSignals[1..N]
{Выходные сигналы нейронов - выходные сигналы сети}
OutSignals[1..N]<=> Hop[1..N].OutSignals
{Параметы слоя – параметры нейронов}
Parameters[1..N *NumberOf(Parameters, Hop)] <=> Hop[1..N].Parameters[1..NumberOf(Parameters, Hop)]
End
{Сеть Хопфилда из N нейронов}
Until Hopfield(N : Long) InSignals=OutSignals
Contents BLay(N,N),HLay(N) {Слой точек ветвления и слой нейронов}
InSignals N {Число входных сигналов – N}
OutSignals N {Число выходных сигналов – N}
Parameters N * NumberOf(Parameters,HLay(N)) {Число параметров – N*N}
Connections
{Входные сигналы – точкам ветвления}
InSignals[1..N]<=> BLay.InSignals[1..N]
{Выходные сигналы нейронов – выходные сигналы сети}
OutSignals[1..N]<=> HLay.OutSignals[1..N]
Parameters[1..N*NumberOf(Parameters, HLay(N))] <=> HLay.Parameters[1..N*NumberOf(Parameters, HLay(N))]
{Выход точек ветвления на вход нейронов}
BLay.OutSignals[1..Sqr(N)] <=> HLay.InSignals[1..Sqr(N)]
{Замыкаем конец на начало}
HLay.OutSignals[1..N] <=> BLay.InSignals[1..N]
End
End NetLib
NetWork HopUsed SubNets; {Сеть Хопфилда на пять нейронов}
Поделиться с друзьями: