персептрон правило хебба обучения персептрона
Правило Хэбба
Материал из MachineLearning.
В 1949 физиолог Дональд Олдингс Хебб написал книгу «Организация сознания». В этой книге он попытался объяснить, как нейроны человеческого мозга могут обучаться. Его теория получила впоследствии название «Обучение Хебба». В основе правил обучения для сети Хопфилда легли именно исследования Дональда Хэбба.
Содержание
История
Перcептрон Розенблатта в первоначальном его исполнении состоял из фотоэлементов, которые, в зависимости от поданного на них сигнала вырабатывали сигнал логической единицы, либо логического нуля. Сигналы с фотоэлементов поступали на взвешенный сумматор (элементарный процессор, искусственный нейрон) с пороговой функцией активации. Нейрон также выдавал сигнал логического нуля, либо логической единицы. Возможен вариант использования вместо <0,1>сигналов <-1,1>.
Цель обучения перцептрона состояла в том, чтобы при подаче на фотоэлементы закодированного образа на его выходе появлялась логическая единица в случае принадлежности поданного образа к заранее определенному классу и ноль в противном случае. Логика обучения следующая: если сигнал персептрона при некотором образе верен, то ничего корректировать не надо, если нет — производится корректировка весов сумматора. Правила корректировки весов предложенные Хеббом имеют следующий смысл:
Правила применяются последовательно для всех образов, на которых производится обучение. На вопрос о том, придет ли персептрон к устойчивому состоянию, когда он будет корректно классифицировать все входные образы отвечает теорема сходимости персептрона.
Математическая формулировка
Будем полагать, что классы помечены числами 0 и 1:
0 \bigr]» alt= «a(x)=\bigl[ \langle\omega, x\rangle > 0 \bigr]» />
Персептрон обучают по правилу Хебба. Предъявляем на вход один объект. Если выходной сигнал персептрона совпадает с правильным ответом, то никаких действий предпринимать не надо. В случае ошибки необходимо обучить персептрон правильно решать данный пример.
Ошибки могут быть двух типов. Рассмотрим каждый из них.
Первый тип ошибки: на выходе персептрона a(xi) = 0, правильный ответ yi=1.
В этом и заключается первое правило Хэбба.
Лекции 15, 16. Персептрон
Персептрон Розенблатта [146, 181] является исторически первой обучаемой нейронной сетью. Существует несколько версий персептрона. Рассмотрим классический персептрон – сеть с пороговыми нейронами и входными сигналами, равными нулю или единице. Будем использовать обозначения, приведенные в работе [146].
Определение персептрона
Персептрон должен решать задачу классификации на два класса по бинарным входным сигналам. Набор входных сигналов будем обозначать n-мерным вектором x. Все элементы вектора являются булевыми переменными (переменными принимающими значения «Истина» или «Ложь»). Однако иногда полезно оперировать числовыми значениями. Будем считать, что значению «ложь» соответствует числовое значение 0, а значению «Истина» соответствует 1.
Персептроном будем называть устройство, вычисляющее следующую функцию:
,
где – веса персептрона, θ – порог,
– значения входных сигналов, скобки
означают переход от булевых (логических) значений к числовым значениям по правилам описанным выше. В качестве входных сигналов персептрона могут выступать как входные сигналы всей сети (переменные x), так и выходные значения других персептронов. Добавив постоянный единичный входной сигнал
и положив
, персептрон можно переписать в следующем виде:
| (1) |
Очевидно, что выражение (1) вычисляется одним нейроном с пороговым нелинейным преобразователем (см. главу «Описание нейронных сетей»). Каскад из нескольких слоев таких нейронов называют многослойным персептроном. Далее в этой главе будут рассмотрены некоторые свойства персептронов. Детальное исследование персептронов приведено в работе [146].
Обучение персептрона. Правило Хебба
Персептрон обучают по правилу Хебба. Предъявляем на вход персептрона один пример. Если выходной сигнал персептрона совпадает с правильным ответом, то никаких действий предпринимать не надо. В случае ошибки необходимо обучить персептрон правильно решать данный пример. Ошибки могут быть двух типов. Рассмотрим каждый из них.
Первый тип ошибки – на выходе персептрона 0, а правильный ответ – 1. Для того, чтобы персептрон (1) выдавал правильный ответ необходимо, чтобы сумма в правой части (1) стала больше. Поскольку переменные принимают значения 0 или 1, увеличение суммы может быть достигнуто за счет увеличения весов
. Однако нет смысла увеличивать веса при переменных
, которые равны нулю. Таким образом, следует увеличить веса
при тех переменных
, которые равны 1. Для закрепления единичных сигналов с
, следует провести туже процедуру и на всех остальных слоях.
Первое правило Хебба. Если на выходе персептрона получен 0, а правильный ответ равен 1, то необходимо увеличить веса связей между одновременно активными нейронами. При этом выходной персептрон считается активным. Входные сигналы считаются нейронами.
Второй тип ошибки – на выходе персептрона 1, а правильный ответ равен нулю. Для обучения правильному решению данного примера следует уменьшить сумму в правой части (1). Для этого необходимо уменьшить веса связей при тех переменных
, которые равны 1 (поскольку нет смысла уменьшать веса связей при равных нулю переменных
). Необходимо также провести эту процедуру для всех активных нейронов предыдущих слоев. В результате получаем второе правило Хебба.
Второе правило Хебба. Если на выходе персептрона получена 1, а правильный ответ равен 0, то необходимо уменьшить веса связей между одновременно активными нейронами.
Таким образом, процедура обучения сводится к последовательному перебору всех примеров обучающего множества с применением правил Хебба для обучения ошибочно решенных примеров. Если после очередного цикла предъявления всех примеров окажется, что все они решены правильно, то процедура обучения завершается.
Нерассмотренными осталось два вопроса. Первый – насколько надо увеличивать (уменьшать) веса связей при применении правила Хебба. Второй – о сходимости процедуры обучения. Ответы на первый из этих вопросов дан в следующем разделе. В работе [146] приведено доказательство следующих теорем:
Теорема о сходимости персептрона. Если существует вектор параметров α, при котором персептрон правильно решает все примеры обучающей выборки, то при обучении персептрона по правилу Хебба решение будет найдено за конечное число шагов.
Теорема о «зацикливании» персептрона. Если не существует вектора параметров α, при котором персептрон правильно решает все примеры обучающей выборки, то при обучении персептрона по правилу Хебба через конечное число шагов вектор весов начнет повторяться.
Доказательства этих теорем в данное учебное пособие не включены.
Целочисленность весов персептронов
В данном разделе будет доказана следующая теорема.
Теорема. Любой персептрон (1) можно заменить другим персептроном того же вида с целыми весами связей.
Доказательство. Обозначим множество примеров одного класса (правильный ответ равен 0) через , а другого (правильный ответ равен 1) через
. Вычислим максимальное и минимальное значения суммы в правой части (1):
Определим допуск ε как минимум из и
. Положим
, где m – число слагаемых в (1). Поскольку персептрон (1) решает поставленную задачу классификации и множество примеров в обучающей выборке конечно, то δ>0. Из теории чисел известна теорема о том, что любое действительное число можно сколь угодно точно приблизить рациональными числами. Заменим веса
на рациональные числа так, чтобы выполнялись следующие неравенства
Из этих неравенств следует, что при использовании весов персептрон будет работать с теми же результатами что и первоначальный персептрон. Действительно, если правильным ответом примера является 0, имеем
.
Подставив новые веса, получим:
Откуда следует необходимое неравенство
| (2) |
Аналогично, в случае правильного ответа равного 1, имеем , откуда, подставив новые веса и порог получим:
Откуда следует выполнение неравенства
| | (3) |
Неравенства (2) и (3) доказывают возможность замены всех весов и порога любого персептрона рациональными числами. Очевидно так же, что при умножении всех весов и порога на одно и тоже ненулевое число персептрон не изменится. Поскольку любое рациональное число можно представить в виде отношения целого числа к натуральному числу, получим
| (4) |
где – целые числа. Обозначим через r произведение всех знаменателей
. Умножим все веса и порог на r. Получим веса целочисленные
. Из (2), (3) и (4) получаем
,
что и завершает доказательство теоремы.
Поскольку из доказанной теоремы следует, что веса персептрона являются целыми числами, то вопрос о выборе шага при применении правила Хебба решается просто: веса и порог следует увеличивать (уменьшать) на 1.
Двуслойность персептрона
Как уже упоминалось ранее в данной главе возможно использование многослойных персептронов. Однако теоремы о сходимости и зацикливании персептрона, приведенные выше верны только при обучении однослойного персептрона, или многослойного персептрона при условии, что обучаются только веса персептрона, стоящего в последнем слое сети. В случае произвольного многослойного персептрона они не работают. Следующий пример демонстрирует основную проблему, возникающую при обучении многослойных персептронов по правилу Хебба.
Пусть веса всех слоев персептрона в ходе обучения сформировались так, что все примеры обучающего множества, кроме первого, решаются правильно. При этом правильным ответом первого примера является 1. Все входные сигналы персептрона последнего слоя равны нулю. В этом случае первое правило Хебба не дает результата, поскольку все нейроны предпоследнего слоя не активны. Существует множество методов, как решать эту проблему. Однако все эти методы не являются регулярными и не гарантируют сходимость многослойного персептрона к решению даже при условии, что такое решение существует.
В действительности проблема настройки (обучения) многослойного персептрона решается следующей теоремой.
Теорема о двуслойности персептрона. Любой многослойный персептрон может быть представлен в виде двуслойного персептрона с необучаемыми весами первого слоя.
Для доказательства этой теоремы потребуется одна теорема из математической логики.
Теорема о дизъюнктивной нормальной форме. Любая булева функция булевых аргументов может быть представлена в виде дизъюнкции конъюнкций элементарных высказываний и отрицаний элементарных высказываний:
Напомним некоторые свойства дизъюнктивной нормальной формы.
Свойство 1. В каждый конъюнктивный член (слагаемое) входят все элементарные высказывания либо в виде самого высказывания, либо в виде его отрицания.
Свойство 2. При любых значениях элементарных высказываний в дизъюнктивной нормальной форме может быть истинным не более одного конъюнктивного члена (слагаемого).
Доказательство теоремы о двуслойности персептрона. Из теоремы о дизъюнктивной нормальной форме следует, что любой многослойный персептрон может быть представлен в следующем виде:
| | (5) |
В силу второго свойства дизъюнктивной нормальной формы (5) можно переписать в виде
| | (6) |
Переведем в арифметическую форму все слагаемые в (6). Конъюнкция заменяется умножением, а отрицание на разность: . Произведя эту замену в (6) и приведя подобные члены получим:
| (7) |
где – множество индексов сомножителей в l-м слагаемом,
– число, указывающее сколько раз такое слагаемое встретилось в (6) после замены и раскрытия скобок (число подобных слагаемых).
Заменим i-е слагаемое в (7) персептроном следующего вида:
| (8) |
Подставив (8) в (7) получим (1), то есть произвольный многослойный персептрон представлен в виде (1) с целочисленными коэффициентами. В качестве персептронов первого слоя используются персептроны вида (8) с необучаемыми весами. Теорема доказана.
Подводя итоги данной главы следует отметить следующие основные свойства персептронов:
Знание этих свойств позволяет избежать «усовершенствований» типа модификации скорости обучения и других, столь же «эффективных» модернизаций.
Логика мышления. Часть 3. Персептрон, сверточные сети
В первой части мы описали свойства нейронов. Во второй говорили об основных свойствах, связанных с их обучением. Уже в следующей части мы перейдем к описанию того как работает реальный мозг. Но перед этим нам надо сделать последнее усилие и воспринять еще немного теории. Сейчас это скорее всего покажется не особо интересным. Пожалуй, я и сам бы заминусовал такой учебный пост. Но вся эта «азбука» сильно поможет нам разобраться в дальнейшем.
Персептрон
В машинном обучении разделяют два основных подхода: обучение с учителем и обучение без учителя. Описанные ранее методы выделения главных компонент – это обучение без учителя. Нейронная сеть не получает никаких пояснений к тому, что подается ей на вход. Она просто выделяет те статистические закономерности, что присутствуют во входном потоке данных. В отличие от этого обучение с учителем предполагает, что для части входных образов, называемых обучающей выборкой, нам известно, какой выходной результат мы хотим получить. Соответственно, задача – так настроить нейронную сеть, чтобы уловить закономерности, которые связывают входные и выходные данные.
В 1958 году Фрэнк Розенблатт описал конструкцию, названную им персептроном (Rosenblatt, 1958), которая способна к обучению с учителем (смотри КДПВ).
По Розенблатту персептрон состоит из трех слоев нейронов. Первый слой – это сенсорные элементы, которые задают, что же мы имеем на входе. Второй слой – ассоциативные элементы. Их связи с сенсорным слоем жестко заданы и определяют переход к более общей, чем на сенсорном слое, ассоциативной картине описания.
Обучение персептрона осуществляется за счет изменения весов нейронов третьего реагирующего слоя. Цель обучения – заставить персептрон правильно классифицировать подаваемые образы.
Нейроны третьего слоя работают как пороговые сумматоры. Соответственно, веса каждого из них определяют параметры некой гиперплоскости. Если есть линейно-разделимые входные сигналы, то выходные нейроны как раз и могут выступать как их классификаторы.
Если – это вектор реального выхода персептрона а,
– вектор, который мы ожидаем получить, то о качестве работы нейронной сети говорит вектор ошибки:
Если задаться целью, минимизировать среднеквадратическую ошибку, то можно вывести так называемое дельта-правило модификации весов:
При этом начальным приближением могут выступать нулевые веса.
Это правило является не чем иным, как правилом Хебба, примененным к случаю персептрона.
Если за выходным слоем расположить еще один или несколько реагирующих слоев и отказаться от ассоциативного слоя, который был введен Розенблаттом более для биологической достоверности, чем из-за вычислительной необходимости, то мы получим многослойный персептрон такой, как показан на рисунке ниже.
Многослойный персептрон с двумя скрытыми слоями (Хайкин, 2006)
Если бы нейроны реагирующих слоев были простыми линейными сумматорами, то большого смысла в таком усложнении не было бы. Выход, независимо от числа скрытых слоев, все равно оставался бы линейной комбинацией входных сигналов. Но поскольку в скрытых слоях используются пороговые сумматоры, то каждый такой новый слой разрывает цепочку линейности и может нести свое интересное описание.
Долгое время было непонятно, как можно обучать многослойный персептрон. Основной метод – метод обратного распространения ошибки был описан только в 1974 г. А.И. Галушкиным и независимо и одновременно Полом Дж. Вербосом. Затем он был переоткрыт и получил широкую известность в 1986 г. (David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, 1986).
Метод состоит из двух проходов: прямого и обратного. При прямом проходе подается обучающий сигнал и рассчитывается активность всех узлов сети, включая активность выходного слоя. Вычитанием полученной активности из того, что требовалось получить, определяется сигнал ошибки. При обратном проходе сигнал ошибки распространяется в обратном направлении, от выхода ко входу. При этом синаптические веса настраиваются с целью минимизации этой ошибки. Подробное описание метода можно найти во множестве источников (например, Хайкин, 2006).
Нам важно обратить внимание на тот факт, что в многослойном персептроне информация обрабатывается от уровня к уровню. При этом каждый слой выделяет свой набор признаков, свойственных входному сигналу. Это создает определенные аналогии с тем, как преобразуется информация между зонами коры головного мозга.
Сверточные сети. Неокогнитрон
Сравнение многослойного персептрона и реального мозга очень условно. Общее – это то, что, поднимаясь от зоны к зоне в коре или от слоя к слою в персептроне, информация приобретает все более обобщенное описание. Однако строение участка коры значительно сложнее, чем организация слоя нейронов в персептроне. Исследования зрительной системы Д. Хьюбела и Т. Визела позволили лучше понять строение зрительной коры и подтолкнули к использованию этих знаний в нейронных сетях. Основные идеи, которые были использованы – это локальность зон восприятия и деление нейронов по функциям внутри одного слоя.
Локальность восприятия нам уже знакома, она означает, что нейрон, получающий информацию, следит не за всем входным пространством сигналов, а только за его частью. Ранее мы говорили, что такая область слежения называется рецептивным полем нейрона.
Понятие рецептивного поля требует отдельного уточнения. Традиционно рецептивным полем нейрона принято называть то пространство рецепторов, которое влияет на работу нейрона. Под рецепторами здесь понимаются нейроны, непосредственно воспринимающие внешние сигналы. Представим нейронную сеть, состоящую из двух слоев, где первый слой – слой рецепторов, а второй слой – нейроны, соединенные с рецепторами. Для каждого нейрона второго слоя те рецепторы, что имеют с ним контакт – это и есть его рецептивное поле.
Теперь возьмем сложную многослойную сеть. Чем дальше мы будем уходить от входа, тем сложнее будет указать, какие рецепторы и как влияют на активность находящихся в глубине нейронов. С определенного момента может оказаться, что для какого-либо нейрона все существующие рецепторы могут быть названы его рецептивным полем. В такой ситуации рецептивным полем нейрона хочется назвать только те нейроны, с которыми он имеет непосредственный синаптический контакт. Чтобы развести эти понятия, будем называть пространство входных рецепторов – исходным рецептивным полем. А то пространство нейронов, что взаимодействует с нейроном непосредственно – локальным рецептивным полем или просто рецептивным полем, без дополнительного уточнения.
Деление нейронов на функции связано с обнаружением в первичной зрительной коре двух основных типов нейронов. Простые (simple) нейроны реагируют на стимул, расположенный в определенном месте их исходного рецептивного поля. Сложные (complex) нейроны проявляют активность на стимул, независимо от его положения.
Например, на рисунке ниже показаны варианты того, как могут выглядеть картины чувствительности исходных рецептивных полей простых клеток. Положительные области активируют такой нейрон, отрицательные подавляют. Для каждого простого нейрона есть стимул, наиболее подходящий для него и, соответственно, вызывающий максимальную активность. Но важно то, что этот стимул жестко привязан к позиции на исходном рецептивном поле. Такой же стимул, но смещенный в сторону, не вызовет реакции простого нейрона.
Исходные рецептивные поля простой клетки (Николлс Дж., Мартин Р., Валлас Б., Фукс П.)
Сложные нейроны также имеют предпочитаемый ими стимул, но способны узнать этот стимул независимо от его положения на исходном рецептивном поле.
Из этих двух идей родились соответствующие модели нейронных сетей. Первую подобную сеть создал Кунихика Фукусима. Она получила название когнитрон. Позже он создал более продвинутую сеть – неокогнитрон (Fukushima, 1980). Неокогнитрон – это конструкция из несколько слоев. Каждый слой состоит из простых (s) и сложных (с) нейронов.
Задача простого нейрона следить за своим рецептивным полем и узнавать образ, на который он обучен. Простые нейроны собраны в группы (плоскости). Внутри одной группы простые нейроны настроены на один и тот же стимул, но каждый нейрон следит за своим фрагментом рецептивного поля. Все вместе они перебирают все возможные положения этого образа (рисунок ниже). Все простые нейроны одной плоскости имеют одинаковые веса, но разные рецептивные поля. Можно представить ситуацию по-другому, что это один нейрон, который умеет примерять свой образ сразу ко всем позициям исходной картинки. Все это позволяет узнавать один и тот же образ независимо от его положения.
Рецептивные поля простых клеток, настроенных на поиск выбранного паттерна в разных позициях (Fukushima K., 2013)
Каждый комплексный нейрон следит за своей плоскостью простых нейронов и срабатывает, если активен хотя бы один из простых нейронов в его плоскости (рисунок ниже). Активность простого нейрона говорит о том, что он узнал характерный стимул в том конкретном месте, которое является его рецептивным полем. Активность комплексного нейрона означает, что тот же образ встретился вообще на слое, за которым следят простые нейроны.
Плоскости неокогнитрона
Каждый слой после входного имеет своим входом картину, образованную комплексными нейронами предыдущего слоя. От слоя к слою происходит все большее обобщение информации, которое в результате приводит к распознаванию конкретных образов независимо от их расположения на исходной картинке и некоторой трансформации.
Применительно к анализу изображений это означает, что первый уровень распознает линии под определенным углом, проходящие через небольшие рецептивные поля. Он способен детектировать все возможные направления в любом месте изображения. Следующий уровень детектирует возможные сочетания элементарных признаков, определяя более сложные формы. И так до того уровня, пока не удастся определить требуемый образ (рисунок ниже).
Процесс распознавания в неокогнитроне
При использовании для распознавания рукописного текста такая конструкция оказывается устойчива к способу написания. На успешность распознавания не влияет ни перемещение по поверхности или поворот, ни деформация (растяжение или сжатие).
Самое существенное отличие неокогнитрона от полносвязанного многослойного персептрона – это значительно меньшее количество используемых весов при том же количестве нейронов. Так получается за счет «трюка», который позволяет неокогнитрону определять образы независимо от их положения. Плоскость простых клеток – это по сути один нейрон, веса которого определяют ядро свертки. Это ядро применяется к предыдущему слою, пробегая его во всех возможных позициях. Собственно нейроны каждой плоскости и задают своими связями координаты этих позиций. Это приводит к тому, что все нейроны слоя простых клеток следят за тем, не появится ли в их рецептивном поле образ, соответствующий ядру. То есть, если такой образ встретится где-либо во входном для этого слоя сигнале, это будет обнаружено хотя бы одним простым нейроном и вызовет активность соответствующего сложного нейрона. Это ухищрение позволяет найти характерный образ в любом месте, где бы он ни появился. Но надо помнить, что это именно ухищрение и оно не особо соответствует работе реальной коры.
Обучение неокогнитрона происходит без учителя. Оно соответствует описанной ранее процедуре выделения полного набора факторов. Когда на вход неокогнитрона подаются реальные изображения, нейронам не остается ничего другого, кроме как выделять свойственные этим изображениям компоненты. Так, если подавать на вход рукописные цифры, то малые рецептивные поля простых нейронов первого слоя увидят линии, углы и сопряжения. Размеры зон конкуренции определяют, сколько различных факторов может выделиться в каждой пространственной области. В первую очередь выделяются наиболее значимые компоненты. Для рукописных цифр это будут линии под различными углами. Если останутся свободные факторы, то далее могут выделиться и более сложные элементы.
От слоя к слою сохраняется общий принцип обучения – выделяются факторы, характерные для множества входных сигналов. Подавая рукописные цифры на первый слой, на определенном уровне мы получим факторы, соответствующие этим числам. Каждая цифра окажется сочетанием устойчивого набора признаков, что выделится как отдельный фактор. Последний слой неокогнитрона содержит столько нейронов, сколько образов предполагается детектировать. Активность одного из нейронов этого слоя говорит об узнавании соответствующего образа (рисунок ниже)
Распознавание в неокогнитроне (Fukushima K., Neocognitron, 2007)
Видео ниже позволяет получить наглядное представление о неокогнитроне.
Альтернатива обучению без учителя – это обучение с учителем. Так, в примере с цифрами мы можем не ждать, пока сеть сама выделит статистически устойчивые формы, а говорить ей, что за цифра ей предъявляется, и требовать соответствующего обучения. Наиболее значительных результатов в таком обучении сверточных сетей добился Ян ЛеКун (Y. LeCun and Y. Bengio, 1995). Он показал, как можно использовать метод обратного распространения ошибки для обучения сетей, архитектура которых, как и у неокогнитрона, отдаленно напоминает строение коры мозга.
Сеть свертки для распознавания рукописного текста (Y. LeCun and Y. Bengio, 1995)
На этом будем считать, что минимальные начальные сведения напомнены и можно перейти к вещам более интересным и удивительным.