Классификатор на основе нейронной сети ART-1.

В этой работе построен классификатор, распознающий картинки с цифрами от 0 до 9. Для реализации классификатора используется нейронная сеть ART-1.

Введение

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

Решение этой проблемы было предложено С.Гроссбергом в теории адаптивного резонанса (ART)[1]. Согласно ей общая схема интеллектуальной системы состоит из двух типов памяти: кратковременной (STM) и долговременной (LTM), которые связаны между собой. Текущий входной образ помещается в кратковременную память и сравнивается с хранящимися в долговременной памяти. Если содержимое STM похоже на образ из LTM то возникает состояние резонанса - т.е. система "узнаёт" входной образ. В противном случае текущий входной образ считается "новым". Таким образом реализуется детектор новизны образов[2].

Гипотеза Гроссберга состоит в том, что только резонансные состояния мозга достигают рационального уровня сознания[3]. Это перекликается с понятием естественного (человеческого) языка, который часто ошибочно определяют как средство общения, в то время как средством общения есть речь. Язык же есть средством разделения, инструментом сегментации и классификации окружающего мира. Человек способен видеть (воспринять) только то, что присутствует в его языке (состояние резонанса).

На базе теории адаптивного резонанса было разработано несколько нейросетевых моделей. В этой статье мы рассмотрим нейронную сеть ART-1[4].

Модель

ART-1 относится к дискретным (работает с бинарными сигналами) рекуррентным нейронным сетям и состоит из трёх слоёв (входного и двух обрабатывающих) и двух специальных блоков (управления и сброса). Общая схема этой сети приведена на рис.1.

clip_image001

Рис.1: нейронная сеть ART-1

Нейроны входного слоя соединёны с соответствующими нейронами первого слоя, блоком сброса R и блоком управления G. Каждый нейрон первого слоя соединён со всеми нейронами второго слоя и блоком сброса R. Нейроны второго слоя соединёны со всеми нейронами первого слоя и блоком управления G.

Общая схема функционирования сети выглядит следующим образом.

Сигнал через входной слой X подается на нейроны первого слоя,

Взвешенные (с помощью матрицы весов B) выходы первого слоя Y0 поступают на входы второго слоя.

Взвешенные (с помощью матрицы весов T) выходы второго слоя Y1 возвращаются к первому слою.

Выходы первого слоя Y0 и входной вектор X сравниваются, выполняется проверка состояния резонанса, т.е. проверяется "узнала" система образ или нет.

Если резонанс не установлен то модифицируется второй слой и процедура повторяется со второго шага.

Рассмотрим теперь эти механизмы подробнее.

Первый слой.

Каждый нейрон i первого слоя имеет три входа.

Первый вход это соответствующая компонента xi входного образа.

Второй вход - сигнал от блока управления G, он выдаётся при активном входе X и неактивном втором слое, это состояние соответствует начальному состоянию сети.

clip_image002

(1)

Третий вход это взвешенный выход нейронов второго слоя clip_image003,
где clip_image004 - выход k-го нейрона второго слоя, clip_image005 - весовой коэффициент.

Второй слой реализует алгоритм "победитель берёт всё" (WTA), поэтому выход только одного нейрона второго слоя будет активен.

Выход нейрона clip_image006 первого слоя будет активен только если активны два или три его входа (т.н. правило "два из трёх").

clip_image007

(2)

Второй слой.

Здесь реализуется немного усложнённый алгоритм "победитель берёт всё" (WTA). "Победителем" считается нейрон второго слоя с максимальным состоянием clip_image008

clip_image009

(3)

clip_image010

(4)

где clip_image011 - выход clip_image006[1]-го нейрона первого слоя, clip_image012 - весовой коэффициент.

Выходная активность нейрона-победителя устанавливается равной единице, остальные нейроны остаются неактивны.

clip_image013

(5)

Любой нейрон второго слоя может находиться в заблокированном состоянии, т.е. для него установлен сигнал сброса R. Это означает, что он "не допускается до участия в соревнованиях".

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

Блок сброса R.

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

clip_image014

(6)

где clip_image011[1] - выход clip_image006[2]-го нейрона первого слоя, clip_image015 - clip_image006[3]-го компонента входного образа, clip_image016 - константа (т.н. параметр бдительности).

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

Если отношение (6) не выполняется то здесь возможны два варианта.

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

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

Правило обучения сети.

Как и в случае перцептрона[5] память системы есть матрицы весовых коэффициентов связей нейронов. Но в отличии от него процесс функционирования сетей ART не разделяется на две фазы обучения и рабочего состояния. ART-1 способна обучаться постоянно и самостоятельно, по мере поступления новых образов. Если система обнаружила новый образ то резервируется нейрон второго слоя и модифицируются веса его связей по следующим правилам. 

clip_image017

(7)

clip_image018

(8)

где clip_image019 - константа, clip_image011[2] - выход clip_image006[4]-го нейрона первого слоя, k- номер нейрона-победителя второго слоя.

Начальные значения весовых матриц следующие.

clip_image020

(9)

clip_image021

(10)

где clip_image019[1] - константа, clip_image022 - размер выходного вектора X.

Алгоритм функционирования нейронной сети.

инициировать матрицы весов B по (9) и T по (10)

подать вход X

рассчитать выход блока управления G по (1)

рассчитать выходы нейронов первого слоя clip_image011[3] по (2)

рассчитать состояния нейронов второго слоя clip_image023 по (3)

найти нейрон второго слоя с максимальной активностью по (4),
который ещё не был "победителем"

если нет нового нейрона-победителя
то перейти на п.14
иначе перейти на следующий пункт

рассчитать выход блока управления G

рассчитать выходы нейронов первого слоя clip_image011[4]

рассчитать значение блока сброса R по (6)

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

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

состояние резонанса,
вход X успешно классифицирован,
номер класса равен номеру текущего нейрона-победителя второго слоя,
перейти на п.17

обнаружен новый образ,
найти свободный нейрон второго слоя

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

зарезервировать найденный свободный нейрон второго слоя,
модифицировать его веса согласно (7) и (8)

конец работы

Отметим, что это несколько упрощённый алгоритм ART-1, в оригинале веса связей модифицируются в любом случае: как при обнаружении нового образа, так и при успешной классификации. Таким образом моделируется адаптивность системы. Однако такой алгоритм ведёт к постепенному, необратимому обнулению матриц весов и рано или поздно система перестанет работать. Своеобразная математическая модель русской поговорки "много будешь знать - скоро состаришься".

Реализация

В этой работе реализован классификатор бинарных (черно-белых) картинок с изображением цифр.

На вход нейронной сети подаётся картинка в формате BMP, размером 17 × 31 точек, представляющая собой матрицу 51 × 31 байт, таким образом входной слой сети (X на рис.1) состоит из51 × 31 = 1581 нейронов. Размер первого слоя равен размеру входного вектора X. Размер второго слоя определяет емкость памяти системы, в данном случае - 10 нейронов.

image

type

cluster

clip_image025

new

0

clip_image027

new

1

clip_image029

new

2

clip_image031

new

3

clip_image033

new

4

clip_image035

new

5

clip_image037

new

6

clip_image039

new

7

clip_image041

new

8

clip_image043

new

9

image

type

cluster

clip_image025[1]

old

0

clip_image027[1]

old

1

clip_image029[1]

old

2

clip_image031[1]

old

3

clip_image033[1]

old

4

clip_image035[1]

old

5

clip_image037[1]

old

6

clip_image039[1]

old

7

clip_image041[1]

old

8

clip_image043[1]

old

9

image

type

cluster

clip_image044

old

0

clip_image045

new

all busy

clip_image046

old

2

clip_image047

old

3

clip_image048

new

all busy

clip_image049

old

5

clip_image050

old

6

clip_image051

new

all busy

clip_image052

old

8

clip_image053

old

9

Рис.2: результаты работы классификатора

Данная реализация классификатора показала способность к обобщению немного хуже двухслойного перцептрона. Однако, она обладает способностью отделять новые образы от искажённых старых (тех, что уже предъявлялись), а так же ART-1 (в отличии от перцептронов) способна постоянно (быстро) обучаться, не "забывая" при этом старые образы.

В программе используется библиотека для работы с картинками GdkPixbuf v.2.

Исходные тексты программы [ здесь ].

Литература

1

Grossberg S. Competitive learning: From interactive activation to adaptive resonance // Cognitive Science N11/1987, p.23-63 - http://www.cns.bu.edu/Profiles/Grossberg/

2

Сергей А. Терехов Лекции по теории и приложениям искусственных нейронных сетей - http://alife.narod.ru/lectures/neural/Neu_index.htm

3

С.Гроссберг Внимательный мозг // Открытые системы, N4/1997 - http://www.osp.ru/os/1997/04

4

James A.Freeman, David M.Skapura Neural networks : algorithms, applications, and programming techniques. - Addison-Wesley Publishing Company, 1991, ISBN 0-201-51376-5

5

В.А.Головко, под ред.проф.А.И.Галушкина Нейронные сети: обучение, организация и применение. - Москва : ИПРЖР, 2001

Автор: Е.С.Борисов оригинал статьи

Предлагаю ознакомиться с аналогичными статьями: