Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Моделирование процесса обучения.
Цель работы: изучение модели нейрона персептрона и архитектуры персептронной однослойной нейронной сети; создание и исследование моделей персептронных нейронных сетей в системе MATLAB.
Методические указания
Персептроном называется простейшая нейронная сеть, веса и смещения которого могут быть настроены таким образом, чтобы решить задачу классификации входных векторов. Задачи классификации позволяют решать сложные проблемы анализа коммутационных соединений, распознавания образов и других задач классификации с высоким быстродействием и гарантией правильного результата.
Архитектура персептрона Нейрон персептрона Нейрон, используемый в модели персептрона, имеет ступенчатую функцию активации hardlim с жесткими ограничениями (рисунок 4.1).
Рисунок 4.1 – Модель нейрона Каждое значение элемента вектора входа персептрона умножено на соответствующий вес w1j, и сумма полученных взвешенных элементов является входом функции активации. Если вход функции активации n ≥ 0, то нейрон персептрона возвращает 1, если n < 0, то 0. Функция активации с жесткими ограничениями придает персептрону способность классифицировать векторы входа, разделяя пространство входов на две области, как это показано на рисунке 4.2, для персептрона с двумя входами и смещением.
Рисунок 4.2 – Пространство входов
Пространство входов делится на две области разделяющей линией L, которая для двумерного случая задается уравнением (4.1)
Эта линия перпендикулярна к вектору весов w и смещена на величину b. Векторы входа выше линии L соответствуют положительному потенциалу нейрона, и, следовательно, выход персептрона для этих векторов будет равен 1; векторы входа ниже линии L соответствуют выходу персептрона, равному 0. При изменении значений смещения и весов граница линии L изменяет свое положение. Персептрон без смещения всегда формирует разделяющую линию, проходящую через начало координат; добавление смещения формирует линию, которая не проходит через начало координат, как это показано на рисунке 4.2. В случае, когда размерность вектора входа превышает 2, т. е. входной вектор Р имеет более 2 элементов, разделяющей границей будет служить гиперплоскость. Модель персептрона Для формирования модели однослойного персептрона в системе MATLAB предназначена функция newp net = newp(PR, S) со следующими входными аргументами: PR – массив минимальных и максимальных значений для R элементов входа размера Rx2; S – число нейронов в слое. Например, функция net = newp([0 2], 1); создает персептрон с одноэлементным входом и одним нейроном; диапазон значений входа – [0 2]. В качестве функции активации персептрона по умолчанию используется функция hardlim. Моделирование персептрона Рассмотрим однослойный персептрон с одним двухэлементным вектором входа, значения элементов которого изменяются в диапазоне от –2 до 2 (p1 = [–2 2], p2 = [–2 2], число нейронов в сети S = 1): clear, net = newp([-2 2; -2 2], 1); %Создание персептрона net По умолчанию веса и смещение равны нулю, и для того, чтобы установить желаемые значения, необходимо применить следующие операторы:
Запишем уравнение (1) в развернутом виде для данной сети:
В этом случае разделяющая линия имеет вид L: -p1 + p2 + 1 = 0 и соответствует линии L на рисунке 4.2.
Определим реакцию сети на входные векторы p1 и p2, расположенные по разные стороны от разделяющей линии:
p1 = [1; 1]; a1 = sim(net, p1 % Моделирование сети net с входным вектором p1 a1 = 1 p2 = [1; -1]; a2 = sim(net, p2) % Моделирование сети net с входным вектором p2
a2 = 0
Персептрон правильно классифицировал эти два вектора. Заметим, что можно было бы ввести последовательность двух векторов в виде массива ячеек и получить результат также в виде массива ячеек. p3 = {[1; 1] [1; -1]} a3 = sim(net, p3) % Моделирование сети net при входном сигнале p3
p3 = [2x1 double] [2x1 double] a3 = [1] [0] Инициализация параметров
Для однослойного персептрона в качестве параметров нейронной сети в общем случае выступают веса входов и смещения. Допустим, что создается персептрон с двухэлементным вектором входа и одним нейроном clear, net = newp([-2 2; -2 2], 1); Запросим характеристики весов входа Из этого списка следует, что в качестве функции инициализации по умолчанию используется функция initzero, которая присваивает весам входа нулевые значения. В этом можно убедиться, если извлечь значения элементов матрицы весов и смещения: wts = net.IW{1, 1}, bias = net.b{1} wts = 0 0 bias = 0 Теперь переустановим значения элементов матрицы весов и сме- щения: net.IW{1, 1} = [3, 4]; net.b{1} = 5; wts = net.IW{1, 1}, bias = net.b{1} wts = 3 4 bias = 5 Для того чтобы вернуться к первоначальным установкам парамет- ров персептрона, предназначена функция init:
net = init(net); wts = net.IW{1, 1}, bias = net.b{1}
wts = 0 0 bias = 0
Можно изменить способ, каким инициализируется персептрон с помощью функции init. Для этого достаточно изменить тип функций инициализации, которые применяются для установки первоначальных значений весов входов и смещений. Например, воспользуемся функцией инициализации rands, которая устанавливает случайные значения параметров персептрона:
% Задать функции инициализации весов и смещений net.inputweights{1, 1}.initFcn = 'rands'; net.biases{1}.initFcn = 'rands'; % Выполнить инициализацию ранее созданной сети с новыми функциями net = init(net); wts = net.IW{1, 1}, bias = net.b{1} wts = -0.1886 0.8709 bias = -0.6475
Видно, что веса и смещения выбраны случайным образом. Порядок выполнения работы 1. Для заданного преподавателем варианта (таблица) разработать структурную схему персептронной нейронной сети. 2. Разработать алгоритм создания и моделирования персептрон- ной нейронной сети. 3. Реализовать разработанный алгоритм в системе MATLAB. 4. Определить параметры созданной нейронной сети (веса и сме- щение) и проверить правильность работы сети для последовательно- сти входных векторов (не менее 5). 5. Построить график, аналогичный представленному на рис. 2, для своих исходных данных. Задание к работе
1. Изучение теоретических сведений по теме лабораторной работы 2. Простой персептрон. Алгоритм обучения персептрона 3. Постановка задачи распознавания образов. 4. Описание структуры используемого персептрона 5. Реализовать разработанный алгоритм в системе MATLAB. 6. Определить параметры созданной нейронной сети (веса и смещение) и проверить правильность работы сети для последовательности входных векторов (не менее 5). 7. Построить график, аналогичный представленному на рисунке 4.2, для своих исходных данных. 8. Алгоритм работы программы 9. Оформление отчета по лабораторной работе, который должен содержать: Название и задание к лабораторной работе Ответы на контрольные вопросы и задания 10. Защита лабораторной работы
Контрольные вопросы 1. Что такое нейроподобный элемент? 2. В естественном нейроне аксон, а в нейроподобном элементе -..? 3. Что такое нейронная сеть? 4. Какие типы искусственных нейронных сетей бывают? 5. Какие задачи не может решить простой однослойный персептрон? 6. Какие виды связей существуют в нейронных сетях? 7. В чем отличие правила Уидроу-Хоффа от дельта-правила? 8. Какие основные выходные функции используют при построении нейроподобных элементов? 9. Какая выходная функция используется при построении персептрона в данной программе? 10. Для чего использован «ПОРОГ» в нейроподобных элементах?
Лабораторная работа №5 Популярное:
|
Последнее изменение этой страницы: 2017-03-08; Просмотров: 706; Нарушение авторского права страницы