Чтение онлайн

ЖАНРЫ

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

Миркес Е. М.

Шрифт:

 Begin

For I=1 To N Do Begin

{Поправка к I-у входному сигналу равна произведению поправки выходного сигнала на I-й параметр}

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

{Поправка к I-у параметру равна сумме ранее вычисленной поправки и произведения поправки выходного сигнала на I-й входной сигнал}

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

End;

{Поправка
к (N+1)-у параметру равна сумме ранее вычисленной поправки и попраки к выходному сигналу}

Back.Parameters[N+1] = Back.Parameters[N+1] + Back.OutSignals[1]

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

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

Element Square_Sum(N: Long) {Квадратичный сумматор на N входов}

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

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

 Parameters (Sqr(N) + N) Div 2 {N(N+1)/2 параметров – весов связей}

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

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

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

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

 Begin

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

R = 0;

For I = 1 To N Do {I,J – номера входных сигналов}

For J = I To N Do Begin

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

K = K + 1

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 = 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

Поделиться с друзьями: