Однослойные нейронные сети с прямым распространением (персептроны)

Сеть, в которой все входные элементы соединены непосредственно с выходными элементами, называется однослойной нейронной сетью, или сетью персептрона. Поскольку каждый выходной элемент является независимым от других (каждый вес влияет только на один из выходов), можно ограничиться в нашем исследовании рассмотрением персептронов с единственным выходным элементом, как показано на рис. 20.19, а.
Начнем с исследования пространства гипотез, которое может быть представлено с помощью персептрона. Если применяется пороговая функция активации, то пер-септрон может рассматриваться как представляющий некоторую булеву функцию. Кроме элементарных булевых функций AND, OR и NOT (см. рис. 20.17), персептрон позволяет представлять очень компактно некоторые весьма "сложные" булевы функции. Например, мажоритарная функция, которая выводит 1, только если 1 присутствует больше чем на половине из ее п входов, может быть представлена с помощью персептрона, в котором каждое значение w = l, а пороговое значение w0=n/2. В дереве решений для представления этой функции потребовалось бы О (2П) узлов.

К сожалению, существует также много булевых функций, которые не могут быть представлены с помощью порогового персептрона. Рассматривая уравнение 20.10, можно обнаружить, что пороговый персептрон возвращает 1 тогда и только тогда, когда взвешенная сумма его входных данных (включая смещение) является положительной:
Итак, W • х = 0 определяет гиперплоскость в пространстве входных данных, поэтому персептрон возвращает 1 тогда и только тогда, когда входные данные находятся с одной стороны от этой гиперплоскости. По такой причине пороговый персептрон называют линейным разделителем. На рис. 20.20, а, б показана такая гиперплоскость (которая в двух измерениях является линией) для представления с помощью персептрона функций AND и OR от двух входных значений. Черные кружки обозначают точки в пространстве входных данных, где значение этой функции равно 1, а белые кружки — точки, где это значение равно 0. Персептрон способен представить эти функции, поскольку есть какая-то линия, которая отделяет все белые кружки от всех черных кружков. Такие функции называются линейно разделимыми. На рис. 20.20, в показан пример функции, которая не является линейно разделимой, — функции XOR. Безусловно, что пороговый персептрон не позволяет определить в процессе обучения эту функцию. Вообще говоря, пороговые персептроны способны представить только линейно разделимые функции. Но такие функции составляют лишь небольшую часть всех функций; в упр. 20.14 предлагается определить величину этой части. Сигмоидальные персептроны характеризуются аналогичными ограничениями, с той поправкой, что они представляют только "мягкие" линейные разделители (см. рис. 20.19, б).
Несмотря на их ограниченную выразительную мощь, пороговые персептроны имеют некоторые преимущества. В частности, существует простой алгоритм обучения, позволяющий выполнить подгонку весов порогового персептрона к любому линейно разделимому обучающему множеству, но в данном разделе вместо описания этого алгоритма мы выведем тесно связанный с ним алгоритм для обучения с помощью сигмоидальных персептронов.
В основе этого алгоритма, а в действительности в основе большинства алгоритмов для обучения нейронных сетей, лежит такая идея, что в процессе обучения необходимо корректировать веса в сети для минимизации некоторого критерия измерения ошибок в обучающем множестве. Таким образом, задача обучения формулируется как некоторая задача оптимизационного поиска8 в пространстве весов. "Классическим" критерием измерения ошибок является сумма квадратичных ошибок, которая использовалась в том числе в алгоритме линейной регрессии, приведенном на с. 1. Квадратичная ошибка для единственного обучающего примера с входными данными х и истинными выходными данными у определяется следующим образом:
Е = Err2 = |(y-hw(x) )2
где (х) — выходные данные персептрона при обработке рассматриваемого примера.
8 Описание общих методов оптимизации, применимых к непрерывным пространствам, приведено в разделе 4.4.
Для уменьшения квадратичной ошибки можно применить метод градиентного спуска, вычисляя частичную производную Е по отношению к каждому весу. При этом может быть получено следующее соотношение:
Полный алгоритм приведен в листинге 20.1. Он предусматривает прогон обучающих примеров через сеть каждый раз по одному и небольшую корректировку весов после прогона каждого примера для уменьшения ошибки. Каждый цикл прогона примеров называется эпохой. Эпохи повторяются до тех пор, пока не достигается некоторый критерий останова; как правило, такая ситуация достигается, когда изменения весов становятся очень небольшими. В других методах для всего обучающего набора вычисляется градиент путем сложения всех градиентных вкладов в уравнении 20.12 перед обновлением весов. А в методе стохастического градиента примеры выбираются случайным образом из обучающего набора вместо их циклической обработки.
Листинг 20.1. Алгоритм обучения на основе градиентного спуска для персептронов, в котором предполагается использование дифференцируемой функции активации д. Для пороговых персептронов коэффициент д% (in) из обновления веса исключается. Функция Neural-Net-Hypothesis возвращает гипотезу, которая вычисляет выход сети для любого конкретного примера
function Perceptron-Learning(examples, network) returns гипотеза персептрона
inputs: examples, множество примеров, для каждого из которых заданы входные данные х=хь ...,хп и выходные данные у network, персептрон с весами Pi/j, где j=0...n, и функцией активации.
До сих пор персептроны рассматривались как средства реализации детерминированных функций, выходные данные которых могут содержать ошибки. Выход сиг-моидального персептрона можно также интерпретировать как вероятность, а именно вероятность того, что истинным выходом является 1, если заданы все входы. При такой интерпретации сигмоидальный персептрон может использоваться как каноническое представление для условных распределений в байесовских сетях (см. раздел 14.3). Существует также возможность выполнять вероятностный вывод правила обучения с использованием стандартного метода максимизации (условного) логарифмического правдоподобия данных, как было описано выше в данной главе. Рассмотрим, как действует последний метод.
Допустим, что рассматривается единственный обучающий пример с истинным выходным значением Т, и предположим, что р— вероятность, возвращаемая пер-септроном для этого примера. Если т=1, то условная вероятность этих данных равна р, а если т=0, то условная вероятность данных равна (1-р). Теперь можно воспользоваться простым приемом, чтобы записать интересующее нас выражение для логарифмического правдоподобия в дифференцируемой форме. Этот прием состоит в том, что переменная со значениями 0/1 в экспоненте выражения рассматривается как индикаторная переменная: рт-р, если т=1, и 1 — в противном случае; аналогичным образом, (1-р) (1_т)- (1-р), если т=0, и 1 — в противном случае. Поэтому можно записать выражение для логарифмического правдоподобия данных следующим образом:
L = log рт(1-р)(1_т) = Tlog р + (1-Т)log(1-р) (20.13)
В силу самих свойств сигмоидальной функции полученный градиент сводится к очень простой формуле (упр. 20.16):
Обратите внимание на то, что вектор обновления весов для обучения с максимальным правдоподобием в сигмоидальных персептронах по сути идентичен вектору обновления для минимизации квадратичной ошибки. Таким образом, можно утверждать, что персептроны имеют вероятностную интерпретацию, даже если правило их обучения выведено на основании детерминированного подхода.







Материалы

Яндекс.Метрика