Нейронные сети хопфилда и хэмминга


Содержание

Нейронные сети Хопфилда и Хэмминга

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

Архитектура сети представлена на рис.2. Она состоит из одного слоя нейронов, число которых определяет число входов и выходов НС. Подача входных векторов осуществляется через отдельные входы нейронов.

Каждый нейрон имеет синаптические связи со всеми остальными нейронами сети. При этом первый слой является распределительным, а второй слой осуществляет нелинейное преобразование взвешенной функции. Свойства НС Хопфилда:

· наличие обратных связей «со всех на все»;

· расчет весовых коэффициентов нейронов проводится на основе исходной информации перед началом функционирования, и все обучение сводится именно к расчету без обучающих итераций;

· при предъявлении входного вектора, сеть «сходится» к одному из запомненных в сети эталонов, представляющих множество равновесных точек, которые являются локальными минимумами функции энергии.

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

Теорема: Сеть с обратными связями является устойчивой, если матрица ее весов симметрична (Wij=Wji) и имеет нули на главной диагонали (wij=0).

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

Рассмотрим НС Хопфилда с пороговой активационной функцией, выходы которой имеют значения 0 и 1, если взвешенная сумма превышает некоторый порог.

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

E= -1/2 ∑∑ Wij ∙ Yi ∙ Yj — ∑ XjYj +∑Tj Yj,

где Е искусственная энергия сети;

Wij – вес от выхода i-го нейрона к входу j-го нейрона;

Xj ,Yj- вход и выход j-го нейрона;

Tj – порог j-го нейрона.

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

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

После отдельной итерации общее изменение энергии сети, вызванное изменением состояний всех нейронов, составит:

N n

ΔE= — ∑ ( ∑ (Wij ∙ Yi)+Xj – Tj ) Δ Yj,

j=1 i<>j

где Δ Yj – изменение выхода j-го нейрона после итерации.

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

Для безошибочной работы сети Хопфилда число запоминаемых эталонов N не должно превышать 0,15*n.

Недостатком классического варианта сети Хопфилда является их тенденция к стабилизации в точках локального, а не глобального минимума энергии сети Е. Одним из вариантов устранения этого недостатка является применение стохастических методов задания состояний нейронов. Для этого для каждого j-го нейрона вводится вероятность изменения его состояния Pj как функция от величины, на которую выход нейрона Sj превышает его порог Тj.

Pj= 1/ (1+exp (-ΔE j /φ)),

где ΔE j= Sj – Тj,

φ – параметр, изменяемый в процессе стабилизации сети.

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

1. Задать небольшое значение φ;

2. Установить на выходе j-го нейрона значение 1 с вероятностью Pj и значение 0 с вероятностью 1- Pj;

3. Постепенно уменьшать значение φ, пока не будет достигнуто равновесие.

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

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

Энергия сети Хопфилдадля системы с дискретным временем. При этом используется пороговая функция активации.

В результате энергия нейрона уменьшается от итерации к итерации и согласно первой теореме гарантирует устойчивость нейрона.

Электронная библиотека

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

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

Рис. 2.20. Структурная схема сети Хэмминга

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

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

На стадии инициализации весовым коэффициентам первого слоя и порогу активационной функции присваиваются следующие значения:

Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине 0 (2) = yj (1) , j=1, …, m. (2.50)

2) Вычислить новые состояния нейронов второго слоя:

и значения их аксонов:

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

3) Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию.


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

Обсуждение сетей, реализующих ассоциативную память, было бы неполным без хотя бы краткого упоминания о двунаправленной ассоциативной памяти (ДАП). Она является логичным развитием парадигмы сети Хопфилда, к которой для этого достаточно добавить второй слой. Структура ДАП представлена на рис. 2.21. Сеть способна запоминать пары ассоциированных друг с другом образов. Пусть пары образов записываются в виде векторов x k = <xi k : i = 1, …, n> и y k = <yj k : j=1, …, m>, k=1, …, r, где r – число пар. Подача на вход первого слоя некоторого вектора u = <ui: i=1, …, n> вызывает образование на входе второго слоя некоего другого вектора h = <hj: j=1, …, m>, который затем снова поступает на вход первого слоя. При каждом таком цикле вектора на выходах обоих слоев приближаются к паре образцовых векторов, первый из которых – x – наиболее походит на u, который был подан на вход сети в самом начале, а второй – y

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

Рис. 2.21. Структурная схема ДАП

Эта формула является развернутой записью матричного уравнения

для частного случая, когда образы записаны в виде векторов, при этом произведение двух матриц размером соответственно [n*1] и [1*m] приводит к (2.53).

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

Срочно?
Закажи у профессионала, через форму заявки
8 (800) 100-77-13 с 7.00 до 22.00

Системы распознавания образов (идентификации)

Название Системы распознавания образов (идентификации)
страница 6/9
Дата 23.08.2013
Размер 0.61 Mb.
Тип Документы
скачать
1. /Системы распознавания образов(лекция).doc Системы распознавания образов (идентификации)

Нейронные сети Хопфилда и Хэмминга

Среди различных конфигураций искуственных нейронных сетей (НС) встречаются такие, при классификации которых по принципу обучения, строго говоря, не подходят ни обучение с учителем, ни обучение без учителя. В таких сетях весовые коэффициенты синапсов рассчитываются только однажды перед началом функционирования сети на основе информации об обрабатываемых данных, и все обучение сети сводится именно к этому расчету. С одной стороны, предъявление априорной информации можно расценивать, как помощь учителя, но с другой — сеть фактически просто запоминает образцы до того, как на ее вход поступают реальные данные, и не может изменять свое поведение, поэтому говорить о звене обратной связи с «миром» (учителем) не приходится. Из сетей с подобной логикой работы наиболее известны сеть Хопфилда и сеть Хэмминга, которые обычно используются для организации ассоциативной памяти. Далее речь пойдет именно о них.

Структурная схема сети Хопфилда приведена на Рис. 6. Она состоит из единственного слоя нейронов, число которых является одновременно числом входов и выходов сети. Каждый нейрон связан синапсами со всеми остальными нейронами, а также имеет один входной синапс, через который осуществляется ввод сигнала. Выходные сигналы, как обычно, образуются на аксонах.

Рис. 6. Структурная схема сети Хопфилда.

Задача, решаемая данной сетью в качестве ассоциативной памяти, как правило, формулируется следующим образом. Известен некоторый набор двоичных сигналов (изображений, звуковых оцифровок, прочих данных, описывающих некие объекты или характеристики процессов), которые считаются образцовыми. Сеть должна уметь из произвольного неидеального сигнала, поданного на ее вход, выделить («вспомнить» по частичной информации) соответствующий образец (если такой есть) или «дать заключение» о том, что входные данные не соответствуют ни одному из образцов. В общем случае, любой сигнал может быть описан вектором X = < xi: i=0. n-1>, n — число нейронов в сети и размерность входных и выходных векторов. Каждый элемент xi равен либо +1, либо -1. Обозначим вектор, описывающий k-ый образец, через X k , а его компоненты, соответственно, — xi k , k=0. m-1, m — число образцов. Когда сеть распознáет (или «вспомнит») какой-либо образец на основе предъявленных ей данных, ее выходы будут содержать именно его, то есть Y = X k , где Y — вектор выходных значений сети: Y = < yi: i=0. n-1>. В противном случае, выходной вектор не совпадет ни с одним образцовым.

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

На стадии инициализации сети весовые коэффициенты синапсов устанавливаются следующим образом:

Здесь i и j — индексы, соответственно, предсинаптического и постсинаптического нейронов; xi k , xj k — i-ый и j-ый элементы вектора k-ого образца.

Алгоритм функционирования сети следующий (p — номер итерации):

1. На входы сети подается неизвестный сигнал. Фактически его ввод осуществляется непо-сред-ственной установкой значений аксонов:

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

2. Рассчитывается новое состояние нейронов

и новые значения аксонов

Рис. 7. Активационные функции.

где f — активационная функция в виде скачка, приве-денная на Рис. 7а.

3. Проверка, изменились ли выходные значения аксонов за последнюю итерацию. Если да — переход к пункту 2, иначе (если выходы застабилизировались) — конец. При этом выходной вектор представляет собой образец, наилучшим образом сочетающийся с входными данными.

Как говорилось выше, иногда сеть не может провести распознавание и выдает на выходе несуществующий образ. Это связано с проблемой ограниченности возможностей сети. Для сети Хопфилда число запоминаемых образов m не должно превышать величины, примерно равной 0.15n. Кроме того, если два образа А и Б сильно похожи, они, возможно, будут вызывать у сети перекрестные ассоциации, то есть предъявление на входы сети вектора А приведет к появлению на ее выходах вектора Б и наоборот.

Рис. 8. Структурная схема сети Хэмминга.

Когда нет необходимости, чтобы сеть в явном виде выдавала образец, то есть достаточно, скажем, получать номер образца, ассоциативную память успешно реализует сеть Хэмминга. Данная сеть характеризуется, по сравнению с сетью Хопфилда, меньшими затратами на память и объемом вычислений, что становится очевидным из ее структуры (Рис. 8).

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

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

На стадии инициализации весовым коэффициентам первого слоя и порогу активационной функции присваиваются следующие значения:

Здесь xi k — i-ый элемент k-ого образца.

Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине 0 (2) = yj (1) , j = 0. m-1 (8)

2. Вычислить новые состояния нейронов второго слоя:

и значения их аксонов:

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

3. Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если да — перейди к шагу 2. Иначе — конец.

Ассоциативная память — применение сетей Хемминга для нечеткого поиска

Принцип работы памяти у компьютера Фон-Неймановской архитектуры и человека принципиально отличаются друг от друга. Компьютер используется для поиска информации адрес, а человек ассоциации. Поэтому, если вы знаете, где искать информацию, компьютер найдет ее быстро, но если не знаете, то придется все перебирать. Хорошо еще, если данные не искажены. Вероятно, более «качественная» (если можно так выразиться) память человека позволяет при гораздо меньших вычислительных возможностях лучше анализировать. Принципиальную ограниченность современных компьютеров можно обойти при помощи различного рода систем ассоциативной памяти, например, сетей Хемминга.

