Идеальный алгоритмический подход — механизм правил / дерево решений и некоторая логика обучения?

#artificial-intelligence #classification #rule-engine #bayesian #inference

#искусственный интеллект #классификация #механизм правил #байесовский #вывод

Вопрос:

Мое требование, вероятно, близко к тому, что можно ожидать от «Экспертной системы». И ищу простейшее решение, которое может дать мне вывод в реальном или почти реальном времени с некоторыми возможностями автономного (не в реальном времени) обучения.

Чтобы уточнить, моя проблема заключается в —

Просматривайте журнал, который обновляется в режиме реального времени, и классифицируйте каждую запись как красную, зеленую и синюю. Классификация на красный, зеленый, синий основана на логике, кодифицированной как производственные правила (как я себе это представляю сегодня).

Точка, в которой это становится сложным, заключается в —

1) Записи журнала, помеченные синим цветом, в конечном итоге должны быть помечены красным / зеленым, на основе последующих записей журнала, где мы надеемся получить более подробную информацию, так что нужно немного запомнить. Точная продолжительность ожидания заранее неизвестна, но есть максимальный предел. Конечно, в любой данный момент времени может быть несколько сотен тысяч записей, помеченных синим цветом.

2) Правила, определяющие красный и зеленый цвета, не идеальны, поэтому иногда случаются ошибки с маркировкой. Таким образом, случайный ручной аудит выявляет эти ошибки. Моя главная задача — посмотреть, смогу ли я автоматизировать некоторую часть обновления правил с минимальными затратами на программирование.

Мое (продолжающееся исследование) показывает, что механизм правил на основе алгоритма RETE может служить для моей классификации и маркировки, включая повторную маркировку. Если это сработает, мне все еще нужно выяснить, как автоматизировать часть «обучения на ошибках»? Можно ли использовать статистический подход — так называемую байесовскую классификацию? Кроме того, можно ли полностью использовать байесовскую классификацию в отличие от механизма правил для начальной классификации, т. е. я достаточно обучил систему вручную? Байесовский подход, похоже, «сводит на нет» задачу поддержания правильного набора правил с помощью подхода «доверять статистике», особенно с учетом периодических проверок вручную.

PS> Мое основное приложение написано на C (если это имеет значение).

Ответ №1:

Это звучит как сложная обработка событий (CEP), где у вас есть правила и возможность использовать вычисления времени, например, событие X происходит в течение 2 минут после события y.

На земле Java Drools Fusion (или Drools Expert) действительно хорошо справились бы с этим (хотя я предвзят). На земле C … ну, может быть, вы можете настроить drools-camel-server и взаимодействовать с ним через XML.

Комментарии:

1. Спасибо @geoffrey-de-smet. Когда-то сталкивался с CEP (особенно ESPER), но почему-то потерял этот след, мило с вашей стороны поднять этот вопрос. Пытаясь разобраться в Drools Fusion, я наткнулся на этот интересный пост и еще более интересный комментарий, в котором ESPER сравнивается с Drools-Fusion. Было бы интересно выяснить, каким образом оба могут дополнять друг друга. Это, безусловно, путь, который я хочу исследовать глубже. Еще раз спасибо.