Теоретическое введение. Простейшая из нейронных сетей - однослойный персептрон, веса и смещение которого могут быть настроены таким образом
Простейшая из нейронных сетей - однослойный персептрон, веса и смещение которого могут быть настроены таким образом, чтобы решить задачу классификации входных векторов, что позволит в дальнейшем решать сложные проблемы анализа коммутационных соединений, распознавания образов и других задач классификации с высоким быстродействием и гарантией правильного результата. По команде help percept можно получить следующую информацию об М-функциях, входящих в состав ППП Neural Network Toolbox и относящихся к построению нейронных сетей на основе персептронов (табл.2.1).
Таблица 2.1
Нейрон персептрона. Нейрон, используемый в модели персептрона, имеет ступенчатую функцию активации hardlim с жесткими ограничениями (рис. 2.1). Каждый элемент вектора входа персептрона взвешен с соответствующим весом w1j, и их сумма является входом функции активации. Нейрон персептрона возвращает 1, если вход функции активации n³ 0, и 0, если n< 0. Рис. 2.1. Нейрон персептрона
Функция активации с жесткими ограничениями придает персептрону способность классифицировать векторы входа, разделяя пространство входов на две области, как это показано на рис. 2.2 для персептрона с двумя входами и смещением. Рис. 2.2. Классификация точек на плоскости
Пространство входов делится на две области разделяющей линией L, которая для двумерного случая задается уравнением wTp + b = 0. (2.1) Эта линия перпендикулярна к вектору весов w и смещена на величину b. Векторы входа выше линии L соответствуют положительному потенциалу нейрона, и, следовательно, выход персептрона для этих векторов будет равен 1; векторы входа ниже линии L соответствуют выходу персептрона, равному 0. При изменении значений смещения и весов граница линии L изменяет свое положение. Персептрон без смещения всегда формирует разделяющую линию, проходящую через начало координат; добавление смещения формирует линию, которая не проходит через начало координат, как это показано на рис. 2.2. В случае, когда размерность вектора входа превышает 2, разделяющей границей будет служить гиперплоскость. Демонстрационная программа nnd4db наглядно иллюстрирует перемещение разделяющей линии при решении задачи классификации векторов входа.
Архитектура сети. Персептрон состоит из единственного слоя, включающего S нейронов, как это показано на рис. 2.3, а и б ввиде соответственно развернутой и укрупненной структурных схем; веса wi, j - это коэффициенты передачи от j-говхода к i-му нейрону. Уравнение однослойного персептрона имеет вид a = f(Wp+b). (2.2) Рис. 2.3. Развернутая (а) и укрупненная (б) структурные схемы персептрона
Модель персептрона. Для формирования модели однослойного персептрона предназначена функция newp net = newp(PR, S) со следующими входными аргументами: PR - массив минимальных и максимальных значений для R элементов входа размера Rx2; S - число нейронов в слое. В качестве функции активации персептрона по умолчанию используется функция hardlim. Пример: Функция net = newp([0 2], 1); создает персептрон с одноэлементным входом и одним нейроном; диапазон значений входа - [0 2]. Определим некоторые параметры персептрона, инициализируемые по умолчанию. Веса входов: inputweights = net.inputweights{1> 1} inputweights = delays: 0 initFcn: 'initzero' learn: 1 learnFcn: 'learnp' learnParam: [ ] size: [1 1] userdata: [1x1 struct] weightFcn: 'dotprod1 Заметим, что функция настройки персептрона по умолчанию learnp; вход функции активации вычисляется с помощью функции скалярного произведения dotprod; функция инициализации initzero используется для установки нулевых начальных весов. Смещения: biases = net.biases{1} biases = initFcn: 'initzero' learn: 1 learnFcn: 'learnp' learnParam: [] size: 1 userdata: [1x1 struct] Нетрудно увидеть, что начальное смещение также установлено в 0.
|