Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
958.98 Кб
Скачать

Линейные нейронные сети

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

Архитектура линейной сети Модель нейрона

На рис. 9 показан линейный нейрон с двумя входами. Он имеет структуру, сходную со структурой персептрона. Единственное отличие состоит в том, что используется линейная функция активации purelin.

Весовая матрица W в этом случае имеет только одну строку, и выход сети определяется выражением

а = purelin(n)= purelin (Wp +b)= Wp+ b = w11p1 + w12p2+b (9)

Подобно персептрону, линейная сеть задает в пространстве входов разделяющую линию, на которой функция активации n равна 0 (рис. 10).

Рис.9. Линейная ИНС

Рис.10. Разделяющая линия

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

Однако такая классификация может быть выполнена только для класса линейно отделимых объектов. Таким образом, линейные сети имеют то же самое ограничение, что и персептрон.

Архитектура сети

Линейная сеть, показанная на рис. 8,а, включает S нейронов, размещенных в одном слое и связанных с R входами через матрицу весов W.

На рис. 11,б показана укрупненная структурная схема этой сети, вектор выхода а которой имеет размер S1.

Создание модели линейной сети

Линейную сеть, показанную на рис.6, можно создать следующим образом:

clear, net=newlin([-1 1; -1 1],1);

Первый входной аргумент задает диапазон изменения элементов вектора входа; второй аргумент указывает, что сеть имеет единственный выход. Начальные веса и смещение по умолчанию равны нулю.

Присвоим весам и смещению следующие значения:

net.IW{1,1}=[2 3];

net.b{1}=[-4];

Рис.11

Теперь можно промоделировать линейную сеть для следующего предъявленного входа:

p=[5;6];

a=sim(net,p)

a =

24

Видно, что сеть правильно классифицировала входной вектор.

Обучение линейной сети

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

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

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

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

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

(p1t1}, {p2,t2},...,{pQ,tQ} (10)

Требуется минимизировать одну из следующих функций квадратичной ошибки:

(11)

или

(12)

где mse – средняя квадратичная ошибка; sse – сумма квадратов ошибок.