All streams
Search
Write a publication
Pull to refresh
11
0
Сергей @sturex

User

Send message

Понятие структурной адаптации далеко не новое. Как сейчас её делают, анализировали?)

Вы говорите "основная сложность внедрения структурного восприятия в модели машинного обучения — это то, как сделать структуру гибкой".

Ответ, как мне кажется, уже содержится в вопросе - нужно использовать структурную адаптацию, а не параметрическую, как все (или не все?) делают.

Параметрическая адаптация означает, что подстраиваются числовые параметры модели, минимизируются различные ошибки и пр.

Структурная адаптация - означает, что модель не работает с символами (числами), а работает по принципу адаптивного пространственно-временного фильтра для входящих потоков данных, просто перенаправляя потоки в правильном направлении.

Как сделать подобную адаптацию - до конца не знаю)

В таблице, как мне представляется, описано поведение некоего "черного ящика" в серии из 4 наблюдений за ним. И нам надо собрать устройство, реализующее идентичную логику. Что-то мне подсказывает) но эта задача очень распространённая. Скорее, даже типовая, не ошибиться бы.. в ТАУ?

Как на "сетях структурных автоматов" построить модель черного ящика по серии наблюдений за ним?

Вы уже, разумеется, поняли) я далёк от автоматного программирования, да и дискретную математику порядком подзабыл, поэтому просто постараюсь нарисовать:

Автомат

Как собрать такой автомат на "сетях структурных автоматов"? Входящие узлы принимают булевские значения. Автомат должен быть с памятью, т.е. не просто комбинационная схема.

Правильно понимаю, что гарантированно "устаканится" на ожидаемый результат может лишь только в том случае, если в схеме нет рекуррентных связей?

Да-да, вот про "сетевую автоматную модель" и её поточный синтез расскажите, пожалуйста, подробнее)

@lws0954Существуют ли поточные алгоритмы синтеза структурных автоматов с памятью?

По моему мнению, основная проблема в том, что алгоритм расширения сети фиксированный.То есть, сеть всегда растёт дерерминированно и решает какую-то одну задачу (мы даже не знаем, какую). А задач может быть множество.

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

Как будем решать "множество задач"? Множество конкретных прикладных задач сеть будет решать, общаясь с внешним миром через соответствующие адаптеры. Например, вот код адаптера для детектора аномалий.

Другой вариант: ввести большое пространство параметров...

Я проектировал всё это таким образом, чтобы в базовой реализации уйти от числовых параметров. Было тяжело, числовые параметры преследовали на каждом шагу, от них действительно сложно избавиться.

Но я не настроен фанатично против параметров, скорее даже наоборот - числовые параметры потребуются, когда (например) надо будет ограничивать рост сети. Более того, я уже пробовал вводить затухание потока во времени, сопротивление при распространении потока, пороги возбуждения нейрона и т.п. Но это уже в рамках конкретных реализаций, не имеющих отношения к интерфейсам.

Было бы неплохо ввести обратную связь. Результат работы системы — рост сети. Нужно на этапе обучения на каждом шаге давать оценку «хорошо/плохо добавлен узел», и алгоритм должен перестраиваться так, чтобы больше получать оценок «хорошо».

Да. В заключении в статье есть слова про небольшой механизм "подстройки структуры по сигналам от внешней среды" - именно над этим работаю сейчас.

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

Спасибо, что находите время на анализ и комментарии.

Вы подняли правильный, но, боюсь, несколько преждевременный вопрос. Еще и технологии-то толком нет, а мы уже нагружаем её тяжестью. Давайте идти последовательно.

Сделал пару попыток разобраться в "биморфе" по его описанию для чайников - не вышло. Заглянув в его код, убедился окончательно, что это невозможно.

На каждый такт добавляется только один новый нейрон, на него прокидываются связи от прочих нейронов сети. Связи, при этом, создаются не "каждый с каждым", а довольно сильно разреженные. Степень "разреженности" никак не регулируется, а задаётся естественным образом, т.е. регулируется самим потоком данных. Максимальное число связей в зависимости от числа нейронов в сети n·n.

Думаю, ваш вопрос в следующем (поправьте). Вы бы хотели, чтобы был естественный (некостыльный) механизм ограничения роста сети, если на сеть приходит знакомый поток? Сейчас экспериментирую с сетью в режиме reinforcement learning. И - да, очень логично не заставлять сеть разрастаться, если текущая структура уже справляется с задачей.

8 конечных элементов вы нашли как 2 (число состояний нейрона) в третьей степени (число рецепторов). Так можно рассчитать количество нейронов без учета времени.

Сеть же оперирует паттернами во времени, создавая причинно-следственные связи с паттернами из предыдущих тактов. В создаваемой структуре записывается поток (последовательность) состояний от "трёх бинарных рецепторов", а не, например, Бинарная диаграмма решений, хотя внешне на это похоже.

Да, разумеется, это детектор аномалий, multivariate из коробки. Клонируйте этот репозиторий, поиграйте в OutlierDetectionPlayground, а также OutlierDetectionSample, все сомнения пропадут.

"Аномальность", действительно, бывает сложно найти невооруженным глазом на многоканальных данных. Как подтвердить? Постепенно наращивая сложность входящих данных, экспериментируя. На выходе детектора безразмерная величина, от 0 до 1, чем выше, тем "аномальнее" поток на входе.

Нашёл вот это описание, сложное для быстрого понимания. Да, пересечение по ключевым словам есть. Спасибо вам.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Project Manager
Java