Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Нейроуправление,л.р..doc
Скачиваний:
98
Добавлен:
16.04.2015
Размер:
720.38 Кб
Скачать
    1. Выполнение

Пакет MatLab был создан компанией MathWorks более десяти лет назад. Ра­бота сотен ученых и программистов направлена на постоянное расширение его возможностей и совершенствование заложенных алгоритмов. В настоя­щее время MatLab является мощным и универсальным средством решения задач, возникающих в различных областях человеческой деятельности. Спектр проблем, исследование которых может быть осуществлено при по­мощи MatLab, охватывает: матричный анализ, обработку сигналов и изо­бражений, задачи математической физики, оптимизационные задачи, обра­ботку и визуализацию данных, работу с картографическими изображениями, нейронные сети, нечеткую логику и многие другие. Специализированные средства собраны в пакеты, называемые ToolBox, и могут быть выборочно установлены вместе с MatLab по желанию пользователя. В состав многих ToolBox входят приложения с графическим интерфейсом пользователя, ко­торые обеспечивают быстрый и наглядный доступ к основным функциям. Пакет Simulink, поставляемый вместе с MatLab, предназначен для интерак­тивного моделирования нелинейных динамических систем, состоящих из стандартных блоков. Данный пакет также дает возможность работы с нейронными сетями. Ниже рассмотрены функции, позволяющие синтезировать НС.

Функция NEWFF Сеть прямой передачи FF

Синтаксис:

net = newff(PR,[S1 S2...SNI],{TF1 TF2...TFNI},btf,blf,pf)

Описание:

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

Функция net = newff(PR, [SI S2 ... SN1], (TF1 TF2 ... TFN1}, btf, blf, pf) формирует многослойную нейронную сеть.

Входные аргументы:

PR - массив размера Rx2 минимальных и максимальных значений для R векторов входа;

Si - количество нейронов в слое i;

TFi - функция активации слоя i, по умолчанию tansig;

btf - обучающая функция, реализующая метод обратного распространения, по умол­чанию trainlm;

blf- функция настройки, реализующая метод обратного распространения, по умолча­нию learngdm;

pf- критерий качества обучения, по умолчанию mse.

Выходные аргументы:

net - объект класса network object многослойной нейронной сети.

Свойства сети:

Функциями активации могут быть любые дифференцируемые функции, например tansig, logsig или purelin.

Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm, trainbfg, trainrp, traingd и др.

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

• установите значение свойства net.trainParam.mеm_reduc равным 2 или более, что сни­зит требования к памяти, но замедлит обучение;

• воспользуйтесь обучающей функцией trainbfg, которая работает медленнее, но требует меньшей памяти, чем М-функция trainlm;

• перейдите к обучающей функции trainrp, которая работает медленнее, но требует меньшей памяти, чем М-функция trainbifg.

Функциями настройки могут быть функции, реализующие метод обратного распро­странения: learngd, learngdm.

Критерием качества обучения может быть любая дифференцируемая функция: mse, msereg.

TRAIN Обучение нейронной сети

Синтаксис:

[net, TR] = train(net,P,T,Pi,Ai)

[net, TR] = train(net,P,T,Pi,Ai,VV,TV)

Описание:

Функция [net, TR] = train(net, P, T, Pi, Ai) является методом для объектов класса network object, который реализует режим обучения нейронной сети. Эта функция характе­ризуется следующими входными и выходными аргументами.

Входные аргументы:

net - имя нейронной сети;

Р - массив входов;

Т - вектор целей, по умолчанию нулевой вектор;

Pi - начальные условия на линиях задержки входов, по умолчанию нулевой вектор;

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

Выходные аргументы:

net - структура объекта network object после обучения;

TR - характеристики процедуры обучения:

TR.timesteps - длина последней выборки;

TR.perf - значения функции качества на последнем цикле обучения.

Заметим, что входной аргумент Т используется только при наличии целевых выходов. Аргументы Pi и Pf используются только в случае динамических сетей, имеющих линии задержки на входах или в слоях.

Примеры функций активации:

logsig – сигмоидальная;

purelin – линейная;

tansig – гиперболический тангенс;

MatLab позволяет строить графики функций в линейном, логарифмическом и полулогарифмическом масштабах. Кроме этого, можно строить графики нескольких функций, даже определенных на разных отрезках.

Построение графиков функций одной переменной в линейном масштабе осуществляется при помощи функции plot.

Вывод отображения простейшей функции одной переменной y(x) определенной на отрезке [a,b] в виде графи­ка состоит из следующих этапов:

  1. Задание вектора значений аргумента х.

  2. Вычисление вектора у значений функции у(х).

  3. Вызов команды plot(x,y) для построения графика.

Например: Построить график функции на отрезке [-5; 5] с шагом 0,05.

>> x=[-5: 0.05: 5];

>> y=x.^2;

>> plot(x, y)

После выполнения команд на экране появляется окно Figure No. 1 с графи­ком функции. Окно содержит меню, панель инструментов и область графика.

Если нам надо построить одновременно графики двух функций f(x) и g(x), то надо набрать следующую команду:

>> plot(x, f, x, g)

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

  1. Цвет

  1. Тип маркера

  1. Тип линии

y

m

c

r

g

b

w

k

желтый

розовый

голубой

красный

зеленый

синий

белый

черный

.

x

+

*

s

d

v

^

<

>

p

h

точка

кружок

крестик

знак «плюс»

звездочка

квадрат

ромб

треугольник вершиной вниз

треугольник вершиной вверх

треугольник вершиной влево

треугольник вершиной вправо

пятиконечная звезда

шестиконечная звезда

-

:

-.

--

сплошная

пунктирная

штрих-пунктирная

штриховая

Пример:

Создать нейронную сеть, чтобы обеспечить следующее отображение последователь­ности входа Р в последовательность целей Т:

Р= [0 1 2 3 4 5 6 7 8 9 10];

Т= [0 1 2 3 4 3 2 1 2 3 4];

Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала; скрытый слой - 5 нейронов с функцией активации tansig; выходной слой - 1 нейрон с функцией акти­вации purelin; диапазон изменения входа [0 10].

net = newff([0 10],[5 1],{‘tansig’ ‘purelin’});

Обучим сеть в течение 50 циклов:

net.trainParam.epochs = 50;

net = train(net,P,T);

Выполним моделирование сети и построим графики сигналов выхода и цели.

Y = sim(net,P);

plot(P, Т, P, Y)