Автор работы: Пользователь скрыл имя, 16 Декабря 2014 в 12:49, контрольная работа
В последние несколько лет мы наблюдаем взрыв интереса к нейронным сетям, которые успешно применяются в самых различных областях - бизнесе, медицине, технике, геологии, физике. Нейронные сети вошли в практику везде, где нужно решать задачи прогнозирования, классификации или управления. Такой впечатляющий успех определяется несколькими причинами:
богатые возможности: нейронные сети – исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости.
Введение…………………………………………………………………………...3
Аналитическая часть 5
Краткое описание возможностей MATLAB 6 и NNT 5
Понятие линейной сети 8
Архитектура линейной сети 9
Применение линейной сети 11
Функционирование линейной сети 14
Проектная часть………………………………………...……………………… 16
Заключение 20
Список использованной литературы 22
На рис 1.4 представлена структурная схема цифрового фильтра, отличительной особенностью которого является то, что он включает динамический компонент — линию задержки (ЛЗ) и 1 слой линейной нейронной сети.
ЛЗ Линейный слой
pd1
p(k) w11
pd2 n(k) a(k)
p(k-1)
w12 b
1
p(k-N-1) pdN
w1N
N a = purelin(Wp+b)
Рис. 1.4
Последовательность значений входного сигнала {p(k)} поступает на ЛЗ, состоящую из N-1 блока запаздывания; выход ЛЗ – N-мерный вектор pd, составленный из значений входа в моменты времени k, k-1, ... , k-N-1.
Выход линейного нейронного слоя и фильтра в целом описывается следующим динамическим соотношением:
a(k) = purelin(Wp + b) = Σ w1i a(k – i + 1) + b.
Линейные
динамические нейронные сети могут быть
адаптированы
для решения задач фильтрации временных
сигналов. Для сетей такого классе часто
используется название ADALINE(ADaptive LInear NEtwork)
- адаптируемые линейные
сети. Другие применения этих сетей:
Функционирование линейной сети
Для заданной линейной сети и соответствующего множества векторов входа и целей можно вычислить вектор выхода сети и сформировать разность между вектором выхода Р и целевым вектором, который определит некоторую погрешность. В процессе обучения сети требуется найти такие значения весов извещений, чтобы сумма квадратов соответствующих погрешностей была минимальной. Эта задача разрешима, потому что для линейных систем функция квадратичной ошибки является унимодальной.
Применяется процедура обучения с учителем, которая использует обучающее множество вида:
{p1 t1},{p2 t2}, … ,{pQ tQ},
где p1, p2, … , pQ – входы сети; t1, t2, … , tQ – соответствующие целевые выходы.
Требуется минимизировать следующую функцию средней квадратичной ошибки:
mse = 1/Q Σ e(k)2 = 1/Q Σ (t(k) – a(k))2
В отличие от многих других сетей настройка линейной сети для заданного обучающего множества может быть выполнена посредством прямого расчета с использование М-функции newlind.
Предположим, что заданы следующие векторы, принадлежащие обучающему множеству:
Р = [1 –1.2];
Т = [0.5 1];
Построим линейную сеть и промоделируем её:
Net = newlind(P,T);
Y = sim(net,P);
Y = 0.5 1
net.IW{1,1}
ans = -0.22727
net.b
аns = [0.72727]
Выход сети coответствует целевому вектору.
w_range=-1:0.1:0; b_range=0.5:0.1:1;
ES = errsurf(P,T, w_range, b_range, ’purelin’);
Contour(w_range, b_range, ES, 20)
hold on
plot(-2.2727e-001, 7.2727e-001, ‘x’) % Pис. 1.4.
hold off
Рис.1.4
На графике знаком х отмечены оптимальные значения веса и смещения для данной сети. Демонстрационный пример demolinl поясняет структуру линейной сети, построение поверхности ошибок и выбор оптимальных настроек.
Проектная часть
Основным применением нейронных сетей является аппроксимация функций. Такие сети имеют два слоя:
1) скрытый слой нейронов
с радиально-симметричной
График данной функции изображен ниже:
Радиальная функция имеет максимум, равный 1, когда аргумент функции (n) равен нулю. В слое с радиально-симметричной функцией вычисляется расстояние между вектором весов (w) и входным вектором (p). Размерность обоих векторов равна количеству входов рассматриваемого слоя – R. Затем величина расстояния (между w и p) умножается на параметр b (который позволяет задать чувствительность радиального нейрона). Полученное значение и есть аргумент радиальной функции.
Как только расстояние между w и p уменьшается, происходит увеличение значения радиальной функции. Таким образом, радиальный нейрон производит единицу каждый раз, когда вход p идентичен вектору весов w.
Для вычисления радиальной функции используется функция radbas.
Синтаксис:
A = radbas(N)
Входные аргументы:
N – вектор расстояний размера Sx1 для каждого нейрона S.
Выходные аргументы:
A – вектор значений радиальной функции для каждого нейрона S.
Пример:
n = -5:0.1:5;
a = radbas(n);
plot(n,a)
Установим входные значения P и связанных с ними выходных значений T (количество значений – 21), а также построим график для этих значений с использованием функций plot, xlabel, ylabel:
P = -1:.1:1;
T = [-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 ...
.1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 ...
.3072 .3960 .3449 .1816 -.0312 -.2189 -.3201];
plot(P,T,'+');
xlabel('Входной вектор P');
ylabel('Целевой вектор T');
2) выходной линейный слой. Данный
слой содержит нейроны с
Для создания нейронной сети используется функция newrb, которая добавляет нейроны в скрытый радиальный слой до тех пор, пока нейронная сеть не удовлетворяет заданному значению ошибки.
Синтаксис:
net = newrb(P,T,GOAL,SPREAD,MN,DF)
Входные аргументы:
P – массив размера RxQ входных векторов, где R – количество входов, Q – количество входных векторов;
T – массив размера SxQ целевых векторов, где R – количество выходов, Q – количество целевых векторов;
GOAL – целевая среднеквадратичная ошибка, по умолчанию равна 0;
SPREAD – константа радиальной функции, по умолчанию равна 1;
MN – максимальное число нейронов, по умолчанию равно Q;
DF – количество нейронов, которые необходимо добавлять после каждого вывода ошибки, по умолчанию равно 25.
Выходные аргументы:
net – объект класса network object.
Пример:
Установим входные значения P и связанных с ними выходных значений T (количество значений – 21), а также построим график для этих значений с использованием функций plot, xlabel, ylabel:
P = [1 2 3 4 5 6 7 8 9 10 11 12 13];
T = [2.0 4.1 5.9 3.6 1.7 7.3 6.1 9.2 3.8 1.2 4.9 6.3 7,4];
plot(P,T,'+');
xlabel('Входной вектор P');
ylabel('Целевой вектор T');
net = newrb(P, T, 0.02, 1);
В результате создается двухслойная радиальная нейронная сеть, которая аппроксимирует данные, заданные векторами P и T. Для сети установлена среднеквадратичная ошибка, равная 0.02, а также параметр spread, равный единице.
В процессе обучения автоматически составляется график ошибки сети в зависимости от номера эпохи. Чтобы увидеть, насколько точно RBF-сеть аппроксимирует данные, необходимо протестировать сеть и вывести график выходных откликов сети:
plot(P,T,'+');
xlabel('Input');
X = -1:.01:1;
Y = sim(net,X);
hold on;
plot(X,Y);
hold off;
legend({'Target','Output'})
Заключение
В курсовой работе познакомились с линейной нейронной сетью и ее функционированием.
Основные преимущества и ограничения линейных сетей:
В последние десятилетия в мире нейронная сеть приобрела широкое использование и распространение. Исследования в области применения нейронных сетей еще только начинаются, и, может быть, удастся создать аналитический метод интерпретации результатов обучения нейронной сети, обосновать число выбранных нейронов и найти более быстрые и лучше алгоритмы обучения и функционирования нейронов и нейронных сетей.
Список использованной литературы