Отчет по практической работе №7
по дисциплине: «Искусственные нейронные сети и нечеткая логика в задачах контроля и управления»
на тему: «Линейные сети»
Вариант №1
Выполнил: студент группы 78-61
ФИО
Проверил: к.т.н., доцент кафедры АИТ
Горшкова К. Л.
Альметьевск, 2020
Цель работы:
- разработка структурной схемы линейной нейронной сети;
- разработка алгоритма создания и моделирования линейной нейронной сети;
- определение параметров созданной нейронной сети.
Краткие теоретические сведения
Линейные сети по структуре аналогичны персептрону и отличаются функцией активации. Выход линейной сети может принимать любое значение, в то время как выход персептрона ограничен значениями 0 или 1.
На рисунке 1 показан линейный нейрон с двумя входами. Он имеет структуру, сходную со структурой персептрона. Отличается лишь в том, что используется линейная функция активации purelin.
Рисунок 1 - Линейный нейрон с двумя входами
Весовая матрица W имеет одну строку и выход сети определяется следующим выражением:
|
|
Аналогично персептрону, линейная сеть задается в пространстве входов разделяющую линию, на которой функция активации n равна 0 (рис. 2).
Рисунок 2 – Разделяющая линия в пространстве входов линейной сети
Векторы входа, которые расположены выше этой линии соответствуют положительным значениям выхода, а расположенные ниже – отрицательным. В результате линейная сеть может быть применена для решения задач классификации. Такая классификация может быть выполнена для класса линейно отделимых объектов. Таким образом, линейные сети имеют то же самое ограничение, что и персептрон.
Задание:
1. Разработать структурную схему линейной нейронной сети.
Количество входов | Диапазоны значений входов | Количество нейронов в слое |
2 | − 6…+ 6 | 3 |
2. Разработать алгоритм создания и моделирования линейной нейронной сети.
3. Реализовать разработанный алгоритм в программе Matlab.
4. Определить параметры созданной нейронной сети: веса и смещение. Проверить правильность работы сети для последовательности входных векторов (не менее 5).
5. Построить график, аналогичный изображенному рисунку 2, для своих исходных данных.
6. Установить новые значения матриц весов и смещения с помощью функции инициализации rands.
Выполнение работы:
Структурная схема линейной нейронной сети (рис. 3).
Рисунок 3 - Структурная схема линейной нейронной сети
Листинг программы:
clear,net=newlin([-6 6; -6 6],3);% Линейная сеть - 2 входа, 3 нейрона
net.IW{1,1} = [2 3; 2 3; 2 3]; % Веса
net.b{1} = [-4; -4; -4]; % Смещения
p1 = [1; 3]; % Входные данные
p2 = [5; 4];
|
|
p3 = [3; 4];
p4 = [2; 3];
p5 = [4; 3];
a1 = sim(net, p1) % Моделирование
a2 = sim(net, p2)
a3 = sim(net, p3)
a4 = sim(net, p4)
a5 = sim(net, p5)
Полученный результат:
a1 = 7 7 7 | a2 = 18 18 18 | a3 = 14 14 14 | a4 = 9 9 9 | a5 = 13 13 13 |
Таким образом, сеть правильно классифицировала входные векторы.
Рисунок 4 – Разделяющая линия в пространстве входов линейной сети для исходных данных
Установим новые значения матриц весов и смещения с помощью функции инициализации rands:
net.inputweights{1,1}.initFcn = 'rands';
net.biases{1}.initFcn = 'rands';
net = init(net);
wts = net.IW{1,1}, bias = net.b{1}
Полученный результат:
wts =
0.8268 -0.4430
0.2647 0.0938
-0.8049 0.9150
bias =
0.6294
0.8116
-0.7460
Вывод: в ходе выполнения данной работы была создана и промоделирована линейная нейронная сеть. Определены параметры созданной нейронной сети: веса и смещение. Проверена правильность работы сети для последовательности входных векторов. А также установены новые значения матриц весов и смещения с помощью функции инициализации rands.