№94 Начальная схема кластера и выделение совпадений в ИНС Б2

Posted by neurocod on Май 1, 2009

От выделения совпадений уровня Б2 – сравнительно недалеко до выделения классификаций.
Предыдущие статьи: http://neurocod.net/blog/tag/выделение-совпадений/
Для примеров будут применяться упрощения: в большинстве случаев, в каждый такт запоминания
будет активен только один образ, подлежащий запоминанию (текстовая ИНС). Для иллюстрации последовательностей цепочек памяти будут использоваться строки. Звездочкой будут обозначаться любые несущественные образы в последовательности.
Требования:
- Выделение совпадений с разрывами в цепочках. Пример – А***Б
- Длина разрывов в разных цепочках может отличаться. Пример – А*Б и А***Б
- Возможность нахождения преобразований одной последовательности в другую. Пример – А*Б*В и В*Б*А.

Начальный поиск цепочек для выделения будет осуществляться нечетким распознаванием: «№91 Нечеткое распознавание и поиск в ИНС Б2» ( http://neurocod.net/blog/2009/05/2009/04/№91-нечеткое-распознавание-и-поиск-в-ин ). После выбора двух цепочек, по ним пускается активация.
Разрывы различной длинны будут означать, что на участки воспоминания, содержащие одинаковые элементы, активация может приходить в разные такты, не синхронно. Простая схема прозвонки не подходит. Например, как в Б1, с синхронно сдвигающимися позициями, где обрабатываются только общие элементы этих двух позиций.
Можно, как было описано в «№42 Методы привнесения нечеткости в нисходящие и восходящие нейронные цепочки» ( http://neurocod.net/blog/2009/05/2008/08/№42-методы-привнесения-нечеткости-в-ни ), использовать перескакивание сигналов по связям. Вместо опережающих сигналов, я выбрал схему с прохождением недостаточного сигнала и запаздывающим распознаванием пройденных кластеров. Сигналы идут по цепочке
последовательно и без перескоков. Некоторая позиция с общими элементами одним из сигналов может быть пройдена. Выделение произойдет, когда сигнал второй цепочки наконец дойдет до позиции с элементами, общими с той пройденной позицией на первой цепочке. Чтобы пройденная позиция оказалась выделенной, на кластере должна сохраниться активация.


Рис. 94-1 Выделение совпадения с несинхронным прохождением общих элементов

На каких нейронах кластера хранить эту активацию? Вначале возникает желание продумать как можно более экономичную и простую схему. В одной из таких схем, активация будет храниться на том же нейроне, по которому проходил основной синхронизирующий сигнал по цепочке. Но тогда нужно, чтобы на пройденных нейронах эта активация была недостаточной для отправки сигнала вперед по цепочке, иначе синхронизирующих сигналов в этом режиме станет больше двух, и весь алгоритм собьется.
Я выбрал другую схему, немного более накладную в плане ресурсов памяти, но с более явной специализацией нейронов, и более похожую на ИНС Б1. Пришло время рассмотреть строение кластера ИНС Б2 подробнее.

  1. //ИНС Б2:
  2. кластер КластерПамяти
  3. {
  4.         //________________________________________
  5.         //"верхний" уровень, связь с более общими образами
  6.         //вход:
  7.         nExp,   //Expectation – получение сигнала прогнозирования
  8.                 //с кластеров, не относящихся к данной цепочке
  9.         //выход:
  10.         nOut,   //Out – отправка сигнала к вышестоящим образам
  11.  
  12.         //________________________________________
  13.         //средний уровень, связь с той же цепочкой
  14.         //вход:
  15.         nEn,    //Enable – сигнал разрешения с предыдущего кластера цепочки
  16.         //выход:
  17.         nFwd,   //Forward – распространение сигнала вперед по цепочке памяти
  18.        
  19.         //________________________________________
  20.         //"нижний" уровень признаков:
  21.         //вход:
  22.         nIn,    //In – распознавание признаков
  23.         //выход:
  24.         nDown,  //Down – активация признаков
  25. }

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

В режиме выделения совпадений, синхронизирующий сигнал в Б2 передается по нейронам контура nFwd. В ИНС Б1 распространению вперед соответствовал контур down. В Б2 за отправку к признакам отвечает отдельный контур nDown, который не исполняет никаких других функций. Точно также, nFwd распространяет сигнал только вперед по цепочке, и более никуда. Такая более глубокая специализация нейронов становится естественной при использовании управления по виртуальным внутрикластерным связям. (Также, теперь все нейронные контуры называются с префиксом «n»). После прохождения синхронизирующего сигнала, активация сохраняется на нейроне nEn. Этот нейрон используется и при обычном распознавании признаков во время запоминания, и при выделении совпадений. Схожесть функций в этих двух режимах и подтолкнула к тому, чтобы использовать для хранения в режиме выделения совпадения nEn, а не nFwd.

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

Где хранить информацию для определения момента, когда нужно снять активацию с nEn? Можно использовать целочисленный счетчик, и тогда такие вычисления будут происходить быстро. Но этот счетчик придется либо встраивать во все нейроны, что приведет к дополнительному расходу памяти (так как в других нейронах он может быть не нужен), либо встраивать счетчик в объект кластера, что в случае реализации нейронов в НЛ 3.0 потребует дополнительного перехода по памяти с нейрона к данным кластера (либо наоборот – с кластера на нейрон). Можно представить схемы, в которых нейроны будут монолитно встроены к кластер, в качестве полей объекта кластера, и тогда дополнительных расходов в оптимизированной версии не будет, так как все смещения известны заранее. Но тогда придется усложнять – ведь требуется создавать кластеры разных типов, использовать другие итераторы нейронов и т. д. Для научно-исследовательской работы лучше использовать более универсальную схему, как в НЛ 3.0. А для промышленных реализаций монолитные схемы лучше еще и по той причине, что позволяют экономить память – в каждом нейроне не нужны указатели на предыдущий и следующий нейроны, можно сделать общим поле цикла создания, и т. д.

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

P. S. Насколько отличаются режимы выделения совпадений в Б1 и Б2? Уже исходя из требований – значительно. Больше кластер, более сложный и навороченный алгоритм прохождения, больше ресурсов… Оба режима ритмичны, поэтому каждому алгоритму можно поставить в соответствие песню Slayer (начало песни):
Б1:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Б2:

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Last modified on Май 1, 2009

Filed under: записи с метками Теги/метки: , , , , No Comments »

« | Home | »

Leave a Reply

You must be logged in to post a comment.