Искусственные нейронные сети




Скачать 1.3 Mb.
страница 5/17
Дата 27.09.2016
Размер 1.3 Mb.
1   2   3   4   5   6   7   8   9   ...   17

A =


[3x3 double] 'Anne Smith'

[3.0000+ 7.0000i] [1x21 double]

2. Для создания массива ячеек с помощью индексации содержимого ввести следующие команды:



>> A{1, 1} = [1 4 3; 0 5 8; 7 2 9];

>> A{1, 2} = 'Anne Smith';

>> A{2, 1} = 3+7i;

>> A{2, 2} = -pi:pi/10:pi

A =

[3x3 double] 'Anne Smith'

[3.0000+ 7.0000i] [1x21 double]

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



>> celldisp(A)

A{1,1} =

1 4 3

0 5 8

7 2 9

A{2,1} =

3.0000 + 7.0000i

A{1,2} =

Anne Smith

A{2,2} =

Columns 1 through 9

-3.1416 -2.8274 -2.5133 -2.1991 -1.8850 -1.5708 -1.2566
-0.9425 -0.6283


Columns 10 through 18

-0.3142 0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991

Columns 19 through 21

2.5133 2.8274 3.1416

Задание 2. Создать массив структур, содержащих имя, фамилию и год рождения.

1. Для создания массива структур ввести следующие команды:



>> S.name = 'Ed';

>> S.fam = 'Plum';

>> S.year = 1979

S =

name: 'Ed'

fam: 'Plum'

year: 1979

>> S(2).name = 'Tony';

>> S(2).fam = 'Miller';

>> S(2).year = 1980

S =

1x2 struct array with fields:

name

fam

year

>> S(3) = struct('name','Jerry','fam','Garcia','year',1981)

S =

1x3 struct array with fields:

name

fam

year

Задание 3. Разработать файл-сценарий для решения предыдущей задачи с возможностью ввода значений пользователем.

1. Запустить редактор m-файлов и ввести следующую программу:



%Ввод структуры S

%Структура имеет три поля:

%имя name, фамилию fam и год рождения year

disp('Введите поля структуры');

S.name=input('name = ');

S.fam=input('fam = ');

S.year=input('year = ');

disp(S)

2. Сохранить файл под именем «strdialog.m».

3. Выполнить в командном окне MATLAB следующую команду:


>> strdialog

Обратите внимание на то, что xmin и xmax объявляются в теле сценария и объявлять глобальные переменные не требуется.



Задание 4. На системном диске, где установлена математическая система MATLAB, найти папки инструментального пакета по нейронным сетям Neural Network Toolbox (NNT, или ПППНС) и скопировать в рабочий каталог все методы класса network, обеспечивающие создание, инициализацию, обучение, моделирование и визуализацию нейронной сети. В рабочем каталоге найти М-файл конструкторов класса и проанализировать их структуру.

Задание 5. Запустить на пошаговое исполнение конструктор сети network, который не имеет параметров, и проследить последовательность действий по формированию объекта класса network и заданию значений по умолчанию для его атрибутов.

Задание 6. Создать объект класса нейронной сети network, исполнив команду

net = network,

и вывести на экран все поля и все ячейки этого объекта, используя функцию celldisр.



Задание 7. Создать объект класса нейронной сети network, исполнив команду

net = network(2,3,[1;0;0], [11;00;00], ...

[000;100;010], [001], [001],

и вывести на экран все поля и все ячейки этого объекта, используя функцию celldisр.



Задание 8. Исполнив команду gensim(net), получить на экране структурную схему созданной сети, раскрыть её блоки с помощью двойного щелчка мыши и выяснить смысл параметров конструктора network. Изменяя значения параметров, проследить их влияние на элементы структурной схемы.

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


Модели искусственного нейрона


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

Теоретические сведения

Простой нейрон

Элементарной ячейкой нейронной сети является нейрон.


Структура нейрона с единственным скалярным входом показана
на рис. 3.1,а.



а б

Рис. 3.1. Простой нейрон

Скалярный входной сигнал р умножается на скалярный весовой коэффициент w, и результирующий взвешенный вход w*p является аргументом функции активации нейрона, которая порождает скалярный выход а.

Нейрон, показанный на рис. 3.1,б, дополнен скалярным смещением b. Смещение суммируется со взвешенным входом w*p и приводит к сдвигу аргумента функции на величину b. Действие смещения можно свести к схеме взвешивания, если представить что нейрон имеет второй входной сигнал со значением, равным 1. Вход n функции активации нейрона по-прежнему остается скалярным и равным сумме взвешенного входа и смещения b. Эта сумма является аргументом функции активации f; выходом функции активации является сигнал а. Константы w и b являются скалярными параметрами нейрона. Основной принцип работы нейронной сети состоит в настройке параметров нейрона с тем, чтобы функционирование сети соответствовало некоторому желаемому поведению. Регулируя веса или параметры смещения, можно “научить” сеть выполнять конкретную работу; возможно также, что сеть сама будет корректировать свои параметры, чтобы достичь требуемого результата.

Уравнение нейрона со смещением имеет вид

a = f(w*p+b*l).

Как уже отмечалось, смещение b – настраиваемый скалярный параметр нейрона, который не является входом, а константа 1, которая управляет смещением, рассматривается как вход и может быть учтена в виде линейной комбинации векторов входа



.

Функция активации

Функции активации (передаточные функции) нейрона могут иметь самый разнообразный вид. Функция активации f, как правило, принадлежит классу сигмоидальных функций с аргументом n и выходом а.

Ниже рассмотрены три наиболее распространенные функции активации.



Единичная функция активации с жестким ограничениям hardlim. Эта функция описывается соотношением а = hardlim(n) = 1(n) и показана на рис. 3.2. Она равна 0, если
n , и 1,если n >= 0.

Рис. 3.2. Функция активации hardlim

В состав пакета ППП Neural Network Toolbox входит
М-функция hardlim, реализующая функцию активации с жесткими ограничениями.

Линейная функция активации purelin. Эта функция описывается соотношением а = purelin(n) = n и показана на рис. 3.3.

Рис. 3.3. Линейная функция активации purelin



Логистическая функция активации logsig. Эта функция описывается соотношением а = logsig(n) = 1/(1 + ехр(-n)) и показана на рис. 3.4. Она принадлежит к классу сигмоидальных функций, и ее аргумент может принимать любое значение в диапазоне
от до , а выход изменяется в диапазоне от 0 до 1. В пакете ППП Neural Network Toolbox она представлена М-функцией logsig. Благодаря свойству дифференцируемости эта функция часто используется в сетях с обучением на основе метода обратного распространения ошибки.

Рис. 3.4. Функция logsig

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

В пакет ППП Neural Network Toolbox включены и другие функции активации. Используя язык MATLAB, пользователь может создавать и свои собственные уникальные функции.

Нейрон с векторным входом

Нейрон с одним вектором входа р с R элементами показан на рис. 3.5. Здесь каждый элемент входа умножается на веса соответственно и взвешенные значения передаются на сумматор. Их сумма равна скалярному произведению вектора-


строки W на вектор входа р.

Рис. 3.5. Функциональная схема нейрона

Нейрон имеет смещение b, которое суммируется со взвешенной суммой входов. Результирующая сумма n определяется как

и служит аргументом функции активации f. В нотации языка MATLAB это выражение записывается так:



n = W*p + b.

Структура нейрона, показанная на рис. 3.5, содержит много лишних деталей. При рассмотрении сетей, состоящих из большого числа нейронов, будет использоваться укрупненная структурная схема нейрона (рис. 3.6).

Вход нейрона изображается в виде темной вертикальной черты, под которой указывается количество элементов входа R. Размер вектора входа р указывается ниже символа р и равен Rxl. Вектор входа умножается на вектор-строку W длины R. Как и прежде, константа 1 рассматривается как вход, который умножается на скалярное смещение b. Входом n функции активации нейрона служит сумма смещения b и произведения W*p. Эта сумма преобразуется функцией активации f, на выходе которой получается выходная величина нейрона а, которая в данном случае является скалярной величиной. Структурная схема, приведенная на рис. 3.6, называется слоем сети. Слой характеризуется матрицей весов W, смещением b, операциями умножения W*p, суммирования и функцией активации f. Вектор входов р обычно не включается в характеристики слоя.

Рис. 3.6. Структурная схема нейрона

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

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



Рис. 3.7. Функции активации

Практические задания

Задание 1. Для функции активации с жесткими ограничениями hardlim и её производной dhardlim, определяемыми следующими соотношениями:



выполнить следующие действия:

1. Выдать на экран информацию об этих функциях с помощью следующих команд:

name=hardlim(′name′) % – полное название функции;

dname=hardlim(′deriv′) % – название производной;

inrange=hardlim(′active′) % – диапазон входа;

outrange=hardlim(′output′) % – диапазон выхода;

2. Построить графики функций:



n=-5:0,1:5;

a=hardlim(n);

da=dhardlim(n);

plot(n,a,′r′) % – график функции активации – красный;

hard on

plot (n,da,′c′) % – график производной – голубой;

3. Рассчитать векторы выхода А и производной dA_dN для слоя из трёх нейронов с вектором входа N, состоящим из трёх компонентов:



N=[-0,7; 0,1; 0,8];

A=hardlim(N) % – вектор выхода функции актива;

dA_dN= dhardlim(N,A) % – вектор выхода производной.

4. Рассмотренную последовательность команд оформить в виде скрипта и записать в М-файл с именем hardlimfile.



Задание 2. Для симметричной функции активации с жёсткими ограничениями hardlims и её производной dhardlims, определяемыми соотношениями



выдать на экран информацию об этих функциях, построить их графики и рассчитать векторы выхода, воспользовавшись скриптом из М-файла hardlimfile. Новый скрипт записать в файл под именем hardlimsfile.



Задание 3. Для линейной функции активации purelin и ее производной, dpurelin, определяемыми соотношениями

рurelin = n;

dpurelin = 1,

выдать на экран информацию об этих функциях, построить их графики и рассчитать векторы выхода, воспользовавшись скриптом из М-файла hardlimfile. Новый скрипт записать в файл под именем purelinfile.



Задание 4. Для положительной линейной функции активации
poslin и ее производной dposlin, определяемыми соотношениями
1   2   3   4   5   6   7   8   9   ...   17


База данных защищена авторским правом ©infoeto.ru 2022
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница