Пример создания модели персептрона
Синтаксис: net = newp(PR, s, tf, lf) Описание: Персептроны предназначены для решения задач классификации входных векторов, относящихся к классу линейно отделимых. Функция net = newp(PR, s, tf, lf) формирует нейронную сеть персептрона. Входные аргументы: PR - массив размера Rx2 минимальных и максимальных значений для R векторов входа; s - число нейронов; tf- функция активации из списка {hardlim, hardlims), по умолчанию hardlim; lf - обучающая функция из списка {learnp, learnpn), по умолчанию learnp. Выходные аргументы: net - объект класса network object. Свойства: Персептрон - это однослойная нейронная сеть с функциями взвешивания dotprod, накопления потенциала netsum и выбранной функцией активации. Слой характеризуется матрицей весов и вектором смещений, которые инициализируются М-функцией initzero. Адаптация и обучение выполняются М-функциями adaptwb и trainwb, которые модифицируют значения весов и смещений до тех пор, пока не будет достигнуто требуемое значение критерия качества обучения в виде средней абсолютной ошибки, вычисляемой М-функцией mае. Пример: Создать персептрон с одним нейроном, входной вектор которого имеет 2 элемента, значения которых не выходят за пределы диапазона (рис. 2.5): net = newp ([0 1; 0 1], 1); gensim(net) % (рис.2.5) Определим последовательность двухэлементных векторов входа Р, составленных из 0 и 1: Р = {[0; 0] [0; 1] [1; 0] [1; 1]}; Обучим персептрон выполнять операцию ЛОГИЧЕСКОЕ И. С этой целью для полного набора входных векторов сформируем последовательность целей: P1 = cat(2, Р{: }); Т1 = num2cell(P1(1,:) & Pl(2,:)) T1 = [0] [0] [0] [1]
Применим процедуру адаптации, установив число проходов равным 10: net.adaptParam.passes = 10; net = adapt(net, P, T1); Вектор весов и смещение можно определить следующим образом: net.IW{1}, net.b{1} ans = 2 1 ans = -3 Таким образом, разделяющая линия имеет вид L: 2р1 + р2 - 3 = 0. Промоделируем спроектированную нейронную сеть, подав входную обучающую последовательность: Y = sim(net, P) Y = [0] [0] [0] [1] Настройка параметров сети выполнена правильно. Обучим персептрон выполнять операцию НЕИСКЛЮЧАЮЩЕЕ ИЛИ. С этой целью для полного набора входных векторов Р сформируем последовательность целей: P1 = cat (2, P{: }); Т2 = num2cell(P1(1,:) | Р1(2,:)) Т2 = [0] [1] [1] [1] Применим процедуру обучения, установив число циклов равным 20: net.trainParam.epochs =20; net = train(net, P, T2); Вектор весов и смещение можно определить следующим образом: net.IW{1}, net.b{1} net.IW{1}, net.b{1} ans = 2 2 ans = -2 Таким образом, разделяющая линия имеет вид L: 2p1+2p2-2 = 0. Промоделируем спроектированную нейронную сеть, подав входную обучающую последовательность: Y = sim(net, P) Y = [0] [1] [1] [1] Обучение и настройка сети выполнены правильно. Замечание: Персептроны решают задачу классификации линейно отделимых входных векторов за конечное время. В случае больших по длине входных векторов функция обучения learnpn может быть по времени выполнения предпочтительнее функции обучения learnp. Сопутствующие функции: SIM, INIT, ADAPT, TRAIN, HARDLIM, HARDLIMS, LEARNP, LEARNPN. Задачи 1. Построить модель персептрона с помощью стандартных блоков (blockset), используя весовые коэффициенты и смещения для своего варианта. 2. Решить задачу распознавания с помощью этого персептрона и подобрать два множества точек, принадлежащих двум разным классам, разделяемым построенным решающим правилом (по 5-6 точек). 3. Ознакомиться со стандартной моделью персептрона из ППП Neural Network MatLab 6.1 и обучить ее на полученных множествах. 4. Проверить правильность распознавания обученным персептроном. Содержание отчета 1. Персептрон, описание его входов, выхода, пороговая функция. Обучение персептрона. Решение задачи распознавания с помощью персептрона. 2. Модель персептрона с заданными весовыми коэффициентами и смещением (в соответствии со своим вариантом, табл.2.2). 3. Графическое изображение двух множеств точек на плоскости, разделяемых полученным решающим правилом, и самого правила. 4. Стандартная модель персептрона из ППП Neural Network MatLab 6.1 и процедура его обучения. Полученные весовые коэффициенты и смещение. 5. Графическая интерпретация нового решающего правила и правила, построенного ранее по заданным коэффициентам. Варианты коэффициентов для решающего правила Таблица 2.2
Контрольные вопросы 1. Что такое персептрон и как он устроен? 2. Как происходит обучение персептрона? 3. Что такое пороговая функция и каких видов она бывает? 4. Что такое явление переобучения персептрона? 5. Что такое выпуклая и вогнутая области? 6. Какие типы областей разделяются линейным решателем? 7. Опишите процедуру создания персептрона в ППП Neural Network MATLAB 6.1 и ее параметры. 8. Опишите процедуру обучения персептрона в ППП Neural Network MATLAB 6.1 и ее параметры.
|