Однослойные перцептроны

Классификация рукописных цифр с однослойным персептроном

Я хочу классифицировать рукописные цифры (MNIST) простым кодом Python. Мой метод — простой персептрон с одним слоем, и я делаю это с помощью пакетного метода.

Моя проблема в том, что, например, если я тренирую цифру «1», а затем другие цифры, сети всегда показывают результат для «1». На самом деле тренировка происходит для первой цифры. Я не знаю, в чем проблема.

Я думаю, что это связано с периодическим обучением, которое после одного тренинга второе слово не может, потому что сеть сходится. но я не могу решить, как это решить.

Я тестировал многослойный персептрон, и я получаю такое же поведение.

Обратите внимание

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

Это мой код:

1 -importing библиотеки:

import os, struct from array import array as pyarray from numpy import append, array, int8, uint8, zeros import numpy as np from IPython.display import Image import matplotlib.pyplot as plt from IPython import display from scipy.special import expit from scipy.misc import imresize from IPython.core.page import page from IPython.core.formatters import format_display_data np.set_printoptions(threshold=np.nan) np.set_printoptions(suppress=True)

2- сигмовидной функции:

def sigmoid(x, deriv=False): if(deriv==True): return x*(1-x) return expit(x)

3- Инициализация весов

np.random.seed(1) w0 = 2*np.random.random((784,10))-1

4- Чтение MNIST набор данных

dataset=»training» path=».» if dataset == «training»: fname_img = os.path.join(path, 'train-images-idx3-ubyte') fname_lbl = os.path.join(path, 'train-labels-idx1-ubyte') elif dataset == «testing»: fname_img = os.path.join(path, 't10k-images-idx3-ubyte') fname_lbl = os.path.join(path, 't10k-labels-idx1-ubyte') else: raise ValueError(«dataset must be 'testing' or 'training'») flbl = open(fname_lbl, 'rb') magic_nr, size = struct.unpack(«>II», flbl.read(8)) lbl = pyarray(«b», flbl.read()) flbl.close() fimg = open(fname_img, 'rb') magic_nr, size, rows, cols = struct.unpack(«>IIII», fimg.read(16)) img = pyarray(«B», fimg.read()) fimg.close()

5- Выбор числа

number = 4 digits=[number] ind = [ k for k in range(size) if lbl[k] in digits ] N = len(ind) images = zeros((N, rows, cols), dtype=uint8) labels = zeros((N, 1), dtype=int8) for i in range(len(ind)): images[i] = array(img[ ind[i]*rows*cols : (ind[i]+1)*rows*cols ]).reshape((rows, cols)) labels[i] = lbl[ind[i]]

6- Преобразование каждой цифры в вектор и преобразование ячеек матрицы в двоичную:

p = np.reshape(images,(len(images),784)) p[p > 0] = 1

7- Целевая матрица (каждый столбец для цифры)

t = np.zeros((len(images), 10),dtype=float) t[:,number] = 1

8- Training (Градиентный спуск)

for iter in xrange(600): predict = sigmoid(np.dot(p,w0)) e0 = predict — t delta0 = e0 * sigmoid(predict,True) w0 -= 0.01*np.dot(p.T,delta0)

9- тестирование

test_predict = sigmoid(np.dot(p[102],w0)) print test_predict

Источник: https://stackoverrun.com/ru/q/11641002

Персептроны. Обучение персептрона

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

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

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

Розенблатт создал такой метод в своем алгоритме обучения персептрона и доказал: персептрон может быть обучен всему, что он может реализовывать.

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

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

Важно

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

Сегодня в той или иной форме элементы алгоритма обучения персептрона встречаются во многих сетевых парадигмах.

Алгоритм обучения однослойного персептрона

Персептрон должен решать задачу классификации по бинарным входным сигналам. Набор входных сигналов будем обозначать-мерным вектором.

Все элементы вектора являются булевыми переменными (переменными, принимающими значения «Истина» или «Ложь»). Однако иногда полезно оперировать числовыми значениями.

Будем считать, что значению «ложь» соответствует числовое значение 0, а значению «Истина» соответствует 1.

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

(1)

где— веса персептрона,— порог,— значения входных сигналов, скобкиозначают переход от булевых (логических) значений к числовым значениям по правилам, изложенным выше.

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

Предложенный Ф.Розенблаттом метод обучения состоит в итерационной подстройке матрицы весов, последовательно уменьшающей ошибку в выходных векторах. Алгоритм включает несколько шагов:

Шаг 0 Начальные значения весов всех нейроновполагаются случайными
Шаг 1 Сети предъявляется входной образ, в результате формируется выходной образ.
Шаг 2 Вычисляется вектор ошибки, делаемой сетью на выходе. Дальнейшая идея состоит в том, что изменение вектора весовых коэффициентов в области малых ошибок должно быть пропорционально ошибке на выходе и равно нулю, если ошибка равна нулю.
Шаг 3 Вектор весов модифицируется по следующей формуле:. Здесь— темп обучения.
Шаг 4 Шаги 1—3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки называется эпохой. Обучение завершается по истечении нескольких эпох: а) когда итерации сойдутся, т.е. вектор весов перестает изменяться, или б) когда полная, просуммированная по всем векторам абсолютная ошибка станет меньше некоторого малого значения.

Объясним данный алгоритм более подробно. Подаем на вход персептрона такой вектор, для которого уже известен правильный ответ. Если выходной сигнал персептрона совпадает с правильным ответом, то никаких действий предпринимать не надо. В случае ошибки, необходимо обучить персептрон правильно решать данный пример. Ошибки могут быть двух типов. Рассмотрим каждый из них.

Первый тип ошибки: на выходе персептрона — 0, а правильный ответ — 1. Для того чтобы персептрон выдавал правильный ответ, необходимо, чтобы сумма в правой части (1) стала больше.

Поскольку переменные принимают значения 0 или 1, увеличение суммы может быть достигнуто за счет увеличения весов. Однако нет смысла увеличивать веса при переменных, которые равны нулю.

Таким образом, следует увеличить весапри тех переменных xi, которые равны 1.

Первое правило. Если на выходе персептрона получен 0, а правильный ответ равен 1, то необходимо увеличить веса связей между одновременно активными нейронами. При этом выходной персептрон считается активным. Второй тип ошибки: на выходе персептрона — 1, а правильный ответ равен нулю.

Читайте также:  Гибридные сети. нечеткий гибридный классификатор.

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

В результате получаем второе правило.

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

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

Нерассмотренными остались два вопроса. Первый — о сходимости процедуры обучения. Второй — на сколько нужно увеличивать (уменьшать) веса связей при применении правил обучения.

Ответ на первый вопрос дают следующие теоремы.

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

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

Таким образом, данные теоремы утверждают, что, запустив процедуру обучения персептрона, через конечное время мы либо получим обучившийся персептрон, либо ответ, что данный персептрон поставленной задаче обучится не может.

Доказательства этих теорем в данное учебное пособие не включены.

Целочисленность весов персептронов

Для ответа на вопрос о количественных характеристиках вектора w рассмотрим следующую теорему.

Теорема. Любой персептрон можно заменить другим персептроном того же вида с целыми весами связей.

Доказательство.Обозначим множество примеров одного класса (правильный ответ равен 0) через, а другого (правильный ответ равен 1) — через. Вычислим максимальное и минимальное значения суммы в правой части (1):

Определим допусккак минимум изи. Положим, где— число слагаемых в (1). Поскольку персептрон(1) решает поставленную задачу классификации и множество примеров в обучающей выборке конечно, то.

Из теории чисел известна теорема о том, что любое действительное число можно сколь угодно точно приблизить рациональными числами.

Совет

Заменим весана рациональные числа так, чтобы выполнялись следующие неравенства:.

Из этих неравенств следует, что при использовании весовперсептрон будет работать с теми же результатами, что и первоначальный персептрон. Действительно, если правильным ответом примера является 0, имеем.

Подставив новые веса, получим:

Откуда следует необходимое неравенство

(2)

Аналогично, в случае правильного ответа равного 1, имеем, откуда, подставив новые веса и порог, получим:

Отсюда следует выполнение неравенства

(3)

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

(4)

где— целые числа. Обозначим черезпроизведение всех знаменателей:. Умножим все веса и порог на. Получим веса целочисленные. Из (2), (3) и (4) получаем

что и завершает доказательство теоремы.

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

Двуслойность персептрона

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

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

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

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

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

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

В действительности, проблема настройки (обучения) многослойного персептрона решается следующей теоремой.

Теорема о двуслойности персептрона. Любой многослойный персептрон может быть представлен в виде двуслойного персептрона с необучаемыми весами первого слоя.

Для доказательства этой теоремы потребуется одна теорема из математической логики.

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

Напомним некоторые свойства дизъюнктивной нормальной формы.

Обратите внимание

Свойство 1. В каждый конъюнктивный член (слагаемое) входят все элементарные высказывания либо в виде самого высказывания, либо в виде его отрицания.

Свойство 2. При любых значениях элементарных высказываний в дизъюнктивной нормальной форме может быть истинным не более одного конъюнктивного члена (слагаемого).

Доказательство теоремы о двуслойности персептрона. Из теоремы о дизъюнктивной нормальной форме следует, что любой многослойный персептрон может быть представлен в следующем виде:

(5)

В силу второго свойства дизъюнктивной нормальной формы, равенство (5) можно переписать в виде

(6)

Переведем в арифметическую форму все слагаемые в выражении (6). Конъюнкцию заменяем на умножение, а отрицание на разность:. Произведя эту замену и приведя подобные члены, получим:

(7)

где— множество индексов сомножителей в-м слагаемом,— число, указывающее, сколько раз такое слагаемое встретилось в выражении (6) после замены и раскрытия скобок (число подобных слагаемых).

Заменим-е слагаемое в формуле (7) персептроном следующего вида:

(8)

Подставив выражение (8) в формулу (7), получим равенство (1), то есть произвольный многослойный персептрон представлен в виде (1) с целочисленными коэффициентами. В качестве персептронов первого слоя используются персептроны вида (8) с необучаемыми весами. Теорема доказана.

Подводя итоги данной лекции, следует отметить следующие основные свойства персептронов:

  1. Любой

    персептрон

    может содержать один или два слоя. В случае двухслойного

    персептрона

    веса первого слоя не обучаются.

  2. Веса любого

    персептрона

    можно заменить на целочисленные.

  3. При обучении после конечного числа итераций возможны два исхода:

    персептрон

    обучится или вектор весов

    персептрона

    будет повторяться (

    персептрон

    зациклится).

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

Трудности с алгоритмом обучения персептрона

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

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

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

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

Источник: http://algmet.simulacrum.me/tai/l3/index.htm

11 Персептрон

§4.3 Персептрон

4.3.1 Персептрон Розенблатта и обучение одно нейронного персептрона

Одной из первых искусственных нейронных сетей, способных к восприятию (перцепция), и формированию реакции на восприимчивость ему явился PERCEPTRON Розенблатта.

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

Пусть имеется дополнительный вход , тогда в формуле (4.3) для активационной функции пороговое смещение можно установить равно 0. Тогда

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

Обучение персептрона — это обучение с учителем. То есть должен существовать набор пар .

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

Алгоритм 4.1

Исходные данные:

И коэффициент скорости обучения β = [0 ..1]

И выходной параметр:<\p>

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

Шаг 1: Подать на вход персептрона обучающий вектор  и вычислить его выход вектор y.

Важно

Шаг 2: Если , то есть выход правильный, то перейти к шагу 4. В противном случае вычислить ошибку .

Шаг 3: Весовые коэффициенты модифицируются по формуле:<\p>

Шаг 4:<\p>

Замечание 4.1 Шаги 1-3 алгоритма 4.1 повторяются несколько раз для всех обучающих векторов.

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

Обычно его выбирают из диапазона 0.5-0.7. Это коэффициент влияющей на скорость обучения сети.

Теорема 4.3

Если существует множество значений весов персептрона, которые обеспечивают конкретное различение образов, то существует такое бетта, что алгоритм 4.1 за конечное число шагов приводит либо к этому множеству, либо эквивалентному множеству, при котором данное различение образов будет достигнуто.

4.3.2 Δ(дельта) — правило для обучения персептрона.

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

Пусть имеется обучающая выборка, состоящая из пар векторов: .

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

Обучение заключается в итерационной подстройки матрицы весов W, состоящей из элементов  — вес синоптической связи между j — входом и i — нейроном, последовательно уменьшающей ошибку на входных векторах.

Алгоритм 4.2: (дельта-правило):

Исходные данные:

Коэффициент скорости обучения<\p>

Выходной параметр<\p>

Шаг 0: проинициализировать элементы весовой матрицы W, для , небольшими случайными значениями. Положить .

Шаг 1: Подать на вход персептрона обучающий вектор  и вычислить его выход вектор y.

Совет

Шаг 2: Если , то есть выход правильный, то перейти к шагу 4. В противном случае вычислить ошибку n-мерный вектор . (d- дельта).

Шаг 3: Элементы весовые матрицы модифицируются по формуле:

Шаг 4:<\p>

Замечание 4.3: Шаги 1-3 алгоритма 4.2 повторяются несколько раз для всех обучающих векторов. Обучение завершается, когда сеть перестает ошибаться.

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

 4.3.3 Адалайн, мадалайн и обобщенное дельто-правило.

Персептроны со ступенчатой функцией активацией выдают бинарные выходные сигналы и способны к распознаванию дискретных образов.

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

Такое обобщение персептрона было сделано Уидроу Хофф вместо ступенчатой функции активации использовали логистическую (сигмаидальную ) функцию вида 4.5 (см лекции выше) . При а=1, она имеет вид:

