Рефераты. Функциональные модели универсального нейрокомпьютера

                   Net1. OutSignals[1..NumberOf(OutSignals,Net1)],

                   Net2[1..K].OutSignals[1..NumberOf(OutSignals,Net2)],

                   Net3.OutSignals[1..NumberOf(OutSignals,Net3)]

         Parameters[1..NumberOf(Parameters,Net1)+

                   K*NumberOf(Parameters,Net2)+NumberOf(Parameters,Net3)] <=>

                   Net1. Parameters[1..NumberOf(Parameters,Net1)],

                   Net2[1..K].Parameters[1..NumberOf(Parameters,Net2)],

                   Net3.Parameters[1..NumberOf(Parameters,Net3)]

Cascad B

         Contents Net1, Net2[K], Net3

         InSignals[1..NumberOf(InSignals,Net1)] <=>

                   Net1. InSignals[1..NumberOf(InSignals,Net1)]

         OutSignals[1..NumberOf(OutSignals,Net3)] <=>

                   Net3.OutSignals[1..NumberOf(OutSignals,Net3)]

         Parameters[1..NumberOf(Parameters,Net1)+

                   K*NumberOf(Parameters,Net2)+NumberOf(Parameters,Net3)] <=>

                   Net1. Parameters[1..NumberOf(Parameters,Net1)],

                   Net2[1..K].Parameters[1..NumberOf(Parameters,Net2)],

                   Net[3].Parameters[1..NumberOf(Parameters,Net3)]

                   Net1. OutSignals[1..NumberOf(OutSignals,Net1)],

                   Net2[1..K].OutSignals[1..NumberOf(OutSignals,Net2)] <=>

                   Net2[1..K].InSignals[1..NumberOf(InSignals,Net2)],

                   Net3.InSignals[1..NumberOf(InSignals,Net3)]

Loop  C N

         Contents Net1, Net2[K], Net3

         InSignals[1..NumberOf(InSignals,Net1)] <=>

                   Net1. InSignals[1..NumberOf(InSignals,Net1)]

         OutSignals[1..NumberOf(OutSignals,Net3)] <=>

                   Net3.OutSignals[1..NumberOf(OutSignals,Net3)]

         Parameters[1..NumberOf(Parameters,Net1)+

                   K*NumberOf(Parameters,Net2)+NumberOf(Parameters,Net3)] <=>

                   Net1. Parameters[1..NumberOf(Parameters,Net1)],

                   Net2[1..K].Parameters[1..NumberOf(Parameters,Net2)],

                   Net[3].Parameters[1..NumberOf(Parameters,Net3)]

                   Net1. OutSignals[1..NumberOf(OutSignals,Net1)],

                   Net2[1..K].OutSignals[1..NumberOf(OutSignals,Net2)] <=>

                   Net2[1..K].InSignals[1..NumberOf(InSignals,Net2)],

                   Net3.InSignals[1..NumberOf(InSignals,Net3)]

                   Net3.OutSignals[1..NumberOf(OutSignals,Net3)] <=>

                   Net1. InSignals[1..NumberOf(InSignals,Net1)]

Частично сокращенное описание

Если описываемый блок должен иметь связи, устанавливаемые не так, как описано в разд. «Раздел описания связей», то соответствующий раздел описания блока может быть описан явно полностью или частично. Если какой либо раздел описан частично, то действует следующее правило: те сигналы, параметры и их связи, которые описаны явно, берутся из явного описания, а те сигналы, параметры и их связи, которые не фигурируют в явном описании берутся из описания по умолчанию. Так, в приведенном в разд. «Пример описания блоков» описании слоя точек ветвления BLay невозможно использование генерируемого по умолчанию подраздела установления связи выходных сигналов блока с входными сигналами подсетей. Возможно следующее сокращенное описание.

                                      {Слой точек ветвления}

Layer BLay( N,M : Long)

         Contents Branch(N)[M]                    {В состав слоя входит M точек ветвления}

         Connections

{Выходные сигналы в порядке первый с каждой точки ветвления, затем второй и т.д. }

                   OutSignals[1..N * M] <=> Branch[+:1..M].OutSignals[1..N]

