Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab5.docx
Скачиваний:
2
Добавлен:
22.07.2019
Размер:
310.38 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное образовательное

учреждение высшего профессионального образования

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ «МАМИ»

Кафедра: Информационные системы и дистанционные технологии.

Лабораторная работа №5

По дисциплине: «Математическое моделирование в технике»

Студентка: Зайончковский Д.А.

Группа: 7-АИСк-10

Преподаватель: Крыжановская Т.Г.

Москва

2011

Лабораторная работа №5 Создание, инициализация и моделирование сети. Статический и динамические сети в системе Simulink

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

Теоретическая часть

Формирование архитектуры сети

Первым шагом при работе с нейронными сетями является создание модели сети. Для создания сетей с прямой передачей сигнала в пакете прикладных программ NeuralNetworkToolbox (ППП NNT) предназначена функция newff. Она имеет 4 входных аргумента и 1 выходной аргумент – объект класса nеtwork. Первый входной аргумент – это массив размера R x 2, содержит допустимые границы значений (минимальное и максимальное) для каждого из R элементов вектора входа; второй – массив для задания количества нейронов каждого слоя; третий – массив ячеек, содержащий имена, функций активации для каждого слоя; четвертый – имя функции обучения.

М-функция newff не только создает архитектуру сети, но и инициализирует ее веса и смещения, подготавливая нейронную сеть к обучению. Однако существуют ситуации, когда требуются специальные процедуры инициализации сети.

Инициализация сети

После того, как сформирована архитектура сети, должны быть заданы начальные значения весов и смещений, или, иными словами, сеть должна быть инициализирована. Такая процедура выполняется с помощью метода init для объектов класса network. Оператор вызова этого метода имеет вид:

net = init(net);

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

Статические сети. Статическая нейронная сеть характеризуется тем, что в ее составе нет элементов запаздывания и обратных связей. Ее поведение не зависит от типа вектора входа, поскольку последовательно подаваемые векторы можно рассматривать как действующие одновременно или как один объединенный вектор. Поэтому в качестве модели статической сети рассмотрим сеть, показанную на рис. 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 % Присваивание значений смещения.

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

, , ,

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

P = [-1 0 0 1; 0 -1 1 -1] ;

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

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

A = -1 -2 2 -1

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

Динамические сети. Когда сеть содержит линии задержки, вход сети надо рассматривать как последовательность векторов, подаваемых на сеть в определенные моменты времени.

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

% Создание однослойной линейной сети с линией задержки [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}, и зададим ее в виде массива ячеек:

Р = {-1 -1/2 1/2 1};

Далее моделируем сеть, используя метод sim:

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

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

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

[1 2] = [-1] [1 2] = [-5/2] [1 2] = [-1/2] [1 2] = [2]

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

a(t) = p(t) + 2p(t-1).

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

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

Р = [-1 -1/2 1/2 1];

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

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

A = -1 -1/2 1/2 1

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]