4.14 Поток сети
Фрагмент сети, состоящий из слоя входных синапсов, сумматора, нейрона и выходного синапса и названный «потоком» представлен в программной модели классом TNetStream.
Помимо обычных для потомка класса TNetPiece полей NextPiece, PriorPiece, ForwOut и BackOut данный класс включает в себя FirstLayer - список синапсов первого слоя, Summator - объект класса TSummator, реализующего тривиальный сумматор, Neuron - объект класса TNeuron, реализующего нелинейный преобразователь - нейрон, SecondLayer - объект класса TSynapse, описывающий выходной синапс потока.
Прямой такт потока, описанный методом ForwardTact, происходит следующим образом:
Перебираются элементы списка FirstLayer, для каждого из которых вызывается его собственный метод ForwardTact, затем происходит «срабатывание» (вызов этого же метода) для объектов Summator, Neuron и SecondLayer. Затем выходной сигнал объекта заносится в поле ForwOut - выходной сигнал всего потока.
Такт обратного функционирования потока, который описан в методе BackwardTact, включает в себя следующие действия:
Последовательный вызов собственного метода BackwardTact для объектов SecondLayer, Neuron и Summator, затем перебор элементов списка FirstLayer и вызов метода BackwardTact для каждого синапса, входящего в него.
Структура связей между элементами потока представлена на рис 10.
|
|
4.15 Скомпонованная полутораслойная поточная сеть
Целая сеть представлена классом TNet. Данный класс также является потомком класса TNetPiece - общего элемента сети, что позволяет, используя свойство полиморфизма объектов, достаточно легко компоновать из отдельных фрагментов нейросети более сложной структуры.
Кроме полей, унаследованных от TNetPiece, сеть характеризуется также полями Inputs - список входных элементов, Streams - список потоков сети, SecondLayer - сумматор входного слоя, Answer - выходной элемент сети.
Для описания такта прямого функционирования сети используется, так же как в других элементах сети, метод ForwardTact. Методом выполняются следующие действия:
Перебор списка входных элементов и вызов метода ForwardTact для каждого из них, перебор и прямое функционирование каждого из элементов списка потоков, и затем - для объектов SecondLayer и Answer.
Метод BackwardTact, описывающий обратное функционирование сети, задается следующей последовательностью действий:
Обратное функционирование элементов Answer, SecondLayer, затем перебор и выполнение методов BackwardTact для элементов списков Streams и Inputs.
Структура связей между стандартными элементами полностью скомпонованной поточной нейросети показана на рис. 11.
|
|
Схема, приведенная на рис. 11, хорошо иллюстрирует преимущества применения объектно-ориентированного подхода к моделированию нейронных сетей.
Свойство полиморфизма объектов позволяет составлять список предыдущих элементов, например, сумматора, как из простых синапсов, так и из более сложных структур - потоков. Для этого требуется лишь аккуратное выполнение иерархии объектов, описывающих элементы сети.
В перспективе, с появлением параллельных трансляторов, объектно-ориентированный подход за счет свойства инкапсуляции объектов позволит легко перейти к моделированию нейросетей в параллельных системах.


