Как стать автором
Обновить

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

Честно говоря, ничего не понятно

Весь текст про какой-то конкретный метод. Но непонятно какой. Постановка задачи смешана с датасетами и реализацией. Это всё нужно только после того, как стало понятно о чём идёт речь. Есть только ссылка на диссертацию в конце статьи. Вы меня, конечно, извините, но её никто читать не будет. Можно было хотя бы в общих чертах описать в чём заключается метод. Из обрывков информации понятно только что чем-то похоже на деревья решений и есть марковские цепи.

Вот честно, я сперва бы хотел узнать в чём состоит метод и как он работает (хотя бы поверхностно), посмотрел бы на результаты в сравнении с другими методами. И если это меня удовлетворяет, я бы уже начал читать про реализацию. А тут ссылка на сам метод в конце статьи, сравнения с другими методами не приведено (сказано что нейронные сети тоже достигают 100% точности, может тогда и задача слабовата?). Да и будь я грибником, 50 правил это многовато)

Понятно желание рассказать про плод своей работы. Но это тоже нужно делать правильно. Иначе это не будет нужно никому.
Спасибо за комментарий. Попробую объяснить. Начну со целей, планов и закончу реализацией.
1) Аудитория — программисты. Грузить их цепями Маркова и продвинутыми разделами комбинаторики не хотелось. Хочется составить план, следуя которому они смогут воспроизвести эксперименты и убедятся, что все работает.
2) План — переход от конкретики к деталям (по мере заинтересованности). Эта статья — вторая в серии. Первая (ссылка имеется в самом начале) — для людей, которые хотят все потрогать руками, но лезть в программирование не хочется. Вторая — для программистов, которые предпочтут приспособить библиотеку для своих нужд (и других массивов). Третья (когда будет готова) расскажет об алгоритмических следствиях математических теорем.
3) Реализация — описание реального запуска библиотеки на двух совсем разноплановых массивах данных.
Предлагается попробовать. Данные берутся из стандартного репозитория UCI. Кодирование описано (а кодирование грибов можно придумать и свое собственное). Исходники выложены на bitbucket (и, надеюсь, будут скоро выложены на savannah.nongnu.org).
Прошу прощения, я попутал: это первая статья серии, вторая — здесь
Теперь отвечу по конкретным замечаниям:
1) Есть мои видеолекции для студентов (ссылка приведена в первой части работы). Диссертация — скорее знак того, что под этим лежит наука (с доказательтвами теорем и оценками параметров).
2) Сравнение с другими методами предполагает метрики. Если брать количественные (особенно, в областях с внутренними симметриями), боюсь, лучше сверточных сетей никто ничего не придумает. Аппроксиматоры будут лучше всех, они на это и нацелены! Если же ограничиться объясняемым ИИ Matt Turek. Explainable Artificial Intelligence (XAI), то все методы окажутся переборными (или вероятностными). Но, например, по вероятностным методам индуктивного логического программирования (ИЛП) за последние 5 лет нет ни одной работы в arXiv.org! Хотя наблюдается возврат интереса к классическому ИЛП: для JICAI2020 заказан большой обзорный доклад (черновой вариант можно найти на arXiv.org).
3) Метод является вероятностным расширением Анализа формальных понятий
Sébastien Ferré, Marianne Huchard, Mehdi Kaytoue, Sergei O. Kuznetsov, Amedeo Napoli.
Formal Concept Analysis: From Knowledge Discovery to Knowledge Processing // Marquis
P., Papini O., Prade H. (eds) A Guided Tour of Artificial Intelligence Research. Vol. 2,
Springer, Cham, 2020, p. 411-445
Автор делал доклад на международном семинаре FCA4AI (проходившем в рамках JICAI2019 в Макао).
Наконец, затрону совсем частные вопросы:
1) С деревьями решений есть только два сходства: символьное представление гипотез о причинах и использование энтропийных принципов для дискретизании непрерывных признаков. Зато нет проблемы учета порядка появления признаков (во множестве все признаки равноправны!).
2) Я довольно часто сталкивался в своих демонстрациях с ситуацией, когда 50 правил для грибника хватало. Можно ли их уменьшить? Наверняка можно, но я этим не занимался. Так как проверятся включение одного подмножества признаков (фрагмента гипотезы о причине) в другое множество признаков (описание тестового примера), то запрограммировать жадный алгоритм минимизации числа гипотез (накрытие) легко. Но никто не может гарантировать, что будет получен глобальный минимум. А делать экспоненциальный алгоритм остовного дерева ради частной задачи не хочется совершенно.
3) Я использовал наивный подход к описанию грибов. Eсли привлечь знания из микологии, то, скорее всего, результаты будут улучшены. В обсуждаемой статье описано, как построить свое собственное кодирование, которое потом подсовывается универсальной машине обучения. Если есть интерес, вперед!
4) Еще более интересны эксперименты к непрерывными признаками (у меня качество вин). Я только недавно придумал, как с ними работать, но в любом случае машина обучения не изменяется.

