Моя магистерская работа посвящена исследованию возможностей нейросетевого алгоритма "Неокогнитрон" в области распознавания образов, подвергнутых различным искажениям: сдвигам, поворотам, изменению формы, шуму. Данная работа подразумевает реализацию оптимальной модели неокогнитрона, справляющуюся с поставленными задачами, в частности, с распознаванием арабских цифр, используя минимум вычислительных ресурсов компьютера.
Входными данными для системы являются:
Выходные данные - индексы классов, которым принадлежат входные образы.
Проблема эффективного распознавания образов имеет важное значение в сферах автоматизации определенных процессов человеческой деятельности, связанных с идентификацией различных объектов окружающего мира, например, авторизация рабочего персонала по отпечаткам пальцев или сетчатке глаза, идентификация продукта и расчет цены в магазине по штрих-коду и так далее.
В ходе развития кибернетических наук было разработано множество методов по распознаванию образов. Однако они обладают существенными недостатками, такими как узкая специализированность применения, а также необходимость использования дополнительных алгоритмов обработки изображений для подавления шума и т.д. В результате последних медицинских исследований появилась возможность смоделировать нейросеть, структура которой основывается на строении зрительной коры головного мозга. Модель этой сети - неокогнитрон - показала высокую эффективность ее применения для распознавания образов.
Реализованные на данный момент модели неокогнитрона носят скорее демонстративный характер, потому что существующие на данный момент компьютеры не обладают достаточной производительностью. Исследования в области оптимизации архитектуры неокогнитрона позволят решить эту проблему.
В ходе данной работе будет разработан нейросетевой алгоритм, выполняющий быстрое и точное распознавание входных образов с различным разрешением и степенью искажения. Будет проведен анализ эффективности функционирования неокогнитрона при различных параметрах системы. Кроме того, будут выполнены исследования влияния различных факторов на качество распознавания.
Базовая модель неокогнитрона была введена Фукушимой в 1980 году как расширение когнитрона - нейросетевого алгоритма, способного распознавать сложные образы. Неокогнитрон показал отличные результаты по распознаванию образов, подвергнутых смещениям в позиции, зашумлению, искажению формы. Тем не менее, неокогнитрон не справлялся с задачами распознавания образов, повернутых на некоторый угол, а процесс распознавания занимал довольно длительное время.
В течение многих лет Неокогнитрон усовершенствовался благодаря труду ученых. Были введены 2 модели неокогнитронов, устойчивых к повороту входного образа:
R-неокогнитрон теряет свою эффективность при большом числе классов, к которым могут принадлежать образы, так как время распознавания возрастает экспоненциально в зависимости от числа нейронов.
TD-R-Неокогнитрон выполняет т.н. ментальный поворот образа, определяя угол и сравнивая с эталоном. Данный принцип имеет много общего с поведением человека: когда человек смотрит на картину, повернутую на 90 градусов, он определяет угол и старается наклонить свою голову, чтобы понять, что нарисовано на картине.
На данный момент существует несколько версий реализации неокогнитрона, имеющие незначительные различия:
Последние обладают более высокой скоростью обучения и стабильностью. Однако их недостаток в том, что предполагается использование дополнительной информации о принадлежности всего входного образа целиком и его отдельных частей к тому или иному классу.
Модели, которые обучаются без учителя, являются более адаптивными и оптимальными. Они базируются на представлениях о зрительной системе восприятия человека.
Неокогнитрон представляет собой многослойную самоорганизующуюся нейронную сеть, которая моделирует систему восприятия человека. Его слои состоят из множества нейронов, сгруппированных в плоскости - двумерные массивы. Нейрон одного слоя получает сигналы от ограниченного числа нейронов предыдущего слоя, и посылает выходные сигналы небольшому числу нейронов следующего слоя.
В структуре неокогнитрона используются три типа нейронов - S-нейроны ("простые" нейроны), C-нейроны ("сложные" нейроны) и тормозящие нейроны. Подробнее о функционировании каждого из них - в разделе Описание нейронов. Слои сгруппированы парами, за каждым S-слоем, содержащим одни только S-нейроны, следует C-слой. Плоскости любого S-слоя обучаются распознавать определенные особенности входного образа, а плоскости C-слоев комбинируют результаты распознавания.
Рисунок 1.1 - Структура Неокогнитрона
Количество нейронов в плоскостях уменьшается от слоя к слою. Последний C-слой содержит множество плоскостей, содержащих по одному нейрону, реагирующему на определенный входной образ. Входной слой содержит одну плоскость нейронов, и передает распознаваемый образ на вход первому S-слою.
Каждая плоскость S-слоя получает входные сигналы ото всех плоскостей предыдущего C-слоя, т.е. каждый нейрон в любой S-плоскости связан с группами нейронов из всех C-плоскостей, позиционно расположенных в одних и тех же областях. Нейроны плоскости C-слоя получают входные сигналы только от нейронов соответствующей ей плоскости предыдущего S-слоя.
Каждый нейрон реагирует на выходные сигналы нейронов предыдущего слоя, лежащих в его области связи. Чем глубже уровень нейрона, тем больше становится его рецептивная область. Таким образом, каждый нейрон последнего слоя воспринимает весь входной образ неокогнитрона. Размеры областей связи выбираются таким образом, чтобы для соседних нейронов они перекрывались, а все вместе покрывали входной образ целиком.
Рисунок 1.2 - Области связи
Все нейроны, используемые в неокогнитроне, являются аналоговыми, т.е. их входы и выходы имеют не-отрицательное вещественное значение. Всего используется 3 типа нейронов - S-нейроны, C-нейроны и тормозящие нейроны.
Рассмотрим функционирование S-нейрона. Как показано на рисунке 2, он получает множество возбуждающих входных сигналов от нейронов C-слоя - U(k), которые увеличивают его выходной сигнал. С другой стороны, влияние выходного сигнала тормозящего нейрона - v, - уменьшает его реакцию. Каждое соединение с нейроном предыдущего слоя имеет свой положительный коэффициент - a(k). Коэффициент соединения с тормозящим нейроном обозначен как b.
Рисунок 1.3 - Входные соединения S-нейрона
Обозначим выходной сигнал S-нейрона как w. Он вычисляется по формуле, приведенной в рис. 3
Функция активации является линейной при положительных значениях входного сигнала, и равной нулю в остальных случаях.
Тормозящий нейрон имеет ту же область связи, что и S-нейрон.
Выход тормозящего нейрона определяется по следующей формуле
Коэффициенты предсинаптических связей с C-слоем тормозящего нейрона зафиксированы и не изменяются, а их значения уменьшаются от середины области связи к ее краям, причем их сумма равна 1.
Рассмотрим вычислительные процессы, связанные с работой C-нейрона. Коэффициенты связей от S-слоя к C-слою определяются один раз и не изменяются в дальнейшем, их значения определяются аналогично коэффициентам тормозящих нейронов. Выходное значение C-нейрона определяется по формуле:
где функция кси дает значение x/(a+x) при положительном x, и 0 - в противном случае.
Обучение неокогнитрона происходит по методу "обучение без учителя", т.е. в процессе обучения неокогнитрону подаются на вход образы без дополнительной информации о том, какому классу они принадлежат. Обучение выполняется последовательно, от слоя к слою.
Рисунок 1.1 - Демонстрация распознавания
Как упоминалось выше, изменяются только a(k) и b-коэффициенты S-нейронов по следующим формулам:
где q - коэффициент обучения, u(k) - выход k-го нейрона С-слоя, c(k) - весовой коэффициент предсинаптической связи тормозящего нейрона, v - выход тормозящего нейрона.
Изначально весовые коэффициенты a(k) и b принимают значения, близкие к нулю.
Процесс обучения ориентирован на то, чтобы каждая отдельная плоскость нейронов S-слоя обучилась реагировать на отдельную особенность входного образа. Но могут возникнуть такие ситуации, что нейроны в разных плоскостях при обучении на одних и тех же образах дадут достаточно высокие выходные сигналы и увеличат свои коэффициенты. Чтобы этого избежать, были введены столбцы конкуренции. Для каждого нейрона выбирается область определенного размера, в которую входит определенное число соседей. Эта область - область среза для одного из столбцов. В этот же столбец входят нейроны из той же самой области всех остальных плоскостей данного слоя. Столбцы, также как и области связи, могут частично перекрывать друг друга.
После того, как были посчитаны выходные сигналы для всех нейронов S-слоя, в каждом столбце конкуренции выбирается кандидат - нейрон, имеющий наибольший выходной показатель. Этот нейрон записывается в список кандидатов для плоскости, в которой находится. Затем, для каждой плоскости, из ее списка выбирается кандидат с максимальным выходом, и изменяются весовые коэффициенты его синаптических связей. Эти коэффициенты копируются на все нейроны этой же плоскости. Таким образом, на каждую особенность входного образа будут реагировать нейроны только одной плоскости.
На данный момент реализована система, которая успешно справляется с задачей распознавания арабских цифр. Реализован алгоритм чтения входного образа. Реализованы алгоритмы распознавания и обучения. Были проведены испытания работающей системы. На компьютере с процессором Intel Celeron 900Mhz процесс обучения на образах с разрешением 19x19, в ходе которого каждый образ подавался на вход нейросети 100 раз, длится 10.3 секунды, а процесс распознавания - 0.1 секунды. Неокогнитрон успешно
В настоящее время ведется разработка автоматизированного процесса обучения на наборах образов. Ведутся исследования по улучшению характеристик нейроалгоритма.
Неокогнитрон показал очень хорошие результаты при распознавании образов. Развитие данной модели является очень перспективной задачей, решение которой позволит создать универсальную систему по идентификации различных объектов. На данный момент система обладает рядом недостатков, таких как низкая скорость обучения, жесткие параметры входных образов. Но эти проблемы являются разрешимыми.