Учебное пособие по курсу «Нейроинформатика»
Шрифт:
OutSignals[1] =InSignals[1] * InSignals[2] {Выходной сигнал равен произведению входных сигналов}
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
Begin
{Поправка к каждому входному сигналу равна произведению поправки выходного сигнала на другой входной сигнал}
Back.InSignals[1] = Back.OutSignals[1] * InSignals[2];
Back.InSignals[2] = Back.OutSignals[1] * InSignals[1]
End {Конец
описания обратного функционирования}
End Mul {Конец описания умножителя}
Element S_Train {Обучаемый гиперболический сигмоидный элемент}
InSignals 1 {Один входной сигнал}
OutSignals 1 {Один выходной сигнал}
Parameters 1 {Один параметр – характеристика}
Forw {Начало описания прямого функционирования}
Begin
{Выходной сигнал равен отношению входного сигнала к сумме параметра и абсолютной величины входного сигнала}
OutSignals[1] =InSignals[1] / (Parameters[1] +Abs(InSignals[1])
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
Var Real R; {R – действительное}
Begin
{R – вспомогательная величина для вычисления поправок, равная отношению поправки выходного сигнала к квадрату суммы параметра и абсолютной величины входного сигнала}
R= Back.OutSignals[1] / Sqr(Parameters[1] +Abs(InSignals[1]);
{Поправка к входному сигналу равна произведению вспомогательной величины на параметр}
Back.InSignals[1] = R *Parameters[1];
{Поправка к параметру равна сумме ранее вычисленной величины поправки и произведения вспомогательной величины на входной сигнал}
Back.Parameters[1] = Back.Parameters[1] + R * InSignals[1]
End {Конец описания обратного функционирования}
End S_Train {Конец описания обучаемого гиперболического сигмоидного элемента}
Element S_NotTrain(Char : Real) {Не обучаемый гиперболический сигмоидный элемент Char – характеристика}
InSignals 1 {Один входной сигнал}
OutSignals 1 {Один
выходной сигнал}
Forw {Начало описания прямого функционирования}
Begin
{Выходной сигнал равен отношению входного сигнала к сумме характеристики и абсолютной величины входного сигнала}
OutSignals[1] =InSignals[1] / (Char +Abs(InSignals[1])
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
Begin
{Поправка к входному сигналу равна отношению произведения поправки выходного сигнала на характеристику к квадрату суммы характеристики и абсолютной величины входного сигнала}
Back.InSignals[1] =Back.OutSignals[1] * Char / Sqr(Char +Abs(InSignals[1]);
End {Конец описания обратного функционирования}
End S_NotTrain {Конец описания гиперболического сигмоидного элемента}
Element Pade(Char : Real) {Паде преобразователь Char – характеристика}
InSignals 2 {Два входных сигнала}
OutSignals 1 {Один выходной сигнал}
Forw {Начало описания прямого функционирования}
Begin
{Выходной сигнал равен отношению первого входного сигнала к сумме характеристики и второго входного сигнала}
OutSignals[1] =InSignals[1] / (Char+InSignals[2])
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
Var Real R; {R – действительное}
Begin
{Вспомогательная величина равна поправке к первому входному сигналу – отношению поправки выходного сигнала к сумме характеристики и второго входного сигнала}
R= Back.OutSignals[1] / (Char+ InSignals[2]);
Back.InSignals[1] = R;
{Поправка ко второму входному сигналу равна минус отношению произведения первого входного сигнала на поправку выходного сигнала к квадрату суммы характеристики и второго входного сигнала}
Back.InSignals[2] = -R *OutSignals[1];
End {Конец описания обратного функционирования}
End Pade {Конец описания Паде преобразователя}
Поделиться с друзьями: