Моделирование сети

Статические сети. Статическая нейронная сеть характеризуется тем, что в ее составе нет элементов запаздывания и обратных связей. Ее поведение не зависит от типа вектора входа, поскольку последовательно подаваемые векторы можно рассматривать как действующие одновременно или как один объединенный вектор. Поэтому в качестве модели статической сети рассмотрим сеть, показанную на рис. 2.16.

Рис. 2.16

Это однослойная сеть с двухэлементным вектором входа и линейной функцией активации. Для задания такой сети предназначена М-функция newlin из ППП Neural Network Toolbox, которая требует указать минимальное и максимальное значение для каждого
из элементов входа; в данном случае они равны –1 и 1 соответственно, а также количество слоев, в данном случае 1.

% Формирование однослойной линейной сети net с двухэлементным

% входным сигналом со значениями от –1 до 1

net = newlin([–1 1;–1 1],1);

Определим весовую матрицу и смещение равными W = [1 2], b = 0, и зададим эти значения, используя описание структуры сети

net.IW{1,1} = [1 2]; % Присваивание значений весов

net.b{1} = 0; % Присваивание значения смещения

Предположим, что на сеть подается такая последовательность из четырех векторов входа:

(2.7)

Поскольку сеть статическая, можно перегруппировать эту последовательность в следующий числовой массив:

P = [–1 0 0 1; 0 –1 1 –1];

Теперь можно моделировать сеть:

A = sim(net,P) % Моделирование сети net с вектором входа P и выходом A

A = –1 –2 2 –1

Результат нужно интерпретировать следующим образом. На вход сети подается
последовательность из четырех входных сигналов, и сеть генерирует вектор выхода
из четырех элементов. Результат был тот же самый, если бы имелось 4 одинаковых сети, функционирующих параллельно, и на каждую сеть был подан один из векторов входа
и генерировался один из выходов.

Динамические сети. Когда сеть содержит линии задержки, вход сети надо рассматривать как последовательность векторов, подаваемых на сеть в определенные моменты времени. Чтобы пояснить этот случай, рассмотрим простую линейную сеть, которая содержит 1 элемент линии задержки (рис. 2.17).

Рис. 2.17

Построим такую сеть:

% Создание однослойной линейной сети с линией задержки [0 1]

net = newlin([–1 1],1,[0 1]);

Зададим следующую матрицу весов W = [1 2] и нулевое смещение:

net.IW{1,1} = [1 2]; % Присваивание значений весов

net.biasConnect = 0; % Присваивание значений смещений

Предположим, что входная последовательность имеет вид {–1, –1/2, 1/2, 1}, и зададим ее в виде массива ячеек

P = {–1 –1/2 1/2 1};

Теперь можно моделировать сеть, используя метод sim:

A = sim(net,P) % Моделирование сети net с входным сигналом P и выходом A

A = [–1] [–5/2] [–1/2] [2]

Действительно,

(2.8)

Введя массив ячеек, содержащий последовательность входов, сеть сгенерировала массив ячеек, содержащий последовательность выходов. В данном случае каждый выход формируется согласно соотношению

a(t) = p(t) + 2p(t–1). (2.9)

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

Если те же самые входы подать на сеть одновременно, то получим совершенно иную реакцию. Для этого сформируем следующий вектор входа:

P = [–1 –1/2 1/2 1];

После моделирования получаем:

A = sim(net,P) % Моделирование сети

A = –1 –1/2 1/2 1

Результат такой же, как если применить каждый вход к отдельной сети и вычислить ее выход. Поскольку начальные условия для элементов запаздывания не указаны, то по умолчанию они приняты нулевыми. В этом случае выход сети равен

. (2.10)

Если требуется моделировать реакцию сети для нескольких последовательностей сигналов на входе, то надо сформировать массив ячеек, размер каждой из которых совпадает с числом таких последовательностей. Пусть, например, требуется приложить к сети 2 последовательности:

(2.11)

Вход P в этом случае должен быть массивом ячеек, каждая из которых содержит два элемента по числу последовательностей

P = {[–1 1] [–1/2 1/2] [1/2 –1/2] [1 –1]};

Теперь можно моделировать сеть:

A = sim(net,P); % Моделирование сети net с входным сигналом P и выходом A

Результирующий выход сети равен

A = {[–1 1] [–5/2 5/2] [–1/2 1/2] [2 –2]}

В самом деле,

{ , ,

, }

На рис. 2.18 показан формат массива P, представленного Q выборками (реализациями), при моделировании сети.

Рис. 2.18

В данном случае это массив ячеек с одной строкой, каждый элемент которой объединяет Q реализаций вектора p – [ p 1(TS), p 2(TS), …, p Q(TS)] – для некоторого момента времени TS. Если на вход сети подается несколько векторов входа, то каждому входу будет соответствовать 1 строка массива ячеек. Представление входов как массива ячеек соответствует последовательному представлению наблюдаемых данных во времени.

Представление вектора входа может быть интерпретировано иначе, если сформировать временные последовательности для каждой реализации, как это показано на рис. 2.18. Тогда можно говорить о том, что на вход сети подается Q выборок из интервала времени [1, TS ], которые могут быть описаны числовым массивом P вида

P = [[p1(1), p1(2), …, p1(TS)]; [p2(1), p2(2), …, p2(TS)]; …
…; [p Q (1), p Q (2), …, p Q (TS)]]. (2.12)

Представление входов как числового массива выборок в формате double соответствует групповому представлению данных, когда реализации вектора входа для всех значений времени на интервале выборки обрабатываются потоком.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: