Kniga-Online.club
» » » » Е. Миркес - Учебное пособие по курсу «Нейроинформатика»

Е. Миркес - Учебное пособие по курсу «Нейроинформатика»

Читать бесплатно Е. Миркес - Учебное пособие по курсу «Нейроинформатика». Жанр: Программирование издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

  Long I, J, K; {I,J,K – переменные типа длинное целое }

  Real R; {R – действительное}

  Vector W; {Массив для накопления промежуточных величин}

 Begin

  For I = 1 To N Do W[I] = 0;

  K = 1; {K – номер обрабатываемого параметра}

  For I = 1 To N Do

   For J = I To N Do Begin

    {Поправка к параметру равна сумме ранее вычисленной поправки и произведения поправки к входному сигналу на произведение сигналов, прошедших через этот параметр при прямом функционировании}

    Back.Parameters[K] = Back.Parameters[K] + Back.OutSignals[1] * InSignals[I] *InSignals[J];

    R = Back.OutSignals[1] * Parameters[K];

    W[I] = W[I] + R * InSignals[J];

    W[J] = W[J] + R * InSignals[I];

    K = K + 1

   End;

  For I = 1 To N Do

   {Поправка к входному сигналу равна произведению поправки к выходному сигналу на сумму всех параметров, через которые этот сигнал проходил при прямом функционировании, умноженных на другие входные сигналы, так же прошедшие через эти параметры при прямом функционировании}

   Back.InSignals[1] = W[I]

 End {Конец описания прямого функционирования}

End Square_Sum {Конец описания квадратичного сумматора}

Element Square_Sum_Plus(N: Long) {Неоднородный квадратичный сумматор на N входов}

 InSignals N {N входных сигналов}

 OutSignals 1 {Один выходной сигнал}

 Parameters (Sqr(N) + 3 * N) Div 2 + 1 {N(N+3)/2+1 весов связей}

 Forw {Начало описания прямого функционирования}

 Var {Описание локальных переменных}

  Long I, J, K; {I,J,K – переменные типа длинное целое }

  Real R; {R – действительное – для накопления суммы}

 Begin

  K = 2 * N+1; {K – номер обрабатываемого параметра}

  R = Parameters[Sqr(N) + 3 * N) Div 2 + 1];

  For I = 1 To N Do Begin

   R = R + InSignals[I] * Parameters[I] + Sqr(InSignals[I]) * Parameters[N + I];

   For J = I + 1 To N Do Begin

    R = R + InSignals[I] * InSignals[J] * Parameters[K];

    K = K + 1

   End

  End

  {Выходной сигнал равен сумме всех попарных произведений входных сигналов, умноженных на соответствующие параметры, плюс сумме всех входных сигналов умноженных на соответствующие параметры, плюс последний параметр}

  OutSignals[1] = R

 End {Конец описания прямого функционирования}

 Back {Начало описания обратного функционирования}

 Var {Описание локальных переменных}

  Long I, J, K; {I,J,K – переменные типа длинное целое}

  Real R; {R – действительное – для накопления суммы}

  Vector W; {Массив для накопления промежуточных величин}

 Begin

   For I = 1 To N Do W[I] = 0;

   K = 2 * N + 1; {K – номер обрабатываемого параметра}

   For I = 1 To N Do Begin

    Back.Parameters[I] = Back.Parameters[I] + Back.OutSignals[1] * InSignals[I];

    Back.Parameters[N + I] = Back.Parameters[N + I] + Back.OutSignals[1] * Sqr(InSignals[I]);

    W[I] = W[I] + Back.OutSignals[1] * (Parameters[I] + 2 * Parameters[N + I] * InSignals[I])

    For J = I + 1 To N Do Begin

     Back.Parameters[K] = Back.Parameters[K] + Back.OutSignals[1] * InSignals[I] *InSignals[J];

     R = Back.OutSignals[1] * Parameters[K];

     W[I] = W[I] + R * InSignals[J];

     W[J] = W[J] + R * InSignals[I];

     K = K + 1

    End

   End;

   For I = 1 To N Do Back.InSignals[1] = W[I]

  End {Конец описания обратного функционирования}

 End Square_Sum_Plus {Конец описания адаптивного квадратичного сумматора}