Принципы работы сетей Хемминга

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

Отсутствие сигнала кодируется как (-1), наличие (1). Сеть состоит всего из 2-х слоев.

Нейронная сеть Хопфилда

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

Архитектура сети Править

Нейронная сеть Хопфилда состоит из N искусственных нейронов. Каждый нейрон системы может принимать одно из двух состояний (что аналогично выходу нейрона с пороговой функцией активации):

Благодаря своей биполярной природе нейроны сети Хопфилда иногда называют спинами.


Взаимодействие спинов сети описывается выражением:

где $ w_ $ элемент матрицы взаимодействий $ W $ , которая состоит из весовых коэффициентов связей между нейронами. В эту матрицу в процессе обучения записывается М «образов» — N-мерных бинарных векторов: $ S_m=(s_,s_. s_) $

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

Обучение сети Править

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

поскольку именно при этом условии состояния сети $ X_i $ будут устойчивы — попав в такое состояние, сеть в нем и останется.

Некоторые авторы относят сеть Хопфилда к обучению без учителя. Но это неверно, т.к. обучение без учителя предполагает отсутствие информации о том, к каким классам нужно относить стимулы. Для сети Хопфилда без этой информации нельзя настроить весовые коэффициенты, поэтому здесь можно говорить лишь о том, что такую сеть можно отнести к классу оптимизирующих сетей (фильтров). Отличительной особенностью фильтров является то, что матрица весовых коэффициентов настраивается детерминированным алгоритмом раз и навсегда, и затем весовые коэффициенты больше не изменяются. Это может быть удобно для физического воплощения такого устройства, т.к. на схемотехническом уровне реализовать устройство с переменными весовыми коэффициентами на порядок сложнее. Примером фильтра без обратных связей может служить алгоритм CC4 (Cornel classification), автором которого является S.Kak.

В сети Хопфилда есть обратные связи и из-за этого нужно решать проблему устойчивости. Веса между нейронами в сети Хопфилда могут рассматриваться в виде матрицы взаимодействий W. В работе [1] показано, что сеть с обратными связями является устойчивой, если ее матрица симметрична и имеет нули на главной диагонали. Имеется много устойчивых систем, например, все сети прямого распространения, а так же современные рекуррентные сети Джордана и Элмана, для которых не обязательно выполнять условие на симметрию. Но это происходит вследствие того, что на обратные связи наложены другие ограничения. В случае сети Хопфилда условие симметричности является необходимым, но не достаточным, в том смысле, что на достижение устойчивого состояния влияет еще и режим работы сети. Ниже будет показано, что только асинхронный режим работы сети гарантирует достижение устойчивого состояния сети, в синхронном случае возможно бесконечное переключение между двумя разными состояниями (такая ситуация называется динамическим аттрактором, в то время как устойчивое состояние принято называть статическим аттрактором).

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

где N — размерность векторов, m – число запоминаемых выходных векторов; d – номер запоминаемого выходного вектора; $ X_ $ – i-я компонента запоминаемого выходного j-го вектора.

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

где $ X_i $ – i-й запоминаемый вектор-строка.

Расчет этих весовых коэффициентов и называется обучением сети.

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

где F — активационная функция, $ X_i $ и $ X_ $ — текущее и следующее состояния сети, до тех пор, пока состояния $ X_i $ и $ X_ $ не совпадут (или, в случае синхронного режима работы, не совпадут состояния $ X_ $ с $ X_ $ и одновременно $ X_ $ с $ X_i $ ). Именно этот процесс называется конвергенцией сети. Полученное устойчивое состояние $ X_i $ (статический аттрактор), или, возможно, в синхронном случае пара < $ X_i, X_$ > (динамический аттрактор), является ответом сети на данный входной образ.

Работа сети в режиме фильтрации (восстановление повреждённых образов) Править

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

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

где F — активационная функция, $ X(t) $ и $ X(t+1) $ — текущее и следующее состояния сети, до тех пор, пока состояния $ X(t) $ и $ X(t+1) $ не совпадут (или, в случае синхронного режима работы, не совпадут состояния $ X(t-1) $ с $ X(t+1) $ и одновременно $ X(t-2) $ с $ X(t) $ ). Именно этот процесс называется конвергенцией сети.

Это же можно описать так называемым локальным полем $ a_ $ действующим на нейрон $ x_ $ со стороны всех остальных нейронов сети: $ a_(t)=\sum_^w_x_j(t-1) $ .

После расчета локального поля нейрона $ a_ (t) $ это значение используется для расчета значения выхода через функцию активации, которая в данном случае является пороговой (с нулевым порогом). Соответственно, значение выхода нейрона i в текущий момент времени $ x_i(t) $ расчитывается по формуле: $ x_i(t) = sign(\sum_^ w_ x_j(t-1)) $ , где

$ w_ $ — весовой коэффициента между нейронами i и j, $ x_j(t-1) $ — значения выходов нейрона j в предыдущий момент времени.

Во время работы сети Хопфилда признаком нахождения решения является момент, когда достигается аттрактор, статический (когда на каждом следующем шаге повторяется устойчивое состояние $ X(t) $ ) или, возможно, динамический (когда до бесконечности чередуются два разных состояния < $ X(t), X(t+1) $ >). Это конечное состояние сети и является ее реакцией на данный образ.

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

Для сети Хопфилда могут существовать две модификации отличающиеся по времени передачи сигнала: асинхронный и синхронный режимы.

Синхронный режим работы сети Править

Если работа сети моделируется на одном процессоре, то при синхронном режиме последовательно просматриваются нейроны, однако их состояния запоминаются отдельно и не меняются до тех пор, пока не будут пройдены все нейроны сети. Когда все нейроны просмотрены, их состояния одновременно (т.е. синхронно, отсюда и название) меняются на новые. Таким образом, достигается моделирование параллельной работы последовательным алгоритмом. При реально параллельном моделировании, этот режим фактически означает, что время передачи $ \tau_ $ для каждой связи между элементами $ u_i $ и $ u_j $ одинаковое для каждой связи, что приводит к параллельной работе всех связей, они одновременно меняют свои состояния, основываясь только на предыдущем моменте времени. Наличие таких синхронных тактов, которые можно легко выделить и приводит к пониманию синхронного режима. При синхронном режиме возможно (хотя и далеко не всегда наблюдается) бесконечное чередование двух состояний с разной энергией — так называемый динамический аттрактор. Поэтому синхронный режим практически для сети Хопфилда не используется, и рассматривается лишь как основа для понимания более сложного асинхронного режима.

Асинхронный режим работы сети Править

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

По сути при последовательной реализации сети Хопфилда явно не видно в чем заключается асинхронность, но это видно если сеть Хопфилда реализовать с параллельными вычислениями. В этом случае асинхронный режим сети Хопфилда упрощен, и носит частный случай по сравнению с общим видом асинхронных сетей, где время передачи $ \tau_ $ для каждой связи между элементами $ u_i $ и $ u_j $ свое, но постоянное. Чтобы рассмотреть работу сети при параллельной реализации, необходимо ввести понятие такта — как минимальное время за которое происходит передача сигнала по связи, т.е. при $ \tau_ = 1 $ . Тогда за промежуток времени между t и (t+1) происходит определенное количество тактов N. И именно в пределах времени из N тактов происходит асинхроность протекания сигналов и выполнения расчетов. То есть, например, когда нужно расчитать состояние нейрона №3 необходимо расчитать состояния нейрона №1 и состояния нейрона №2 и умножить это на соответствующие веса w13 и w23. Но оказывается, для того чтобы расчитать состояние нейрона №2 нам нужно знать обновленное состояние нейрона №1 и старое состояние нейрона №3, умножить их на веса w12 и w32. Понятно, что физически не возможно расчитать состояние нейрона №1 и состояние нейрона №2 за одно и то же время, т.к. состояние нейрона №2 зависит от состония нейрона №1. Поэтому связь между нейроном №1 и нейроном №3 имеете время передачи $ \tau_ = 2 $ , и достигает нейрона №3 за два такта. Именное такое разное время передачи $ \tau_ $ и позволяет говорить о сети Хопфилда как о сети с ассинхроным режимом.

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

Пример востановления повреждённого изображения Править

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

Пусть имеется нейронная сеть размерностью N=100 , в матрицу связей записан набор черно-белых картинок (-1 — черный цвет, +1 — белый), среди которых есть изображение собачки (рис 1б). Если установить начальное состояние сети близким к этому вектору (рис. 1а), то в ходе динамики нейронная сеть восстановит исходное изображение (рис. 1б). В этом смысле можно говорить о том, что сеть Хопфилда решает задачу распознавания образов (хотя строго говоря, полученное эталонное изображение еще нужно превратить в номер класса, что в некоторых случаях может быть весьма вычислительно емкой задачей).

Устойчивость сети в процессе работы Править

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

Определить устойчиво или нет состояние нейрона можно на основании, так называемой искусственной энергии нейрона в данном поле $ E_i=-s_ih_i $ . Если знак выхода (+1 или -1) нейрона совпадает с направлением локального поля ( $ E_i ), то его положение энергетически устойчиво и в последующий момент времени состояние нейрона остается неизменным. В противном случае ( $ E_i>0 $ ) положение нейрона неустойчиво и он меняет свой знак, переходя в состояние $ s_i(t+1)=-s_i(t) $ с энергией $ E_i(t+1) .

Устойчивость при асинхроном способе достигается потому, что выполняется условие на общую энергию сети $ E(t+1) \leq E(t) $ , в синхронном случае условие несколько изменяется, а именно: $ E(t+1) \leq E(t-1) $ . В ситуации когда происходит бесконечные циклические переходы энергия двух разных состоянияй соответственно равна $ E(t) $ и $ E(t+1) $ . При этом состояния $ t+1 $ и $ t-1 $ , а также $ t $ и $ t+2 $ — совпадают. Если образуется такое состояние, то его называется динамическим аттрактором. Если же совпадают состояния $ t $ и $ t+1 $ , аттрактор называют статическим. В большинстве случаев динамические аттракторы являются нежелательными, так как не соответствуют какому-либо определенному ответу сети.

Ассоциативная память Править

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

Задачи минимизации Править

Однако обработка визуальных образов (фильтрация и ассоциативная память) — не единственная область применения модели Хопфилда. Динамическая процедура, описанная выше, на каждом шаге понижает значение энергии нейронной сети. Это позволяет решать комбинаторные задачи оптимизации, если они могут быть сформулированы как задачи минимизации энергии.

Ограничения сети Править

К сожалению, у нейронной сети Хопфилда есть ряд недостатков.

1. Относительно небольшой объем памяти, величину которого можно оценить выражением:

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

2. Достижение устойчивого состояния не гарантирует правильный ответ сети. Это происходит из-за того, что сеть может сойтись к так называемым ложным аттракторам, иногда называемым «химерой» (как правило, химеры склеены из фрагментов различных образов).

Bits of Mind

Заметки о программировании, и не только…


Распознаём образы: Нейронная сеть Хопфилда

Допустим, у нас имеется некоторое количество эталонных образов – изображений, либо ещё чего-нибудь. Нам дают некий искажённый образ, и наша задача состоит в том, чтобы «распознать» в нём один из эталонных. Каким образом человек это сделает – вопрос сложный. А вот каким образом с данной задачей справится искусственная нейронная сеть – мы вполне можем себе представить. Тем более, если это нейронная сеть Хопфилда.

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

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

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

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

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

0.15*N образов. Так что реальная сеть должна содержать достаточно внушительное количество нейронов. Это одно из существенных недостатков сети Хопфилда – небольшая ёмкость. Плюс ко всему образы не должны быть очень похожи друг на друга, иначе в некоторых случаях возможно зацикливание при распознавании.

Как работает сеть

Образ, который сеть запоминает или распознаёт (любой входной образ) может быть представлен в виде вектора X размерностью n, где n – число нейронов в сети. Выходной образ представляется вектором Y с такой же размерностью. Каждый элемент вектора может принимать значения: +1 либо -1 (Можно свести к 0 и 1, однако +1 и -1 удобнее для расчётов).

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

Обучение сети

Как было сказано, обучение сети строится на вычислении весовых коэффициентов. Для этого мы будем поддерживать матрицу W размером n x n. При обучении сети некому образу X коэффициенты устанавливаются так:

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

Распознавание образа

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

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

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

Сеть выполняет следующую работу пока результат не совпадёт с одним из эталонным образов, либо не привесится порог итераций. Случайным образом выбирается нейрон r для обновления. Для него рассчитывается новое состояние s, используя нашу матрицу коэффициентов следующим образом:

А затем мы обновляем его состояние:

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

Пример

Посмотрим как наша реализация сети сможет распознать образы букв. Мы будем представлять их в виде «битовых полей» размера 7х7. Так, имея три эталонных образа и один образ для распознавания, эмуляция нейронной сети даёт следующий результат:

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

А теперь посмотрим, что будем если подать на вход образ, похожий и на П и на Т:

Однако запустив программу несколько раз мы сможем наблюдать и такой вариант, когда сеть всё же смогла распознать образ П (а не Т, поскольку входящий образ больше похож именно на П):

Заключение

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

Исходные коды программы доступны здесь.
(ссылка обновлена 23.08.2020)

Лекция 6. Нейронные сети Хопфилда и Хэмминга Среди различных конфигураций искусственных нейронных сетей (НС) встречаются такие, при классификации которых. — презентация

Презентация была опубликована 4 года назад пользователемДмитрий Сулистровский

Похожие презентации

Презентация на тему: » Лекция 6. Нейронные сети Хопфилда и Хэмминга Среди различных конфигураций искусственных нейронных сетей (НС) встречаются такие, при классификации которых.» — Транскрипт:

1 Лекция 6. Нейронные сети Хопфилда и Хэмминга Среди различных конфигураций искусственных нейронных сетей (НС) встречаются такие, при классификации которых по принципу обучения, строго говоря, не подходят ни обучение с учителем, ни обучение без учителя. В таких сетях весовые коэффициенты синапсов рассчитываются только однажды перед началом функционирования сети на основе информации об обрабатываемых данных, и все обучение сети сводится именно к этому расчету. Из сетей с подобной логикой работы наиболее известны сеть Хопфилда и сеть Хэмминга, которые обычно используются для организации ассоциативной памяти.

2 Структурная схема сети Хопфилда приведена на Рис. 1. Она состоит из единственного слоя нейронов, число которых является одновременно числом входов и выходов сети. Каждый нейрон связан синапсами со всеми остальными нейронами, а также имеет один входной синапс, через который осуществляется ввод сигнала. Выходные сигналы, как обычно, образуются на аксонах. Рис. 1. Структурная схема сети Хопфилда.

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

4 В общем случае, любой сигнал может быть описан вектором, n – число нейронов в сети и размерность входных и выходных векторов. Каждый элемент равен либо +1, либо -1. Обозначим вектор, описывающий k-ый образец, через, а его компоненты, соответственно, –, k=0. m-1, m – число образцов. Когда сеть распознает (или «вспомнит») какой-либо образец на основе предъявленных ей данных, ее выходы будут содержать именно его, то есть, где y – вектор выходных значений сети:. В противном случае, выходной вектор не совпадет ни с одним образцовым.

5 На стадии инициализации сети весовые коэффициенты синапсов устанавливаются следующим образом: (1) Здесь i и j – индексы, соответственно, предсинаптического и постсинаптического нейронов; – i-ый и j-ый элементы вектора k-го образца.

6 Алгоритм функционирования сети следующий (p – номер итерации): 1. На входы сети подается неизвестный сигнал. Фактически его ввод осуществляется непосредственной установкой значений аксонов: (2) поэтому обозначение на схеме сети входных синапсов в явном виде носит чисто условный характер. Ноль в скобке справа от означает нулевую итерацию в цикле работы сети.

7 (3) и новые значения аксонов (4) где f – активационная функция в виде скачка, приведенная на Рис. 2 а. 2. Рассчитывается новое состояние нейронов Рис. 2

8 3. Проверка, изменились ли выходные значения аксонов за последнюю итерацию. Если да – переход к пункту 2, иначе (если выходы стабилизировались) – конец. При этом выходной вектор представляет собой образец, наилучшим образом сочетающийся с входными данными.

9 Нейронная сеть Хэмминга Рис. 3. Структурная схема сети Хэмминга.

10 Когда нет необходимости, чтобы сеть в явном виде выдавала образец, то есть достаточно, скажем, получать номер образца, ассоциативную память успешно реализует сеть Хэмминга. Данная сеть характеризуется, по сравнению с сетью Хопфилда, меньшими затратами на память и объемом вычислений, что становится очевидным из ее структуры (Рис. 3). Сеть состоит из двух слоев. Первый и второй слои имеют по m нейронов, где m – число образцов. Нейроны первого слоя имеют по n синапсов, соединенных со входами сети (образующими фиктивный нулевой слой). Нейроны второго слоя связаны между собой ингибиторными (отрицательными обратными) синаптическими связями. Единственный синапс с положительной обратной связью для каждого нейрона соединен с его же аксоном.

11 На стадии инициализации весовым коэффициентам первого слоя и порогу активационной функции присваиваются следующие значения: (5) (6) Здесь – i-ый элемент k-ого образца. Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине 0

12 Алгоритм функционирования сети Хэмминга следующий: 1. На входы сети подается неизвестный вектор, исходя из которого рассчитываются состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя): (7) После этого полученными значениями инициализируются значения аксонов второго слоя: (8)

13 2. Вычислить новые состояния нейронов второго слоя: и значения их аксонов: (9) (10) Активационная функция f имеет вид порога (рис. 2 б), причем величина F должна быть достаточно большой, чтобы любые возможные значения аргумента не приводили к насыщению. 3. Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если да – перейди к шагу 2. Иначе – конец.

Нейронная сеть Хопфилда.

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

Итак, сразу же поговорим об основных задачах, которые призвана решать нейронная сеть Хопфилда. И основным ее применением является восстановление образца, ранее сохраненного сетью, по подаваемому на ее вход искаженному образцу. Может это определение не выглядит не совсем понятным, но сейчас все встанет на свои места =) Пусть мы хотим сохранить при помощи сети Хопфилда цифры от нуля до девяти (о процессе сохранения мы поговорим чуть позже, пока не будем останавливаться на этом моменте). Рассмотрим, например, цифру 2, представленную в следующем виде:


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

Вот, собственно, в этом и состоит задача нейронной сети Хопфилда ) Давайте теперь обсудим структуру сети и непосредственно процесс обучения – запоминания образцов.

Сеть Хопфилда является однослойной – если не брать в расчет входные элементы. Каждый из нейронов связан со всеми остальными, но не воздействует на себя самого. В итоге получаем:

Здесь мы рассмотрели сеть с четырьмя нейронами.

Нейроны могут принимать два разных значения, но в отличие от ранее рассмотренных сетей, нейроны сети Хопфилда могут находиться в состояниях -1 и 1 (а не 0 и 1). Конечно, можно использовать и уже ставшую привычной систему состояний (двоичную – 0 и 1), но для сетей Хопфилда более традиционной является такая функция активности:

Комбинированный ввод вычисляется по формуле:

Здесь – состояние нейрона с номером i. Если комбинированный ввод элемента оказывается отрицательным, то состояние элемента становится -1, напротив, когда комбинированный ввод положительный – состояние элемента +1. Если же , то нейрон не изменяет своего состояния, то есть сохраняет предыдущее.

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

Обучение нейронной сети Хопфилда значительно отличается от привычных алгоритмов обучения (например, обучение по принципу обратного распространения ошибки). В случае сети Хопфилда процедура обучения для одного входного образца (процедура сохранения образца) представляет из себя просто расчет весовых коэффициентов по определенной формуле:

Где – это матрица весов, – входной образец, а – транспонированный вектор (получается из исходного вектора заменой строк на столбцы). Если мы хотим сохранить несколько образцов (k), то необходимо произвести вычисления по этой формуле для каждого из образцов по отдельности, а затем сложить полученные матрицы .

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

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

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

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

При изменении состояния нейрона j на энергия изменится на величину:

Под знаком суммы у нас тут комбинированный ввод элемента j. Таким образом, если комбинированный ввод положительный, то и изменение состояния нейрона j положительное ( 0″ title=»Rendered by QuickLaTeX.com» height=»18″ w />). Аналогично, если , то и . Поэтому изменение энергии всегда будет отрицательным (энергия будет уменьшаться в процессе работы сети), что и гарантирует нам то, что сеть является устойчивой.

Пожалуй, на этом закончим обсуждение теоретических аспектов и, как я и обещал, рассмотрим небольшой практический пример, который нам наглядно продемонстрирует обучение и работу нейронной сети Хопфилда =)

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

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

Определяем весовую матрицу по формуле

Не забываем о том, что нам надо обнулить диагональные элементы матрицы:

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

Комбинированный ввод первого нейрона будет равен:

Поскольку > 0, то нейрон 1 будет находиться в состоянии +1.

Для второго нейрона:

Нейрон 2 окажется в состоянии -1.

Таким образом, мы получили такой вектор: , что соответствует тому образцу, который мы запоминали в первой части примера. Как видите, наша сеть работает! =) Если теперь еще раз произвести расчет состояний нейронов в соответствии с теми состояниями, которые они приняли после прохождения вектора по взвешенным связям, то мы увидим, что состояния не изменится, то есть сеть оказалась в устойчивом положении.

На рассмотрении этого примера мы и закончим сегодняшнюю статью. Надеюсь материал окажется понятным и полезным )

Похожие статьи:

Понравилась статья? Поделись с друзьями!

Интересная статься, спасибо, аж захотелось поэкспериментировать. Повторил Ваш пример. Результат оказался верным, но долго не мог понять, почему промежуточные результаты не совпадают. А потом заметил, что у Вас в рассчете net2 опечатка, в самом начале не 1, а -1 поидее должно быть.

Да, спасибо, поправил.

Результат забыли поправить)

Почти в каждой подобной статье ну ооочень не хватает кода к каждой формуле, а в конце – работающий простой исходник

Очень хотелось бы такой пример, но с двумерными матрицами

Реализовал пример на С++, работает. Но если модель масштабировать, то выдает какую-то дичь.

Использование сети Хемминга для автоматической коррекции ошибок

Рубрика: Информационные технологии

Дата публикации: 11.01.2020 2020-01-11

Статья просмотрена: 337 раз

Библиографическое описание:

Омаров М. Б. Использование сети Хемминга для автоматической коррекции ошибок // Молодой ученый. — 2020. — №2. — С. 61-65. — URL https://moluch.ru/archive/136/37992/ (дата обращения: 12.11.2020).

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

Ключевые слова: нейронные сети, сеть Хемминга, нечёткий поиск, коррекция ошибок

Постановка задачи.

Под нечётким поиском подразумевается нахождение того же образца, который подаётся на вход, или близкого к нему значения. Обычно для решения таких задач применяются различные метрики (Левенштейна, Дамерау-Левенштейна, метод N-грамм, BK-деревья и т. д.). В данной статье будет предложен алгоритм поиска на основе нейронной сети Хемминга.

Сеть Хемминга. Принцип работы.

Рис. 1. Структурная схема сети Хемминга

Нейронная сеть Хемминга состоит из двух слоёв, количество нейронов в которых равно количеству образцов (классов), хранимых в словаре [1]. Алгоритм работы базируется на нахождении расстояния Хемминга между поданным на вход вектором и эталонными образами. Сеть должна предпочесть образец, который имеет наименьшее расстояние Хемминга до входного вектора.


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

Каждое слово может быть описано входным вектором X = < , , … >, где , но в сети Хемминга координаты вектора могут принимать только значения -1 и +1, поэтому перед подачей двоичного вектора на вход сети необходимо его преобразовать.

public class Neuron <

private double[] weights;

private double y;

private double s;

Листинг 1. Структура нейрона

public class HammingNetwork <

private Neuron[] firstLayer;

private Neuron[] secondLayer;

Листинг 2. Структура сети

Стадия инициализации.

Заполнение весовых коэффициентов нейронов первого слоя:

, где — i-ая координата j-го образца.

Расчёт состояний нейронов первого слоя.

На вход подаётся вектор X, начинается подсчёт состояний нейронов первого слоя и их аксонов: , где .

private void fillFirstLayer(int[] x) <

double t = (double) n / 2;

for (int j = 0; j lastY = new ArrayList<>();

for (int j = 0; j outputs;

boolean outputChange = false;

List currentY = new ArrayList<>();

for (int j = 0; j eMax;

outputs = new ArrayList<>();

return outputs.stream().mapToDouble(i -> i).toArray();

private double calculateSum(List y, double epsilon, int j) <

for (int k = 0; k нейронные сети, сеть Хемминга, нечёткий поиск, коррекция ошибок

Похожие статьи

Распознавание английского текста сверточной нейронной сетью

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

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

Матричный метод расчетов динамических рекуррентных.

Ключевые слова: искусственная нейронная сеть, синаптические веса, ассоциативная память, сигнальные графы, матрицы смежности

вектор функций активационных блоков. ; (3). ‒ — вектор значений, подаваемых на входы всех нейронов ИНС внешних сигналов.

Исследование возможностей использования нейронных сетей

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

Обучение нейронной сети (Training) — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети.

Гибкие нейронечеткие системы вывода и программная.

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

Исследование и разработка математической модели метеопрогноза

вектора параметров. Второй нейронной сетью является нейронная сеть, использующая радиально-базисные функции как активационные. Такая сеть называется сетью радиально-базисных функций (Radial Basis Function Network RBFN) [3].

Разработка математической модели нейронной сети

Ключевые слова: модель, нейрон, математика, нейронные сети, основные модели нейронных сетей, нейрон.

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

Модель математической нейронной сети | Статья в журнале.

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

Применение нейронных сетей в распознавании рукописного текста

Самыми популярными можно назвать нечеткие нейронные сети [6], сеть Хэмминга [7], сеть Хопфилда [8], самоорганизующиеся карты [9] и многие другие.

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


От биологических процессов мозга к нейровычислителям

Функция θ [h] — активационная характеристика, или передаточная функция нейрона.

Происходит в результате умножения входных сигналов на весовые коэффициенты.

Особенностью искусственной нейронной сети является наличие активационной.

Распознавание английского текста сверточной нейронной сетью

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

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

Матричный метод расчетов динамических рекуррентных.

Ключевые слова: искусственная нейронная сеть, синаптические веса, ассоциативная память, сигнальные графы, матрицы смежности

вектор функций активационных блоков. ; (3). ‒ — вектор значений, подаваемых на входы всех нейронов ИНС внешних сигналов.

Исследование возможностей использования нейронных сетей

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

Обучение нейронной сети (Training) — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети.

Гибкие нейронечеткие системы вывода и программная.

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

Исследование и разработка математической модели метеопрогноза

вектора параметров. Второй нейронной сетью является нейронная сеть, использующая радиально-базисные функции как активационные. Такая сеть называется сетью радиально-базисных функций (Radial Basis Function Network RBFN) [3].

Разработка математической модели нейронной сети

Ключевые слова: модель, нейрон, математика, нейронные сети, основные модели нейронных сетей, нейрон.

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

Модель математической нейронной сети | Статья в журнале.

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

Применение нейронных сетей в распознавании рукописного текста

Самыми популярными можно назвать нечеткие нейронные сети [6], сеть Хэмминга [7], сеть Хопфилда [8], самоорганизующиеся карты [9] и многие другие.

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

От биологических процессов мозга к нейровычислителям

Функция θ [h] — активационная характеристика, или передаточная функция нейрона.

Происходит в результате умножения входных сигналов на весовые коэффициенты.

Особенностью искусственной нейронной сети является наличие активационной.

Электронная библиотека

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

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

Рис. 2.20. Структурная схема сети Хэмминга

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

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

На стадии инициализации весовым коэффициентам первого слоя и порогу активационной функции присваиваются следующие значения:

Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине 0 (2) = yj (1) , j=1, …, m. (2.50)

2) Вычислить новые состояния нейронов второго слоя:

и значения их аксонов:

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

3) Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию.

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

Обсуждение сетей, реализующих ассоциативную память, было бы неполным без хотя бы краткого упоминания о двунаправленной ассоциативной памяти (ДАП). Она является логичным развитием парадигмы сети Хопфилда, к которой для этого достаточно добавить второй слой. Структура ДАП представлена на рис. 2.21. Сеть способна запоминать пары ассоциированных друг с другом образов. Пусть пары образов записываются в виде векторов x k = <xi k : i = 1, …, n> и y k = <yj k : j=1, …, m>, k=1, …, r, где r – число пар. Подача на вход первого слоя некоторого вектора u = <ui: i=1, …, n> вызывает образование на входе второго слоя некоего другого вектора h = <hj: j=1, …, m>, который затем снова поступает на вход первого слоя. При каждом таком цикле вектора на выходах обоих слоев приближаются к паре образцовых векторов, первый из которых – x – наиболее походит на u, который был подан на вход сети в самом начале, а второй – y

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

Рис. 2.21. Структурная схема ДАП

Эта формула является развернутой записью матричного уравнения

для частного случая, когда образы записаны в виде векторов, при этом произведение двух матриц размером соответственно [n*1] и [1*m] приводит к (2.53).

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

Срочно?
Закажи у профессионала, через форму заявки
8 (800) 100-77-13 с 7.00 до 22.00

Илон Маск рекомендует:  Что такое код paintrgn
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL