Мегаобучалка Главная | О нас | Обратная связь


Моделирование работы персептрона



2015-11-27 1180 Обсуждений (0)
Моделирование работы персептрона 0.00 из 5.00 0 оценок




 

Промоделируем работу персептрона, задавая различные значения весов (мы пока не применяем обучения). Используем сконфигурированный в предыдущем разделе персептрон. По умолчанию веса и смещения равны нулю. Установим веса и смещения

>> net1.IW{1,1}=[-1 1];

>> net1.b{1}=[1];

Разделяющая линия при таких весах и смещении имеет вид

.

Моделируем сеть с входным вектором P=[1; 1]

>> a1=net1(P)

a1 =

Легко проверить, что согласно при таком входном векторе на выходе должна быть 1.

Задаем вход p1

>> P2=[1; -1];

и моделируем работу сети

>> a2=net1(P2)

a2 =

Таким образом, персептрон правильно классифицировал векторы.

Задав массивы векторов входа и целей, можно построить график разделяющей линии. Определим векторы входов p3 и целейt3в виде массивов:

>> p3=[1 1; 1 -1];

>> t3=[1 0];

Построим векторы p3и t3в виде маркеров различного типа

>> plotpv(p3, t3)

Результаты представлены на рис. 1.7.

 

 

Рис. 1.7. Результаты моделирования в виде маркеров

 

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

Если известны веса и смещение обученной сети (а мы задали правильные значения весов и смещений), то можно построить разделяющую линию в пространстве входов:

>> plotpc(net1.IW{1,1}, net1.b{1})

График разделяющей линии показан на рис. 1.8.

 

 

Рис. 1.8. График разделяющей линии

Адаптация персептрона

 

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

 

,

где и , — соответственно, входной вектор и соответствующее целевое значение.

Для адаптации персептрона используется функция adapt, которая для персептрона имеет синтаксис

[net1,Y,E]=adapt(net,P,T).

Входные аргументы:

net — имя нейронной сети;

P — массив ячеек входных векторов обучающего множества;

T — массив ячеек целевых значений.

Выходные аргументы:

net1 — имя адаптированной сети;

Y— массив ячеек выходов сети для каждого обучающего примера;

E — массив ячеек ошибок сети.

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

Программа adapt.m проводит адаптацию до тех пор, пока сумма квадратов ошибок (функция sse) не станет равной нулю. Для преобразования числовых массивов в массивы ячеек используется функция con2seq.

Программа adapt.m

 

% Обучение персептрона с двумя входами

clc % Очистка командного окна

clear % Очистка рабочего пространства

P = [-0.5 -0.5 +0.3 -0.1; -0.5 +0.5 -0.5 +1.0];

T = [1 1 0 0];

net = perceptron; % Создание персептрона

net = configure(net,P,T); % Конфигурирование персептрона

PP = con2seq(P); % Преобразование числового массива в массив ячеек

TT = con2seq(T);

E=1; % начальное значение ошибки

k=0; % счетчик циклов обучения

disp('ПРОЦЕСС АДАПТАЦИИ СЕТИ')

while(sse(E)) % пока среднеквадратическая ошибка не равна нулю

k=k+1

[net,a,E]=adapt(net, PP, TT); % адаптация сети

E

end

plotpv(P,T); % отображение векторов входов и целей в виде маркеров

plotpc(net.IW{1}, net.b{1}); % построение разделяющей линии

disp('РЕЗУЛЬТАТЫ АДАПТАЦИИ')

disp('Веса')

twts=net.IW{1} % веса

disp('Смещение')

tbiase=net.b{1} % смещение

disp('Выход сети')

a % выход сети

disp('Ошибка сети')

E % ошибка сети

disp('Число циклов обучения сети')

k % счетчик циклов обучения

 

Программа выводит вектор ошибки в каждом цикле адаптации и результаты адаптации:

 

ПРОЦЕСС АДАПТАЦИИ СЕТИ

k =

E =

[0] [0] [-1] [0]

k =

E =

[1] [0] [0] [-1]

k =

E =

[1] [1] [-1] [0]

k =

E =

[0] [0] [0] [0]

 

РЕЗУЛЬТАТЫ АДАПТАЦИИ

Веса

twts =

-2.0000 -0.5000

Смещение

tbiase =

Выход сети

a =

[1] [1] [0] [0]

Ошибка сети

E =

[0] [0] [0] [0]

Число циклов обучения сети

k =

 

График разделяющей линии показан на рис. 1.9.

 

 

Рис. 1.9. График разделяющей линии

 

Рис. 1.9 подтверждает правильную работу персептрона.

 

Задания

 

1. Проделайте все примеры, приведенные в работе.

2. Докажите правильность результатов работы программы adapt2.m.

3. Обучите разработанный нейрон на предложенном преподавателем варианте двухмерных данных и проверьте его работу на ряде контрольных точек. Обратите внимание на то, что некоторые варианты данных не являются линейно разделимыми. Ниже даны варианты различных обучающих выборок (масштабирующими значениями x1,m и x2,m необходимо задаться).

  Вариант 1 обучающих данных Вариант 2 обучающих данных
Вариант 3 обучающих данных Вариант 4 обучающих данных
Вариант 5 обучающих данных Вариант 6 обучающих данных
Вариант 7 обучающих данных Вариант 8 обучающих данных

Рис. 1.10. Варианты заданий




2015-11-27 1180 Обсуждений (0)
Моделирование работы персептрона 0.00 из 5.00 0 оценок









Обсуждение в статье: Моделирование работы персептрона

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1180)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.026 сек.)