НЕОКОГНИТРОН (перевод главы)

Lauren Fausett.
Fundamentals of Neural Networks: Architectures, Algorithms and Applications.

В этой статье описывается модель неокогнитрона, ориентированная на распознавание рукописных символов – арабских цифр от 0 до 9.

Неокогнитрон является примером иерархической сети, в которой много слоев с очень редкими связями между ними. Это расширение более ранней сети под названием когнитрон. Когнитрон – самообучаемая сеть; неокогнитрон обучается с помощью контролируемого (supervised) обучения.

Неокогнитрон предназначен для распознавания символов, написанных от руки – конкретно, арабских цифр от 0 до 9. Структура сети основана на физиологической модели зрительной системы. Элементы и описания, представленные в этой статье, основаны на статьях Fukushima, Miyake и Ito, которые были включены в два сборника важнейших статей по нейронным сетям [Anderson & Rosenfeld, 1988; Vemuri, 1988]. Дальнейшие варианты неокогнитрона отличаются лишь несколькими изменениями в архитектуре и обучающими шаблонами.

Архитектура неокогнитрона состоит из нескольких слоев, каждый из которых состоит из отдельных элементов. Элемент в каждом слое определяется своим номером в квадратных матрицах, в различных слоях размерности матриц различны. Элемент одного слоя получает сигналы от очень ограниченного числа элементов предыдущего слоя и отправляет сигналы только нескольким элементам следующего слоя. Входными данными являются 361 дискретный элемент, которые располагаются в матрице 19х19. Первый слой содержит 12 матриц, каждая из них имеет размерность 19х19. Основной особенностью является то, что размерность матриц уменьшается при перемещении от входного к выходному слою сети.

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

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

Обучение происходит от слоя к слою. Веса от входных элементов к первому слою обучаются и затем замораживаются. После этого регулируются следующие веса и т.д.


Архитектура

Архитектура неокогнитрона состоит из девяти слоев. После входного слоя идут 4 пары слоев. Первый слой в каждой паре содержит S ячейки, второй слой C ячейки. Мы будем обозначать слои так: Input, S1, C1, S2, C2, S3, C3, S4, C4. Слой C4 является выходным.

Элементы в каждом слое расположены в нескольких квадратных матрицах (см. таблицу).

Слой Кол-во матриц Размерность матриц
Входной 1 19x19
S1 12 19x19
C1 8 11x11
S2 38 11x11
C2 22 7x7
S3 32 7x7
C3 30 7x7
S4 16 3x3
C4 10 1x1

Рисунок 1 показывает архитектуру неокогнитрона. Мы будем обозначать первую матрицу в первом S слое как S11, а вторую матрицу в первом S слое - S12. и.т.п.


Архитектура неокогнитрона
Рисунок 1 – Архитектура неокогнитрона

Каждая матрица S2 слоя получает данные ото всех матриц C1 слоя; то есть каждый элемент в матрице S2 получает сигналы от какой-то части каждой матрицы C1 в предыдущем слое.

Подобным образом каждая S3 матрица получает сигналы ото всех матриц С2 и каждая S4 матрица получает сигналы ото всех матриц C3. Однако, как было сказано, матрица в С1-слое получает сигналы только от одного, или как максимум от нескольких матриц S1. Далее представлены связи между матрицами S1 и С1:

СОЕДИНЕНИЕ ОТ S1 К C1
S11         -> C11
S12, S13    -> C12
S14         -> C13
S15, S16    -> C14
S17         -> C15
S18, S19    -> C16
S110        -> C17
S111, S112   -> C18


Смысл таких соединений станет понятнее, если мы рассмотрим, как происходит настройка весов от входного слоя к слою S1. Матрица S11 обучается на распознавание небольших отрезков как показано на рисунке 2. Матрицы S12 и S13 распознают отрезки приблизительно под 22-градуса от горизонтали. Матрица С12 служит для комбинирования результатов от этих двух матриц. В подобной манере, S15 и S16 распознают различные формы отрезков между диагональю и вертикалью их сигналы комбинируются в отдельной матрице С1 слоя.


Обучающие шаблоны 1-го слоя
Рисунок 2 – Обучающие шаблоны 1-го слоя

Далее представлены связи между слоями S2 и С2. Они основаны, на тех же рассуждениях.

СОЕДИНЕНИЕ ОТ S2 К C2
S21, S22, S23      -> C21
S22, S23, S24      -> C22
S25                -> C23
S26, S27, S28      -> C24
S27, S28, S29      -> C25
S210               -> C26
S211, S212         -> C27
S213, S214         -> C28
S215, S216         -> C29
S217, S218         -> C210
S219               -> C211
S220, S221         -> C212
S222, S223, S224   -> C213
S225               -> C214
S226               -> C215
S227, S228, S229   -> C216
S230, S231         -> C217
S232               -> C218
S233               -> C219
S234               -> C220
S235, S236         -> C221
S237, S238         -> C222


При соединении S3 и С3 слое происходит только два комбинирования. Сигналы матриц S323 и S324 комбинируются в матрице С323 , и сигналы S330 и S331 комбинируются в матрице С329. Все остальные матрицы слоя C3 получают сигналы только от одной матрицы слоя S3.

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

СОЕДИНЕНИЕ ОТ S4 К C4
S41, S42     -> C41
S43, S44     -> C42
S45          -> C43
S46, S47     -> C44
S48, S49     -> C45
S410         -> C46
S411, S412   -> C47
S413         -> C48
S414         -> C49
S415, S416   -> C410


Теперь мы рассмотрим восприимчивую область для одной матрицы из каждого слоя нейросети. Элемент каждой матрицы из S1 слоя «видит» часть 3х3 входного слоя, то есть элемент S1i,j получает сигналы от элементов входной матрицы Ui,j, Ui,j-1, Ui,j+1, …., Ui-1,j-1,……, Ui+1,j+1 и элемент S2i,j, получает сигналы от этих же девяти элементов.

Элемент матрицы C1 «видит» часть 5х5 одной или двух матриц из слоя S1. Элементы в углах матрицы «видят» только часть региона, который они могли бы «видеть» если бы находились в центре матрицы, потому что часть их «поля зрения» выходит за границы матриц, от которых они получают сигналы. «Сжимание» происходит потому что размерность каждой матрицы из слоя С1 меньше чем размерность матрицы S1. «Поле зрения» элемента матрицы С1 показано на рисунке 3. Т.к. размерность матрицы слоя С1 меньше, то угловые элементы матрицы С1 получают сигналы только от 4 элементов матрицы S1.


Область видимости C1 нейрона
Рисунок 3 – Область видимости C1 нейрона

Более удобно сократить информацию на рисунке 3 и посмотреть лишь соединения одной строки (столбца) каждой матрицы. Это показано на рисунке 4.


Область видимости C1 нейрона (диаграмма-срез)
Рисунок 4 – Область видимости C1 нейрона (диаграмма-срез)

На втором уровне, каждый элемент матрицы S2 «видит» регион размерностью 3х3 каждой из восьми матриц С1. Размерности матриц в слоях S2 и С1 совпадают поэтому «сжимание» на этом уровне не происходит. Только угловые элементы не получают сигналы от девяти элементов С1 (каждой из 8 матриц), они получают сигналы от 4 элементов матриц С1. Одномерная диаграмма представлена на рисунке 5.


Область видимости S2 нейрона (диаграмма-срез)
Рисунок 5 – Область видимости S2 нейрона (диаграмма-срез)

Элементы матриц слоя С2 «видят» регион размерностью 5х5 матрицы (или матриц) слоя S2 от которой они получают сигнал. «Поле зрения» элементов матрицы С2 представлено на рисунке 6, для демонстрации процесса «сжимания», который подобен уже описанному. И вновь одномерная диаграмма на рисунке 7 оканчивает описание.


Область видимости C2 нейрона
Рисунок 6 – Область видимости C2 нейрона


Область видимости C2 нейрона (диаграмма-срез)
Рисунок 7 – Область видимости C2 нейрона (диаграмма-срез)

Каждый элемент матрицы слоя S3 «видит» регион размерностью 3х3 каждой из 22 матриц слоя С2; «сжимание» не происходит. Каждый элемент матрицы С3 «видит» регионы размерностью 3х3 матриц слоя S3 к которым он подключен. Т.к. матрицы С3 и матрицы S3 имеют одинаковую размерность (7х7), то «сжимание» вновь не происходит. Элемент матрицы С3 с координатами i,j «видит» регионы в матрицах S3, центры которых находятся в координатах i, j, в дополнительной диаграмме нет необходимости.

Каждый элемент матрицы S4 слоя «видит» регион размерностью 5х5 каждой из 30 матриц слоя С3. «Поле зрения» матриц слоя S4 показано на рисунке 8. Отметьте, что снижение кол-ва элементов скорее имеет место между 3 и 4 уровнями, чем в пределах какого-либо уровня, как было ранее. Также можно заметить, что вместо пропуска элементов, элементы в углах теперь обрабатываются по-другому (не учитываются).


Область видимости S4 нейрона
Рисунок 8 – Область видимости S4 нейрона

Единственный элемент матрицы С4 «видит» полные матрицы S4 (3x3) с которыми он связан.

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


Общая диаграмма соединений
Рисунок 9 – Общая диаграмма соединений