Пришел сюда со второй статьи "серии". Возникло ощущение что не будет лишним найти автора IRL и удостовериться что ему не нужна медицинская помощь.

В общем, нормально написано, но конкретные детали для того, чтобы это реально пошло — не увидел.
Интерфейс библиотеки должен быть приближен к обычным данным, т. е. брать на вход обычную матрицу данных (pandas-стандарт) и давать по ней результат (какие колонки-значения-диапазоны дают правильную конъюнкцию). все остальное — не важно.
Но это только часть дела. Как аналитик я не пойму почему такие сложности дают лишь массив конъюнкций. Чтобы это и впрямь было интересно, библиотека должна определять оптимальную формулу-дерево для детектирования любой группы. как по мне я не вижу в этом особых сложностей, а оптимальная формула группы с наперед заданной точностью — это то, что нужно. Возможно я это пропустил и это реализовано, но без этого Ваша разработка годится только для ограниченного применения.
Спасибо, Вы правы. Но Вы должны учитывать, что я един в двух лицах: и математик, разрабатывающий и исследующий алгоритмы, и программист, реализующий их в библиотеке. Надеюсь, что мои студенты присоединятся к программированию, для них Ваше замечание про Pandas будет полезно.
Вы правильно указали на следующий теоретический шаг: нужно одностадийный процесс нахождения причинно-следственных зависимостей уложить в (необязательно древовидную) систему представления знаний. Для Анализа Формальных Понятий этим занимались в Техническом Университете Дрездена (у проф. Бернарда Гантера и проф. Франца Баадера) с помощью логик описания (description logics). Но Бернарда пару лет назад отправили на пенсию. Я сам планирую двигаться в этом направлении.
Что касается сложности — это, к сожалению, неизбежно: мы используем или вероятностные алгоритмы (для которых я кое-что умею доказывать) или жадные алгоритмы (как в обучении деревьям решений, например). Но во втором случае мы получим неоптимальность, неустойчивость относительно расширения выборки и переобучение. Комитетное обучение (как пример, случайный лес) — попытка справиться с этими проблемами, но цена — потеря объяснямости. Более того, тут опять вылезают вероятностные алгоритмы.
Тоже работаю за команду. Если у Вас есть промежуточный результат в виде множества конъюнкий, построить по ним по формулу не представляется особо сложной задачей. Студентам-головастикам вполне под силу. Хотя я зашел бы с другой стороны — кластерного анализа. Там сложностей меньше, и сразу понятно, где конъюкции, где дизъюнкции и как именно дробить диапазоны. Надо будет подумать, не сделать ли самому)

Посмотрите на работу Lars Lumpe and Stefan Schmidt
"Patterns via Clustering as a Data Mining Tool". Это доклад на семинаре 8th Workshop FCA4AI, сделаннный на конференции ECAI-2020.
Труды семинара можно скачать с https://fca4ai.hse.ru/2020/
В этом докладе рассказывалось о применении кластерного анализа для дробления интервалов. Самое замечательное, что немцы тоже анализировали массив Wine Quality. Их результаты, кстати, хорошо согласованы с итогами применения системы, описанной во втором моем тексте о CPython библиотеке.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории