по дисциплине: «Искусственные нейронные сети и нечеткая логика в задачах контроля и управления»
на тему: «Применение линейных сетей»
Вариант №1
Выполнил: студент группы 78-61
ФИО
Проверил: к.т.н., доцент кафедры АИТ
Горшкова К. Л.
Альметьевск, 2020
Цель работы:
- моделирование адаптируемых линейных сетей в системе Matlab и решение с их помощью задач фильтрации сигналов;
- задача классификации векторов;
- построение персептронной нейронной сети для задач классификации разделимых векторов.
Краткие теоретические сведения:
На рисунке 1 представлена структурная схема цифрового фильтра, отличительной особенностью которого является то, что он включает динамический компонент - линию задержки (ЛЗ) и 1 слой линейной нейронной сети.
Последовательность значений входного сигнала {p(k)} поступает на ЛЗ, состоящую из N −1 блока запаздывания; выход ЛЗ - N − мерный вектор pd, составленный из значений входа в моменты времени k, k −1,..., k − N −1.
Рисунок 1 – Структурная схема цифрового фильтра
Выход линейного нейронного слоя и фильтра в целом описывается следующим динамическим соотношением:
Задание:
Количество ЛЗ – 2; количество нейронов – 1 | ||
Значения входов | Начальные условия ЛЗ | Целевые выходы |
{6 7 8 9} | {4 5} | {0 10 20 30} |
1. Разработать адаптируемую линейную сеть в системе Matlab, выполнить ее настройку с точностью 0,01 по выходному сигналу.
Количество ЛЗ – 2; количество нейронов – 1 | ||
Значения входов | Начальные условия ЛЗ | Целевые выходы |
{4 5 6 7} | {2 3} | {10 15 20 25} |
2. Промоделировать созданную адаптируемую линейную сеть с векторами входа из обучающего множества и вычислить ошибки сети.
3. Осуществить моделирование настроенной нейронной сети для пяти новых наборов входных векторов и проверить правильность решения задачи фильтрации сигнала сетью.
Выполнение работы:
Листинг программы:
net=newlin([0,10],1);
%ЛЗ с двумя тактами запаздывания
net.inputWeights{1,1}.delays=[0 1 2];
net.IW{1}=[7 8 9];
net.b{1}=[0];
pi={2 3} %Начальные условия для динамических блоков линии задержки
P= {4 5 6 7}
T= {10 15 20 25}
net.adaptParam.goal = 0.01;
net.adaptParam.passes = 500;
[net,Y,E,pf,af] = adapt(net,P,T,pi); %Процедура адаптации
wts = net.IW{1,1} % Присваивание переменной wts значений весов
bias = net.b{1} %Присваивание переменной bias значений смещения
Y, E
Полученные результаты:
Целевые выходы:
T =
[10] [15] [20] [25]
Выходы полученной сети:
Y =
[70] [70.6000] [54.1720] [34.3200]
Вычисленные ошибки сети:
E =
[-60] [-55.6000] [-34.1720] [-9.3200]
Моделирование настроенной нейронной сети для пяти новых наборов входных векторов:
pi1 = {1 2};
p1 = {1 2 3 4};
T1 = {-10 -5 0 5};
[Y1,Pf1,Af1,E1] = sim(net,p1,pi1,[],T1);
pi2 = {3 4};
p2 = {4 5 6 7};
T2 = {-20 -10 0 10};
[Y2,Pf2,Af2,E2] = sim(net,p2,pi2,[],T2);
pi3 = {2 3};
p3 = {3 4 5 6};
T3 = {5 10 15 20};
[Y3,Pf3,Af3,E3] = sim(net,p3,pi3,[],T3);
pi4 = {5 6};
p4 = {5 6 7 8};
T4 = {-20 -10 0 10};
[Y4,Pf4,Af4,E4] = sim(net,p4,pi4,[],T4);
pi5 = {3 4};
p5 = {4 5 6 7};
T5 = {10 20 30 40};
[Y5,Pf5,Af5,E5] = sim(net,p5,pi5,[],T5);
Pi = [pi1; pi2; pi3; pi4; pi5]
P = [p1; p2; p3; p4; p5]
T = [T1; T2; T3; T4; T5]
Y = [Y1; Y2; Y3; Y4; Y5]
err = [E1; E2; E3; E4; E5]
Полученные результаты:
T =
[-10] [ -5] [ 0] [ 5]
[-20] [-10] [ 0] [10]
[ 5] [ 10] [15] [20]
[-20] [-10] [ 0] [10]
[ 10] [ 20] [30] [40]
Y =
{[ 5.2419]} {[ 6.9501]} {[ 3.4764]} {[ 8.6010]}
{[14.6083]} {[18.0247]} {[18.8502]} {[23.9748]}
{[ 9.4837]} {[12.9001]} {[13.7256]} {[18.8502]}
{[25.7402]} {[27.4484]} {[23.9748]} {[29.0994]}
{[14.6083]} {[18.0247]} {[18.8502]} {[23.9748]}
err =
{[-15.2419]} {[-11.9501]} {[ -3.4764]} {[ -3.6010]}
{[-34.6083]} {[-28.0247]} {[-18.8502]} {[-13.9748]}
{[ -4.4837]} {[ -2.9001]} {[ 1.2744]} {[ 1.1498]}
{[-45.7402]} {[-37.4484]} {[-23.9748]} {[-19.0994]}
{[ -4.6083]} {[ 1.9753]} {[ 11.1498]} {[ 16.0252]}
Вывод: в ходе выполнения данной работы была разработана адаптируемая линейную сеть в системе Matlab и выполнена её настройка по выходному сигналу. Промоделирована созданная адаптируемая линейная сеть с векторами входа и вычислить ошибки сети, а также промоделирована настроенная нейронная сеть для пяти новых наборов входных векторов.