Е. Миркес - Учебное пособие по курсу «Нейроинформатика»
- Название:Учебное пособие по курсу «Нейроинформатика»
- Автор:
- Жанр:
- Издательство:КРАСНОЯРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
- Год:2002
- Город:Красноярск
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Е. Миркес - Учебное пособие по курсу «Нейроинформатика» краткое содержание
Данное учебное пособие подготовлено на основе курса лекций по дисциплине «Нейроинформатика», читавшегося с 1994 года на факультете Информатики и вычислительной техники Красноярского государственного технического университета.
Несколько слов о структуре пособия. Далее во введении приведены учебный план по данному курсу, задания на лабораторные работы. Следующие главы содержат одну или несколько лекций. Материал, приведенный в главах, несколько шире того, что обычно дается на лекциях. В приложения вынесены описания программ, используемых в данном курсе (Clab и Нейроучебник), и проект стандарта нейрокомпьютера, включающий в себя два уровня — уровень запросов компонентов универсального нейрокомпьютера и уровень языков описания отдельных компонентов нейрокомпьютера.
Данное пособие является электронным и включает в себя программы, необходимые для выполнения лабораторных работ.
Учебное пособие по курсу «Нейроинформатика» - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Parameters( Sqr(N) + N) Div2 {N(N+1)/2 параметров – весов связей}
Forw {Начало описания прямого функционирования}
Var {Описание локальных переменных}
LongI,J,K; {I,J,K – переменные типа длинное целое }
RealR; {R – действительное – для накопления суммы}
Begin
K = 1; {K – номер обрабатываемого параметра}
R = 0;
ForI = 1 ToN Do {I,J – номера входных сигналов}
ForJ = I ToN Do Begin
R = R + InSignals[I] * InSignals[J] * Parameters[K];
K = K + 1
End;
{Выходной сигнал равен сумме всех попарных произведений входных сигналов, умноженных на соответствующие параметры}
OutSignals[1] = R
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования }
Var {Описание локальных переменных}
LongI, J, K; {I,J,K – переменные типа длинное целое }
RealR; {R – действительное}
VectorW; {Массив для накопления промежуточных величин}
Begin
ForI = 1 ToN DoW[I] = 0;
K = 1; {K – номер обрабатываемого параметра}
ForI = 1 ToN Do
ForJ = I ToN 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;
ForI = 1 ToN Do
{Поправка к входному сигналу равна произведению поправки к выходному сигналу на сумму всех параметров, через которые этот сигнал проходил при прямом функционировании, умноженных на другие входные сигналы, так же прошедшие через эти параметры при прямом функционировании}
Back.InSignals[1] = W[I]
End {Конец описания прямого функционирования}
EndSquare_Sum {Конец описания квадратичного сумматора}
ElementSquare_Sum_Plus(N: Long) {Неоднородный квадратичный сумматор на N входов}
InSignalsN {N входных сигналов}
OutSignals1 {Один выходной сигнал}
Parameters( Sqr(N) + 3 * N) Div2 + 1 {N(N+3)/2+1 весов связей}
Forw {Начало описания прямого функционирования}
Var {Описание локальных переменных}
LongI, J, K; {I,J,K – переменные типа длинное целое }
RealR; {R – действительное – для накопления суммы}
Begin
K = 2 * N+1; {K – номер обрабатываемого параметра}
R = Parameters[ Sqr(N) + 3 * N) Div2 + 1];
ForI = 1 ToN Do Begin
R = R + InSignals[I] * Parameters[I] + Sqr( InSignals[I]) * Parameters[N + I];
ForJ = I + 1 ToN Do Begin
R = R + InSignals[I] * InSignals[J] * Parameters[K];
K = K + 1
End
End
{Выходной сигнал равен сумме всех попарных произведений входных сигналов, умноженных на соответствующие параметры, плюс сумме всех входных сигналов умноженных на соответствующие параметры, плюс последний параметр}
OutSignals[1] = R
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
Var {Описание локальных переменных}
LongI, J, K; {I,J,K – переменные типа длинное целое}
RealR; {R – действительное – для накопления суммы}
VectorW; {Массив для накопления промежуточных величин}
Begin
ForI = 1 ToN DoW[I] = 0;
K = 2 * N + 1; {K – номер обрабатываемого параметра}
ForI = 1 ToN 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])
ForJ = I + 1 ToN 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;
ForI = 1 ToN Do Back.InSignals[1] = W[I]
End {Конец описания обратного функционирования}
EndSquare_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
LongI;
LogicL
Begin
L = True
Fori = 1 Ton Do L = L And( InSignals[I] = OutSignals[I]);
Equal = L
End
Интервал:
Закладка: