В настоящее время предложено большое количество нейросетевых парадигм для решения задачи распознавания образов. Значительные затруднения при распознавании вызывают образы, подверженные какому-либо искажению (зашумление, смещение, поворот, изменение образа в размерах). Эту проблему решают путём выбора соответствующей архитектуры и способа обучения. Анализ работ показывает, что пока не существует такой модели, которая была бы не чувствительна ко всем четырём видам искажений.
В данной работе описывается мощная нейросетевая парадигма &ndash модель неокогнитрона, использующая качественно новую архитектуру и неконтролируемое обучение. На основе созданной программной модели неокогнитронной нейросети проведен анализ процесса обучения и распознавания графических образов. Результаты моделирования показали, что отличительной особенность нейросетей типа неокогнитрон является их высокая скорость обучения и распознавания, а также обусловленная архитектурой нейросети ошибкоустойчивость при распознавании образов, подверженных всем видам искажений.
Неокогнитрон является иерархической нейронной сетью, состоящей из достаточно большого числа идущих друг за другом слоёв и имеющей неполные (можно сказать достаточно редкие) связи между слоями [1]. Модель неокогнитрона была разработана после того, как в зрительной системе были обнаружены узлы, реагирующие на такие элементы, как линии и углы определенной ориентации. На более высоких уровнях узлы реагируют на более сложные и абстрактные образы такие, как окружности, треугольники и прямоугольники. На ещё более высоких уровнях степень абстракции возрастает до тех пор, пока не определятся узлы, реагирующие, например, на лица или другие сложные формы. В общем случае узлы на более высоких уровнях получают вход от группы низкоуровневых узлов и, следовательно, реагируют на более широкую область визуального поля. Реакции узлов более высокого уровня менее зависят от позиции и более устойчивы к искажениям [2]. Схематический принцип процесса распознавания неокогнитроном представлен на рис. 1.
Каждый слой неокогнитрона состоит из стеков матриц. Все матрицы одного слоя имеют одинаковую размерность. От слоя к слою размерность матриц уменьшается либо остается прежней [1,3]. Элементами матриц являются отдельные нейроны. Все нейроны в каждой матрице реагируют на один и тот же образ (рис. 2). То есть, каждый из них настраивается на один специфический входной образ. Каждый нейрон чувствителен к ограниченной области входного образа, называемой его рецептивной областью.
В неокогнитроне выделяют два типа слоёв: «простые» (S-слои, от слова simpl) и «комплексные» (C-слои, от слова complex), которые состоят соответственно из «простых матриц» (распознают входную информацию) и «комплексных матриц» (обобщают распознанную информацию). Нейроны простых матриц связаны только с некоторыми нейронами комплексных матриц. В свою очередь нейроны комплексных матриц связаны с нейронами простых матриц следующего слоя.
Входной слой обычно представляется как нулевой комплексный слой [1]. Концептуально, комплексные матрицы созданы для того, чтобы объединить однотипные результаты распознавания простых матриц. Например, если нейроны первой простой матрицы распознают символ «g», а второй матрицы символ «g», то эти результаты в комплексной матрице следует объединить, т.к. это одна и та же английская буква.
Каждый нейрон как простого, так и комплексного слоя получает сигналы не от всех нейронов, а лишь от некоторых, с которыми он связан. Такие нейроны образуют «область видимости» [1, 3, 4]. В отличие от термина «рецептивное поле», термин «область видимости» определяет нейроны предыдущего слоя, с которыми связан рассматриваемый нейрон, а рецептивное поле определяет ту часть входного слоя, которую распознает данный нейрон. Для центрального нейрона каждой матрицы, центральный элемент области видимости располагается в центре матрицы предыдущего слоя (рис. 2).
Различают слои, которые могут осуществлять и не выполнять сжатие графической информации. Для слоев со сжатием характерно то, что размерность его матриц меньше, чем размерность матриц предыдущего слоя. Для сжатия могут использоваться различные методы. В созданной модели для слоёв со сжатием используется следующий метод: центр области видимости нейрона, смещенного на 1 позицию от центрального нейрона, смещается на 2 позиции относительно центра матрицы предыдущего слоя [1].
При определении математической модели неокогнитрона для каждого нейрона простой матрицы, вводится дополнительный тормозящий (или подавляющий) нейрон v. На тормозящий нейрон возлагается функция подавления выходного сигнала нейрона при несоответствии входного образа образу, на распознавание которого настроен нейрон. Подавляющий нейрон связан с нейроном простого слоя и с теми же нейронами комплексного слоя, с которыми связан сам простой нейрон.
Можно выделить следующие этапы работы неокогнитрона (см. рис. 3).
При математическом представлении модели введем два дополнительных вектора. Вектор n и вектор k. Вектор n задает положение нейрона в стеке матриц (см. рис. 1):
Вектор k задает смещение координат нейрона относительно рассматриваемого нейрона (вектор n) в стеке матриц предыдущего слоя. Он также имеет 3 координаты:
Введем новый оператор между этими двумя векторами:
Tc и Ts определяют количество матриц в стеках матриц предыдущего слоя.
Множество A определяет все нейроны входящие в область видимости рассматриваемого нейрона. Это множество состоит из трехмерных векторов, каждый из которых задает относительное смещение нейрона области видимости от вектора n.
Для расчёта выходного сигнала подавляющего нейрона используется следующая формула:
Сигнал, подаваемый на вход простого нейрона, вычисляется по формуле:
Функция активации нейронов простого слоя имеет вид:
Входной сигнал для нейронов комплексного слоя вычисляется по формуле:
Для нейронов комплексных слоёв использовались различные функции активации.
Для обучения неокогнитрона применялась стратегия «обучение без учителя». Настраиваемыми коэффициентами выступали коэффициенты от нейронов комплексного слоя к нейронам простого слоя и коэффициент от подавляющего нейрона к нейрону простого слоя. Коэффициенты от комплексных нейронов к подавляющему нейрону и от простых нейронов к комплексным являются фиксированными. В связи с этим возникает задача определения значений фиксированных коэффициентов. В самом начале предполагается, что значения коэффициентов должны уменьшаться с удалением от центра области видимости.
При настройке весовых коэффициентов использовалась простая формула расчета ?, которая зависит от величины входных сигналов [1,3,4,5]. Формула расчета коэффициентов для нейрона заданного вектором n:
Величина α для весового коэффициента подавляющего нейрона выбирается так, чтобы процесс обучения мог завершиться. По поводу формулы, которую лучше использовать, нет единого мнения. Поэтому исследовались следующие возможные два способа.
Первый способ основывался на формуле:
В этом случае настраиваемый коэффициент зависит только от центрального элемента предыдущего слоя. Это накладывает некоторые ограничения на расположение обучающего образа, то есть образ должен быть расположен так, чтобы нейроном предыдущего слоя с максимальным возбуждением был нейрон, который находится в центре области видимости. Такое ограничение накладывается в силу того, что в противном случае в процессе обучения числитель дроби, используемой при расчёте входа на S-нейрон, будет расти быстрее знаменателя, что приведёт к невозможности обучения.
Второй способ основывался на формуле
В этом случае дельта зависит от выхода тормозящего нейрона, а сам выход тормозящего нейрона зависит от всех нейронов предыдущего слоя, с которыми связан обучаемый нейрон. В программной модели применялся второй способ из-за его универсальности.
Обучение неокогнитрона происходит слой за слоем. При обучении нейронов использовался метод, при котором в каждой матрице обучается только один нейрон (обычно используется центральный нейрон). После завершения обучения весовые коэффициенты этого нейрона переносятся на все остальные нейроны в этой матрице [1]. Таким образом, процесс обучения производится достаточно быстро, так как на каждом слое необходимо обучить лишь столько нейронов, сколько матриц в данном слое, а их количество обычно не превосходит 100 [1, 2, 3].
Для обучения нейронов первого слоя шаблон обучения записывается на входном слое и после этого начинается обучение центральных нейронов каждой матрицы. После того, как первый слой обучен, переходят к обучению второго слоя. Для этого необходимый образ записывают на входном слое, вычисляют выходы всех нейронов первого простого слоя, первого комплексного слоя и на основе полученных результатов (выходов нейронов первого комплексного слоя) обучают нейроны второго простого слоя. Для третьего и последующих слоёв всё аналогично (вычисление выходов нейронов на втором, третьем и других слоях происходит лишь после записи шаблона обучения ) [1,3].
Нейроны последнего слоя должны видеть полностью входной образ, иначе теряется смысл распознавания. Это условие является обязательным, но, как показывают исследования, размер рецептивного поля не обязательно должен стать равным размеру входного изображения лишь на последнем слое, это может происходить и раньше.
Анализ процесса распознавания был проведен на классах образов, обеспечивающих проверку чувствительности неокогнитрона к:
Трансформации подвергались лишь те образы, которые были правильно распознаны неокогнитроном в оригинальном виде.
При изменении масштаба (рис. 4) неокогнитрон показал 92% распознаваемости. Ошибки в распознавании происходили в основном при сильном уменьшении масштаба.
Неокогнитрон является нейронной сетью нечувствительной к местоположению образов (рис. 5). Это было подтверждено результатами моделирования. Неокогнитрон показал 100% распознаваемости на предложенных образах.
Отличные характеристики неокогнитрон показал и при добавлении хаотических шумов (рис. 6). Были распознаны правильно 94% образов. Ошибки возникали лишь в случаях заполнения хаотическими шумами более 20% всей рабочей области.
Данная модель неокогнитрона также позволяет распознавать образы, повернутые не более чем на 70 градусов от своего исходного положения (см. рис. 7). При повороте, неокогнитрон показал приемлемый процент распознаваемости равный 79%.
Одним из недостатков неокогнитрона является то, что он неправильно реагирует на образы, которые были получены путем наложения одного образа на другой. Как показано на рис. 8, при подаче образа, который был получен из образов цифр 2 и 5, нейронная сеть выдала ответ, обозначающий цифру 8.
Моделирование процессов обучения и распознавания на программной модели неокогнитрона показало перспективы распознавания образов в условиях различных видов помех. Она обусловлена особой структурой данного типа нейросетей, в определённой степени имитирующей работу зрительной системы человека. Неокогнитрон можно рассматривать как многоуровневую нейросетевую систему индуцирования знаний из обучающего множества графических данных, посредством выделения типовых признаков и их обобщения на последующих уровнях.
Обобщая результаты исследований процесса распознавания неокогнитроном образов, подверженных различного рода искажениям, отметим ряд его свойств, благодаря которым неокогнитрон превосходит другие нейросети, ориентированные на распознавание образов:
Дальнейшая работа будет направлена на исследование других типов архитектур неокогнитрона на основе разработанных программных моделей. Путём моделирования будут глубже изучены возможности неокогнитронных нейросетей, что позволит решать практические задачи в различных предметных областях: распознавание сигналов, идентификация графических изображений, управление с использованием средств визуального контроля за объектами.