Дерзко начну:
Математика не подвела искусственный интеллект. Искусственный интеллект подвёл саму математику, отказываясь учитывать важнейшие математические концепции, имеющие прямое отношение к интеллектуальным системам: теорию категорий, топологию, дифференциальную геометрию и структурные связи между ними.
Это важно подчеркнуть, поскольку именно сейчас идея катего́рного подхода стала популярным инструментом для того, чтобы казаться глубокими мыслителями, аккуратно нарисовать стрелочки и забыть о важнейших аспектах, делающих разработку интеллектуальной системы сложной задачей: времени, памяти, истории и самих путях решения.
Итак, если вам интересно, почему ваша система машинного обучения демонстрирует разное поведение в среду, хотя формально никаких изменений не произошло, продолжайте чтение. Мы раскроем истинную природу проблемы. И дело тут совсем не в случайных багах. Это фундаментальное ограничение архитектуры, которое гораздо глубже, чем принято считать.
По сути, теория категорий привносит дисциплину.
Объекты: состояния, пространства, типы
Моризмы: преобразования
Композиция: способы объединения преобразований
Идентичность: точное определение понятия "ничего не менять"
Это крайне важно, поскольку без такой дисциплины любая сложная система неизбежно приходит в хаос. Категория запрещает волшебное сцепление разнородных элементов, навязывая необходимость прозрачных интерфейсов и исключая возможность нарушения когерентности.
Но давайте поймём точно, что такое категория: это не философская концепция, а формализованная дисциплина. Суть вопроса, который решает теория категорий, невероятно проста: когда элементы можно совместить и что случится, если вы это сделаете?
Отсюда вытекает важный принцип: категория — это грамматика, а не литературное произведение. Сами по себе знания грамматики не сделают вас мудрее, но без неё невозможно выстроить стройную речь.
Читателям, незнакомым с формализмом, не стоит беспокоиться. Главное — понять, что центральным вопросом теории категорий является простое: когда элементы можно собрать вместе и что произойдёт после их совмещения? Всё остальное — детализация вокруг этого базового принципа.
Большая часть исследований ограничиваются категорией множества (Set):
Объекты = множества
Моризммы = общие функции
Композиция = простая композиция функций
Такой подход совершён нелегкое преступление против теории категорий. Ведь функции амнезичны. Функция не хранит:
как вы добрались до конкретного входа
что случилось до этого момента
какую траекторию вы преодолели
Функция работает как таблица в Excel: f(x)=y. Безконтекстное отображение входа на выход. Здесь нет памяти, нет пути, нет переживаний.
Однако системы искусственного интеллекта состоят из накопленного опыта. Всякий токен привязан к своему контексту. Деятельность агента обусловлена порядком действий. Любая натренированная модель сохраняет признаки своего пути обучения.
Таким образом, когда кто-то заявляет, что система подчиняется категориям, зачастую подразумевается следующее: "Мы просто собираем совокупность функционально независимых карт."
Заявлять, что такая грубая компиляция функционалов является настоящим применением категорий, значит заниматься самообманом.
Узнали о подводных камнях современных моделей искусственного интеллекта? Теперь пришло время убедиться в этом собственными глазами.
Если хотите лично проверить, где и как модели сбоят или что они фильтруют, удобнее всего делать это в платформе BotHub.
Всё это - без VPN и с удобной оплатой российскими картами.
Здесь большинство исследователей сходится в тупик, ибо редко кто решается обсудить понятие ядра. А между тем ядро играет ключевую роль в математике:
Ядро — это пространство различий, которые внешне никак не проявляются. В строгих терминах, при заданном отображении p : A → B, ядро состоит из всех элементов в A, которые сокращаются до нуля в B.
Что скрывается в ядре? Пространства возможных отклонений, скрытые от внимания наблюдателя. Поскольку современные системы искусственного интеллекта заполнены областями ядра, здесь и гнездятся непредвиденные последствия.
Ведь каждая система ИИ построена на ядрах:
Внутренние состояния отличаются друг от друга
Исторические события идут разными путями
Процессы обучения меняют направление движения системы
При этом выводы системы выглядят одинаково.
Возьмите два примера: две нейронные сети обрабатывают естественный язык. Их показатели качества равны, но внутреннее устройство радикально различается. Система, столкнувшаяся с вредоносным контентом на начальном этапе, существенно отличается от чистой сети. Хотя они оба получили оценку в вашем бенчмарке, скажем, 94,2%, их реакция на незапланированные ситуации будет отличаться. Один останется устойчивым, второй начнёт давать неверные прогнозы, третий рискует выйти из строя.
Эта разница проявляется в ядре вашей системы оценки. Ваша архитектура не распознаёт собственное ядро, а значит, не понимает, чего именно она не видит.
Выяснить это проще, взглянув на визуализацию.
Три модели показывают одинаковые результаты в бенчмаркинге: 94,2%. Экран монитора отображает три идентичные точки. Однако за этими результатами скрываются совершенно разные сценарии эволюции моделей. Одна стабильно прошла чистый путь обучения, другая подверглась загрязнению и сохранила деформацию, третья вот-вот достигнет катастрофы. Бенчмарк представляет собой квоту: объединяет обширное пространство возможностей в одном числе. Ядро отображения — это всё, что бенчмарк не способен различить. Именно здесь затаились потенциальные проблемы. Механизм квоты прячет ядро, но практика выявляет его воздействие.
Теперь перейдем к главной причине: композиции функций уничтожают воспоминания о пути. Реальность же помнить пути обязана.
Рассмотрим композицию двух функций f : A → B и g : B → C, приводящую к итоговой функции g ∘ f : A → C. Мы получаем связь от A к C, но теряем важную деталь: пройденный путь через промежуточное состояние B.
В плоских пространствах это неважно. Все маршруты между двумя точками эквивалентны. Однако пространства состояний в системах ИИ далеко не плоские. Они обладают искривлениями, а искривленность порождает явление холономии: эффект, при котором выбор маршрута меняет конечный результат, даже если точка назначения совпадает.
Чтобы продемонстрировать этот феномен сильнее, представьте сферу и вектор, направленный из Северного полюса в сторону Лондона. Двигаясь вдоль поверхности сферы к Лондону, сохраняйте вектор параллельным направлению вашего перемещения. Затем двигайтесь по экватору к Токио, удерживая вектор параллельно маршруту. Вернувшись обратно к Северному полюсу, вы обнаружите неожиданный поворот вектора на угол около 90 градусов.
Сам путь вызвал изменение ориентации вектора. Геометрическая форма сферы породила сдвиг, которого простая функциональная схема не сможет уловить.
Холономия присутствует повсеместно в системах искусственного интеллекта. Например, две стратегии тонкой настройки приводят к одной и той же настройке весов, но их внутренние свойства сильно отличаются. Выбор пути оставляет следы, которые ваше чисто функциональное проектирование не способно зафиксировать.
Следуйте маршрутом вектора по сфере. Сам вектор остаётся неизменным на протяжении всей дороги, но при возвращении в точку старта оказывается повернутым примерно на 90 градусов относительно начальной ориентации. Геометрии достаточно, чтобы вызвать это изменение. Два разных пути обучения могут привести к одинаковым параметрам модели, но внутренняя геометрия будет различной, создавая отличные условия отказа и непредсказуемость реакций на нестандартные случаи.
Современные архитектуры искусственного интеллекта напоминают диаграммы потоков: направленные ациклические графы (DAG).
Узлы соответствуют моделям, агентам или этапам обработки данных
Ребра обозначают движение данных
Весь график выполняется последовательно
Такое представление выглядит похоже на категорию. Можно прикрыть глаза и увидеть знакомые фигуры — объекты и стрелки. Возможно, оно удовлетворяет аксиомы теории категорий.
Однако оно ничего не выражает о динамических процессах.
Диаграмма потока:
Не фиксирует порядок прохождения этапов, только факт перехода
Не учитывает накопленные погрешности по мере продвижения
Хранит лишь тот объем памяти, который передается явно
Игнорирует возможные вариации результатов при изменении маршрута
Невольно пропускает наличие собственного ядра: невидимые внутренние различия, отсутствующие в выходной картине!
Наглядный пример: два агента выполняют переговоры, предлагая решение проблемы. Агент A выдвигает предложение, агент B критикует, агент A перерабатывает свою идею.
Теперь поменяйте порядок: пусть первым выступает агент B!
То же самое сочетание операторов, та же самая композиция — разные итоги переговоров. Логика графа подсказывает, что обе схемы эквивалентны. Жизнь смеётся над такими выводами.
Почему? Потому что взаимодействие разворачивалось в особенном порядке, оставляя внутренний след, который обычная диаграмма не фиксирует. Граф представления — плоский аналог реального мира.
Задача не связана исключительно с системами искусственного интеллекта. Это культурная болезнь вычислительных технологий.
Даже легендарный язык программирования Haskell совершает ошибку, схожую с заблуждением ИИ-исследователей. Заявляя о своём превосходстве благодаря строгой типуализации, чистым функциям и монадам, Haskell попадает в ту же ловушку.
Формально считается, что Haskell реализует категорию типов и функций (Hask), фактически являющуюся множеством (Set) с улучшенной маркетинговой подачей.
Использование монад, якобы позволяющих управлять действиями, не спасает положение. Монада выстраивает линейную цепь вычислений:
действие1 >>=\x -> действие2 >>=\y -> действие3
Путешествие проходит, но отсутствие собственной геометрии мешает ей отразить реальную картину происходящего. Повторный запуск идентичного монадного сценария даёт одинаковые результаты. Основная цель референциальной прозрачности заключается именно в повторимости.
Что функциональное программирование не может выразить:
Две разные операции, которые теоретически должны быть эквивалентны, но ими не являются (эффект холономии)
Возвращение к началу цикла, которое неожиданно отправляет вас в другое место (явление криволинейности)
Операции, зависящие от способа достижения цели, а не от самого результата (путь-зависимость)
Ядром функционирования: насколько большие внутренние различия создают видимость одинаковых выводов
Вся идеология функционального программирования сформирована на единственной плоскости: категория множества (Set). Даже самые продвинутые конструкции — монады, функторы, аппликативы — всего лишь пытаются перегруппировать мебель в комнате без окон.
Программисты считают, что работают с категорическим программированием. На самом деле это обычный подход, связанный с функцией, облачённый в наряд категорий.
Вот горькая правда: современная теория категорий уже давно располагает всеми необходимыми механизмами для описания указанных феноменов:
обогащённые категории: морфизмы несут дополнительную структуру (стоимость, время, вероятность, расстояние)
высшие категории: многообразие уровней морфизмов, отражающее трансформации высшего уровня
бесконечные категории: иерархия бесконечно высоких степеней морфизма, отслеживающая пути, гомотопии и петли
расслоённые категории: организованное управление семействами структур с параметрами
пучки и спуск: локальное поведение, ограниченное глобальными условиями согласованности
расширения Канна: метод расширения функторов по пути
Эти механизмы чувствительны к учету пути. Явление холономии изучено здесь глубоко. История, память, опыт существования записаны в формулах.
Однако практически ни одна архитектура искусственного интеллекта не пользуется этими возможностями.
Уже 60 лет человечество владеет мощными средствами для точного построения взаимосвязанных композиций. Но сообщество разработчиков ИИ продолжает довольствоваться примитивными схемами соединений, называя их категорическими моделями.
Игнорируя особенности структуры пути, разработчики сталкиваются с рядом конкретных последствий:
Накопившиеся ошибки растут незаметно. Каждый шаг конвейера добавляет небольшие отклонения. Линейная комбинация легко справляется с таким шумом. Но в криволинейных пространствах отклонения начинают накапливаться экспоненциально, и вы рискуете оказаться в неизвестной точке пространства состояний.
Обратная связь теряет предсказуемость. Система мониторинга собственных результатов постепенно превращается в хаотичную игру, проходя циклы ошибок и попыток коррекции, которые трудно спрогнозировать.
Попытки перезапуска не приносят ожидаемых результатов. Одно и то же взаимодействие агентов дважды подряд даёт иной результат, поскольку состояние системы уже прошло по другому пути, чем зафиксировал проектировщик.
Автономные агенты ведут себя нестабильно. Взаимодействие между несколькими агентами создаёт нежелательные эффекты — аттракторы, рутины, колебания, не предусмотренные конструкторами. Причина в отсутствии понимания пространственно-геометрической природы взаимодействия.
Отладка становится археологией. Если невозможно восстановить реальный путь возникновения состояния, вы вынуждены исследовать артефакты. Причиной глюков могли стать внешние факторы, случайно выбранные запросы или неоптимизированные алгоритмы подготовки данных. Фактический путь потерян навсегда.
Эффекты ядра атакуют внезапно. Ваши бенчмарки впечатляют качеством... но в производственной среде всплывают аварийные режимы, существовавшие в ядре измерений. Уравняв разнообразие вариантов поведения, система загнала опасные паттерны вглубь.
Оркестрация архитектур быстро устаревает. Каждый новый патч приносит дополнительные несоответствия, увеличивающие число непредсказуемых ситуаций. Так образуется запутанный клубок связей, не подлежащий пониманию.
Предложенная критика не направлена исключительно на разрушение существующих подходов. Есть позитивная программа реформирования.
Архитектура, учитывающая пути, должна включать:
Представление пространств состояний как реальных геометрических объектов с понятием топологии — не просто абстрактных векторов, а полноценных многообразий или слоистых пространств с естественной формой.
Эксплицитное отслеживание траекторий, а не текущих состояний: знание о происхождении состояния важнее факта нахождения в нём.
Определение коннекций: строгие правила переноса информации по разным маршрутам, гарантирующие сохранение параллельности.
Измерение кривизны: количественная характеристика степени влияния пути в различных частях системы.
Моделирование ядра: выявление областей неопределённости, чтобы определить границы слепых зон архитектуры.
Использование групп холономии для изучения спектра исторических воздействий — какие следы оставляют пройденные пути?
Частичные подходы уже встречаются: геометрическое глубокое обучение, топологический анализ данных, теория гомотопий позволяют изучать подобные явления. Но полного стека методик пока нет.
Необходимые инструменты уже разработаны. Категория теории предлагает организационную основу, однако используются наиболее ранние версии, известные с 1940-х годов.
Архитектурная слепота возникла не случайно. Ей способствуют корни:
Машинное обучение выросло из статистики, а не геометрии. Первоначальные метафоры основывались на регрессии, оптимизации, распределениях вероятностей. Эти принципы естественно действуют в плоских пространствах, где все пути эквивалентны.
Программирование основано на функциях. Идеология программирования — начиная с парадигмы функционального программирования — сосредоточилась на композиционных операциях функций. Такой подход естественным образом ассоциируется с категорией множеств (Set), воспринимаемой привычной и удобной.
Высшая теория категорий объективно сложна. Бесконечные категории, производная геометрия, теория гомотопий требуют глубоких познаний математики. Легче наклеить ярлык "категоричности" на существующую схему и опубликовать исследование.
Признание наличия ядра неприятно. Признать собственную неполноценность сложно. Гораздо легче уверять себя в абсолютной осведомлённости, игнорируя собственные слабые стороны.
Немедленная выгода отсутствует. Добавление поддержки трассировки путей не улучшает показателей стандартных тестов. Польза заметна в долгосрочной устойчивости, интерпретируемости и стабильности — вещах, не привлекательных для быстрых побед и рекламных кампаний.
Коллективно разработчики выбрали лёгкую дорогу, задавшись вопросом: почему наши системы ведут себя как дома с призраками, поражаемые необъяснимыми происшествиями, вызванными забытыми путями?
Будем откровенны:
Проблема не в том, что теория категорий недостаточно проработана для нужд искусственного интеллекта. Проблема в том, что подавляющее большинство сообществ — будь то исследования ИИ, функциональные языки программирования или компьютерные науки в целом — используют урезанную версию теории, относящуюся к середине XX века.
Функции без памяти, композиция без транспортировок, стрелки без памяти — это не настоящая теория категорий. Это лишь костюмировка, создающая впечатление, будто используется глубокий инструментарий.
Это как утверждать использование высшей математики, отвергая понятие производных. Да, вы находитесь в здании математики, но застряли в вестибюле, забыв подняться на верхние этажи.
Весь мир компьютерной науки проникся идеей функционирования как единственного инструмента проектирования, считая Set-категорию пределом совершенства. Никто не стремится заглянуть выше, полагая, что главное уже найдено.
Подобно тому, как посетитель отеля может провести годы в просторном лобби, принимая его за весь отель, не подозревая о существовании верхних этажей, раскрывающих захватывающий вид.
Повторюсь вновь: печаль в том, что необходимая математика уже разработана. Инструменты находятся в книгах по дифференциальной геометрии, алгебраической топологии и высшей теории категорий, готовые к применению.
Что потребуется для перемен?
Исследователи искусственного интеллекта должны освоить основы геометрии: не просто линейную алгебру, а настоящую дифференциальную геометрию. Понять концепцию связности, измерять степень кривизны, разобраться, зачем важен перенос в параллельном направлении. После этого взглянуть на существующие графики и диаграммы заново.
Разработчики функциональных языков обязаны перестать считать Haskell вершиной достижений. Ознакомьтесь с теорией гомотопий, где типы представлены пространством, а пути выступают полноправными элементами. Новое поколение языков программирования станет ориентированным на поддержку маршрутов. Будьте готовы к этому развитию.
Всем, кто занимается созданием систем искусственного интеллекта: когда ваша система выдаёт странные результаты, когда смена порядка тонкой настройки вызывает различия, когда повторные попытки завершаются новыми последствиями — не списывайте это на случайность. Это сигнал. Это та геометрия, которую вы упорно игнорируете, прорывающаяся наружу.
Вопрос заключается в том, готова ли отрасль искусственного интеллекта повзрослеть и принять реальные законы математики... Или продолжит играть с плоскими схемами, удивляясь, почему ни одна задача не решается идеально?
Если ваша архитектура неспособна отслеживать происхождение состояния, она не сможет полноценно рассуждать, учиться и адаптироваться, как бы много стрелок вы ни провели.
Если архитектура не может видеть собственное ядро, она не знает, чего не знает.
Никакие красивые формулировки и заимствования терминологии не смогут спасти систему, забывшую геометрию, историю и пути. Теория категорий была создана правильно. Просто её применяют некорректно.
Пути и ядра никуда не исчезли. Они присутствуют в ваших системах, формируя будущее развитие и сокрытые угрозы. Либо вы их учтёте, либо будете жить с постоянными сюрпризами, возникающими вследствие игнорирования ключевых закономерностей.
Источник


