Функционирование линейной сети

Автор работы: Пользователь скрыл имя, 16 Декабря 2014 в 12:49, контрольная работа

Краткое описание

В последние несколько лет мы наблюдаем взрыв интереса к нейронным сетям, которые успешно применяются в самых различных областях - бизнесе, медицине, технике, геологии, физике. Нейронные сети вошли в практику везде, где нужно решать задачи прогнозирования, классификации или управления. Такой впечатляющий успех определяется несколькими причинами:
богатые возможности: нейронные сети – исключительно мощный метод моделирования, позволяющий воспроизводить чрезвычайно сложные зависимости.

Содержание

Введение…………………………………………………………………………...3
Аналитическая часть 5
Краткое описание возможностей MATLAB 6 и NNT 5
Понятие линейной сети 8
Архитектура линейной сети 9
Применение линейной сети 11
Функционирование линейной сети 14
Проектная часть………………………………………...……………………… 16
Заключение 20
Список использованной литературы 22

Прикрепленные файлы: 1 файл

КУРСАЧ ПО ИИС.docx

— 274.21 Кб (Скачать документ)

На рис 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) - адаптируемые линейные 
сети. Другие применения этих сетей:

    • Предсказание сигнала
    • Подавление шумов: задача подавления шумов возникает в следующей ситуации. Когда пилот говорит в микрофон, шум двигателя в кабине добавляется к голосовому сигналу и пассажиры слышат речь с искажениями. Требуется восстановить речь пилота, удалив из нее звуки шумов двигателя.
    • Многомерные цифровые фильтры: для проектирования многомерных фильтров следует применять сети ADALINE, в которых используется более одного нейрона. Это приведет к тому, что вместо вектора весов входа будет использоваться матрица весов W, а вместо единственного смещения - вектор смещений b.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функционирование линейной сети

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

Применяется процедура обучения с учителем, которая использует обучающее множество вида:

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

 

Для создания нейронной сети используется функция 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'})

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

В курсовой работе познакомились с линейной нейронной сетью и ее функционированием.

Основные преимущества и ограничения линейных сетей:

    • Однослойные линейные сети могут быть либо рассчитаны непосредственно, либо обучены с использованием правила обучения WH. Кроме того, для их настройки могут применяться процедуры адаптации.
    • Архитектура однослойной линейной сети полностью определяется задачей, которая должна будет решена, причем число входов сети и число нейронов в слое определяется числом входов и выходов задачи.
    • Адаптируемые линейные сети ADALINE находят большое практическое применение при построении цифровых фильтров для обработки сигналов.
    • Линейные нейронные сети могут быть успешно обучены только в том случае, когда входы и выходы связаны линейно. Тем не менее, даже в том случае, когда линейная сеть не может найти точного решения, она в состоянии построить наиболее близкое решение в смысле минимума среднеквадратичной ошибки при условии, что параметр обучения достаточно мал. Такая сеть найдет наиболее точное решение в рамках линейной структуры сети. Это обусловлено тем, что поверхность ошибки обучения является многомерным параболоидом, имеющим единственный минимум, и алгоритм градиентного спуска должен привести решение к этому минимуму.
    • При работе с моделями линейных сетей могут возникать ситуации, когда число настраиваемых параметров недостаточно, чтобы выполнить все условия, в этом случае говорят, что сеть переопределена. Однако может иметь место и обратная ситуация, когда число настраиваемых параметров слишком велико, в этом случае говорят, что сеть не доопределена. Тем не менее, в обоих случаях метод наименьших квадратов осуществляет настройку, стремясь минимизировать ошибку сети.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список использованной литературы

  1. Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6 – М.: Диалог-МИФИ, 2002. – 489 с.
  2. Мартынов Н.Н. Введение в MATLAB 6.x. – М.: Кудиц-образ, 2002. – 347 с.
  3. Барский А. Б. Нейронные сети: распознавание, управление, принятие решений. –М.: Финансы и статистика, 2004. — 176 с.
  4. Конюшенко В.В. MATLAB - М.: Финансы и статистика, 2003. — 73 с.
  5. Круглов В.В. Искусственные нейронные сети: теория и практика. – М.: Горячая линия-Телеком, 2002. – 381 с.

                                    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Информация о работе Функционирование линейной сети