End NetBibl

Описание блоков

Описание блока состоит из пяти основных разделов: заголовка описания блока, описания сигналов и параметров, описания состава, описания связей и конца описания блока. Существует два типа блоков — каскад и слой (Layer). Различие между этими двумя типами блоков состоит в том, что подсети, входящие в состав слоя, функционируют параллельно и независимо друг от друга, тогда как составляющие каскад подсети функционируют последовательно, причем каждая следующая подсеть использует результаты работы предыдущих подсетей. В свою очередь существует три вида каскадов — простой каскад (Cascad), цикл с фиксированным числом шагов (Loop) цикл по условию (Until). Различие между тремя видами каскадов очевидно — простой каскад функционирует один раз, цикл Loop функционирует указанное в описании число раз, а цикл Until функционирует до тех пор, пока не выполнится указанное в описании условие. В условии, указываемом в заголовке цикла Until, возможно использование сравнений массивов или интервалов массивов сигналов. Например, запись

InSignals=OutSignals

эквивалентна следующей записи

InSignals[1..N]=OutSignals[1..N]

которая эквивалентна вычислению следующей логической функции:

Function Equal(InSignals, OutSignals: RealArray): Logic;

Var

 Long I;

 Logic L

Begin

 L = True

 For i = 1 To n Do L = L And (InSignals[I] = OutSignals[I]);

 Equal = L

End

Раздел описания состава следует сразу после заголовка блока за разделом описания сигналов и параметров и начинается с ключевого слова Contents, за которым следуют имена подсетей (блоков или элементов) со списками фактических аргументов, разделенные запятыми. Все имена подсетей должны предваряться псевдонимами. В дальнейшем указание псевдонима полностью эквивалентно указанию имени подсети со списком фактических аргументов или без, в зависимости от контекста. Признаком конца раздела описания состава подсети служит имя подсети за списком фактических аргументов которого не следует запятая.

Раздел описания сигналов и параметров следует за разделом описания состава и состоит из указания числа входных и выходных сигналов и числа параметров блока. В константных выражениях, указывающих число входных и выходных сигналов и параметров можно использовать дополнительно функцию NumberOf с двумя параметрами. Первым параметром является одно из ключевых слов InSignals, OutSignals, Parameters, а вторым — имя подсети со списком фактических аргументов. Функция NumberOf возвращает число входных или выходных сигналов или параметров (в зависимости от первого аргумента) в подсети, указанной во втором аргументе. Использование этой функции необходимо в случае использования блоком аргументов-подсетей. Концом раздела описания сигналов и параметров служит одно из ключевых слов ParamDef, Static или Connections.

Раздел определения типов параметров является необязательным разделом в описании блока и начинается с ключевого слова ParamDef. В каждой строке этого раздела можно задать минимальную и максимальную границы изменения одного типа параметров. Если в описании сети встречаются параметры неопределенного типа, то этот тип считается совпадающим с типом DefaultType. Описание типа не обязано предшествовать описанию параметров этого типа. Так, например, определение типа параметров может находиться в описании главной сети. Концом этого раздела служит одно из ключевых слов Connections.

Раздел описания связей следует за разделом описания сигналов и параметров и начинается с ключевого слова Connections. В разделе «Описание распределения сигналов» детально описано распределение связей.

Раздел конца описания блока состоит из ключевого слова End, за которым следует имя блока.

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

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

NetBibl SubNets Used Elements;

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

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

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

Перейти на страницу:

Е. Миркес читать все книги автора по порядку

Е. Миркес - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Учебное пособие по курсу «Нейроинформатика» отзывы

Отзывы читателей о книге Учебное пособие по курсу «Нейроинформатика», автор: Е. Миркес. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*