End                                                                                                          {Конец описания слоя точек ветвления}

Пример сокращенного описания блоков

При описании блоков используются элементы, описанные в библиотеке Elements, приведенной в разд. "Пример описания элементов".

NetBibl SubNets Used Elements;                                 

{Библиотека подсетей, использующая библиотеку Elements}

                                      {Сигмоидный нейрон с произвольным сумматором на N входов}

Cascad NSigm(aSum : Block; N : Long; Char : Real)

{В состав каскада входит произвольный сумматор на N входов и сигмоидный нейрон с необучаемой характеристикой}

         Contents aSum(N), S_NotTrain(Char)

End

{Слой сигмоидных нейронов с произвольными сумматорами на N входов}

Layer Lay1(aSum : Block; N,M : Long; Char : Real)

         Contents Sigm: NSigm(aSum,N,Char)[M]  {В состав слоя входит M нейронов}

End

{Слой точек ветвления}

Layer BLay( N,M : Long)

         Contents Branch(N)[M]          {В состав слоя входит M точек ветвления}

         Connections

{Выходные сигналы в порядке первый с каждой точки ветвления, затем второй и т.д. }

                   OutSignals[1..N * M] <=> Branch[+:1..M].OutSignals[1..N]

End

{Полный слой сигмоидных нейронов с произвольными сумматорами на N входов}

Cascad FullLay(aSum : Block; N,M : Long; Char : Real)

         Contents BLay1(M,N), Lay1(aSum,N,M,Char) {Слой точек ветвления и слой нейронов}

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)

End

{Полносвязная сеть с M сигмоидными нейронами на К тактов функционирования с невыделенным входным слоем на M сигналов. Все параметры ограничены по абсолютному значению единицей}

Loop Circle(aSum : Block; Char : Real; M, K : Long) K

         Contents

                   FullLay(aSum,M,M,Char)

         ParamDef DefaultType -1 1

End

{Полносвязная сеть с М сигмоидными нейронами на К тактов функционирования с выделенным входным слоем на N сигналов.

Cascad Net2: (aSum : Block; Char : Real; M, K, N : Long)

         Contents

                   In: FullLay(aSum,N,M,Char),             {Входной слой}

                   Net: Circle(aSum,Char,M,K)                       {Полносвязная сеть}

End

Cascad Hopf(N : Long)                                                         {Нейрон сети Хопфилда из N нейронов}

         Contents Sum(N),Sign_Easy                               {Сумматор и пороговый элемент}

End

{Слой нейронов Хопфилда}

Layer HLay(N : Long)

         Contents Hop: Hopf(N)[N]               {В состав слоя входит N нейронов}

End

{Сеть Хопфилда из N нейронов}

Until Hopfield(N : Long)  InSignals=OutSignals

         Contents BLay(N,N),HLay(N) {Слой точек ветвления и слой нейронов}

End

End NetLib

4.4.               Запросы к компоненту сеть

В данном разделе главы рассмотрены все запросы, исполняемые компонентом сеть. Прежде чем приступать к описанию стандарта запросов компонента сеть следует выделить выполняемые им функции. Что должен делать компонент сеть? Очевидно, что прежде всего он должен уметь выполнять такие функции, как функционирование вперед (работа обученной сети) и назад (вычисление вектора поправок или градиента для обучения), модернизацию параметров (обучение сети) и входных сигналов (обучение примера). Кроме того компонент сеть должен уметь читать сеть с диска и записывать ее на диск. Необходимо так же предусмотреть возможность создавать сеть и редактировать ее структуру. Эти две функциональные возможности не связаны напрямую с работой (функционированием и обучением) сети. Таким образом, необходимо выделить сервисную компоненту – редактор сетей. Компонент редактор сетей позволяет создавать и изменять структуру сети, модернизировать обучаемые параметры в «ручном» режиме.

4.4.1.                       Запросы к компоненту сеть

Запросы к компоненту сеть можно разбить на пять групп:

1.     Функционирование.

Страницы: 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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.