Распознавание устойчивых паттернов в последовательностях
Алексей Тарасов @AtarЦель эксперимента
Эксперимент с последовательностями. Задача найти в последовательности устойчивые паттерны.
Датасет
Последовательность сгенерируем из набора целевых паттернов, в промежутках заполненных случайными символами из общего с паттернами алфавита.
Примеры паттернов: 'TEST', 'HELLO', 'DOLLY'
"__TEST_______DOLLY___DOLLY__________HELLO________TEST_____________HELLO_______________DOLLY____TEST__HELLO____________HELLO___DOLLY________________________DOLLY____________________HELLO_______________"
Итоговая входная последовательность для юнита:
XBTESTLZPZKDKDOLLYOTSDOLLYRDNGFMKWXXHELLOPGJVAEKYTESTTKDYFFMHRXTJDHELLOWUSEHYMVFKWAUNWDOLLYNRTYTESTQXHELLOVBBGCNVGUCDZHELLONDYDOLLYOENUQNIUDHFAJFSVCXPJJRYWDOLLYFUIYGYXXQPGVANPXKSZXHELLOVCVBWYLJQSICUBI
Конфигурация нейросхем
Задействуется только один юнит (ака колонка в коре). На вход юнита подаётся код, соответствующий подпоследовательности символов, выбранных плавающим окном в 8 символов.
[XBTESTLZ]PZKDKDOLLYO...
Каждый символ последовательности перед тем как попасть на вход юнита кодируется в случайное высокоразреженное распределённое представление (SDR). Один и тот же символ в разных позициях окна кодируется уникальным кодом.
Результат
Юнит успешно находит все паттерны, формируя кластеры/ключи, нацеливающиеся на эти паттерны в разных положениях внутри окна: "___DOLLY", "HELLO___", "_HELLO__", "___TEST_" и т.д.