Персептроны с сигмаидальными активационными функциями с одним выходом назвали адалайн, с несколькими выходами мадалайн. От английских слов (ADAptive neuron LINE , Many ADAptive neuron LINE).

26.11.09

Было предложено уменьшить ошибку СКО, определяемую как разность между полученными и реальными сигналами персептрона ( в общем между выводом и  правильным ответом).

Если персептрон имеет m — входов и n- выходов, то

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

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

Отсюда можно вывести формулу для обучения однослойного персептрона.

Что-то там вместе с формулой и представляет собой обобщенное дельта-правило.

 4.3.3 Линейная разделимость и ограниченность однослойного персептрона.

Множество входных векторов , при которых нейрон активен, отделено от множества векторов , на которых нейрон пассивен. Гиперплоскостью, уравнение которой .

Следовательно, нейрон может отделить только такие два множества, для которых имеется гиперплоскость, отсекающая одно множество от другого. Такие множества называют линейно разделимыми.

Обратите внимание

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

1
1 1
1 1
1 1

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

Пример.

Источник: https://studizba.com/lectures/10-informatika-i-programmirovanie/337-lekcii-po-sii/4533-11-perseptron.html

2.4. Персептроны

Теория персептронов является основой для изучения многих других типов искусственных нейронных сетей.

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

Рис. 2.7. Однослойный персептрон

, . (2.5)

Очевидно, что все весовые коэффициенты синапсов одного слоя нейронов можно свести в матрицу W, в которой каждый элемент задает величину i-й синаптической связи j-го нейрона. Таким образом, процесс, происходящий в НС, может быть записан в матричной форме:

, (2.6)

где x и y– соответственно входной и выходной сигнальные векторы, f(s) – активационная функция, применяемая поэлементно к компонентам вектора s.

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

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

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

Важно

При этом он руководствуется несколькими основополагающими принципами: возможности сети возрастают с увеличе

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

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

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

В большинстве случаев оптимальный вариант получается на основе интуитивного подбора.

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

Здесь уместно отметить важную роль нелинейности активационной функции, так как, если бы она не обладала данным свойством или не входила в алгоритм работы каждого нейрона, результат функционирования любой p-слойной НС с весовыми матрицами W(i), i = 1, 2, …, p для каждого слоя i сводился бы к перемножению входного вектора сигналов  на матрицу

W(S) = W(1) × W(2) ×…×W(p),                                             (2.7)

то есть фактически такая p-слойная НС эквивалентна однослойной НС с весовой матрицей единственного слоя W(S):

y = W(S)x.                                                           (2.8)

Рис.

2.8. Двухслойный персептрон

Продолжая разговор о нелинейности, можно отметить, что она иногда вводится и в синаптические связи. Большинство известных на сегодняшний день НС используют для нахождения взвешенной суммы входов нейрона формулу (2.1), однако в некоторых приложениях НС полезно ввести другую запись, например:

                                                                (2.9)

или даже

.                                       (2.10)

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

Совет

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

Теперь рассмотрим один нюанс, преднамеренно опущенный ранее. Из рисунка функции единичного скачка видно, что пороговое значение T, в общем случае, может принимать произвольное значение.

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

То же самое относится и к центральной точке сигмоидной зависимости, которая может сдвигаться вправо или влево по оси X, а также и ко всем другим активационным функциям. Это, однако, не отражено в формуле (2.1), которая должна была бы выглядеть так:

.                                                 (2.11)

Дело в том, что такое смещение обычно вводится путем добавления к слою нейронов еще одного входа, возбуждающего дополнительный синапс каждого из нейронов, значение которого всегда равняется 1. Присвоим этому входу номер 0. Тогда

,                                                     (2.12)

где w = –T, x = 1.

Очевидно, что различие формул (2.1) и (2.12) состоит лишь в способе нумерации входов.

Из всех активационных функций, изображенных на рис. 2.3, одна выделяется особо. Это гиперболический тангенс, зависимость которого симметрична относительно оси s и лежит в диапазоне [-1,1]. Забегая вперед, скажем, что выбор области возможных значений выходов нейронов во многом зависит от конкретного типа НС.

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

, k = 1, …, m.                                       (2.13)

Обратите внимание

Каждая полученная область является областью определения отдельного класса. Число таких классов для одной НС персептронного типа не превышает 2m, где m – число выходов сети. Однако не все из них могут быть разделимы данной НС.

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

Таблица 2.2 Классификация входных сигналов по классам А и В

Источник: http://libraryno.ru/2-4-perseptrony-iis/

Ссылка на основную публикацию