Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учеб.Пособие.Нейро.doc
Скачиваний:
9
Добавлен:
07.12.2018
Размер:
1.28 Mб
Скачать

Контрольные вопросы

  1. Объясните сравнительные оценки традиционных ЭВМ и нейрокомпьютеров для процессора и памяти.

  2. Приведите постановку задачи аппроксимации функции/моделировании при использовании ИНС.

  3. Приведите структурную схему искусственного нейрона и его формальную модель.

  4. Какие активационные функции нейрона получили наибольшее распространения?

  5. Какую роль играет нейронное смещение при функционировании нейронной сети?

Приложение 1

Решить задачи, используя обозначения

x W S Y

∑ F

b

где b – bias, нейронное смещение

Задача 1. Дан нейрон с одним входом и смещением

  1. Найти S-?

  2. Какой будет выход нейрона Y при использовании линейной F(x) и сигмоидальной F(x) функции активации F(x)?

Задача 2 Дан нейрон с двумя входами и смещением

= -5, = 6, = 3, = 2, b=1.2.

Вычислить выход нейрона Y для линейной функции с насыщением?

Л И Т Е Р А Т У Р А

1. Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB6 / Под общ.ред.к.т.н.В.Г.Потемкина. – М.:ДИАЛОГ – МИФИ, 2002. – 496с.

2. Дьяконов В.; Круглов В.

Математические пакеты расширения MATLAB .Специальный справочник. – СПб.: Питер, 2001. – 480с.

3. Методы робастного, нейро-нечеткого и адаптивного управления: Учебник / Под ред. Н.Д.Егупова. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 744 с.

Работа №2

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

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

Продолжительность работы 4 часа.

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

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

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

Например следующий оператор создает сеть с прямой передачей сигнала:

net = newff( [-1 2; 0 5] , [3,1] , {‘tansig’ , ’purelin’} , ’traingd’);

Эта сеть использует 1 вектор входа с двумя элементами, имеющими допустимые границы значений [-1 2] и [0 5]; имеет 2 слоя с тремя нейронами в первом слое и одним нейроном во втором; используемые функции активации: tansig – в первом слое, purelin – во втором слое; используемая функция обучения – traingd.

Пример сети с прямой передачей сигнала приведен в Приложении 2.1.

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

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

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

net = init(net);

Способы инициализации сети приведены в Приложении 2.2.

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

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

Рис. 1 Однослойная сеть с двухэлементным вектором входа и линейными функциями активации

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

% Формирование однослойной линейной сети с именем net c

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

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

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

% Создание однослойной линейной сети с линией задержки [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

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