Фундаментальные основы машинного обучения: зачем глубокому обучению нужна структура? 0:00
Современный подход к Deep Learning, ориентированный на бездумное масштабирование вычислений, может быть тупиковым путем. Как утверждает Пол, сооснователь компании, занимающейся исследованиями в этой области, попытка «запомнить бесконечность» через подачу колоссальных объемов данных в нейронные сети не способна привести к конвергенции функционала. Вместо того чтобы полагаться на бесконечные вычислительные мощности, необходимо вернуться к изобретательности, новым математическим структурам и формализмам. Кейт добавляет, что работа нейросетей сейчас напоминает алхимию, а инженерные методы борьбы с ошибками — лишь «затыкание дыр» в системе, которая не обладает принципиальной прозрачностью.
## Математический каркас: категория и морфизмы 🌐 5:09
По мнению собеседников, текущее понимание нейронных сетей как «черных ящиков» требует замены на более строгий базис. В качестве альтернативы предлагается теория категорий — математический язык для абстрагирования структур.
- Композиционность: Если подходить к архитектуре с точки зрения геометрического глубокого обучения (GDL), возникает проблема обобщения. Не все вычисления являются обратимыми или композиционными.
- Двухкатегориальный подход: Пол предлагает рассматривать нейронные сети как морфизмы в двухкатегории объектов, где параметрические карты и репараметризации позволяют структурировать вычисления так, как это делает алгебра для монад.
- Типовая безопасность: Одной из проблем композиции являются типы данных. Как только в коде появляются ветвления или сложные типы (например, «Maybe T» в Haskell), классическая композиция функций перестает работать «наивно».
## Проектирование языков для ML: тип вместо интуиции 🛠️ 19:07
Кейт и Пол сошлись на том, что программирование — это всегда создание домен-специфичного языка (DSL). Если мы сможем создать DSL, формально описывающий архитектуру нейронных сетей, мы перейдем к «тип-ориентированному глубокому обучению» (type-driven deep learning).
- Формализация: Вместо отладки по принципу «проб и ошибок» (как в нейробиологии), инженеры смогут доказывать теоремы о поведении систем.
- Новые архитектуры: Цель — не просто улучшить текущие трансформеры, а создать архитектуры, способные к рекурсии и работе с памятью, которые фундаментально ограничены в текущих моделях.
- Абстракция: Как отмечал Александр Степанов, создатель Standard Template Library (STL) для C++, даже шаблонное метапрограммирование было попыткой втиснуть логику алгоритмов в типы. Теория категорий может стать следующим этапом эволюции этого процесса.
## Парадокс Тьюринга: почему нейросети не «рассуждают»? 🧠 37:38
Собеседники провели четкую границу между тем, что делают современные нейросети, и тем, что делает машина Тьюринга.
- Конечные автоматы: Нейросеть — это конечный автомат с фиксированным количеством состояний, заданным при построении. Она не обладает бесконечной расширяемой памятью для записи результатов промежуточных вычислений.
- Поиск в пространстве программ: По словам Кейта, SGD (стохастический градиентный спуск) ищет решение в узком подпространстве конечных автоматов. Он практически не находит программ, которые ведут себя как контекстно-свободные или рекурсивные грамматики.
- Иллюзия рассуждений: Спикеры критикуют термин «рассуждение» (reasoning) в контексте LLM. Пол полагает, что это категория-ошибка: рассуждение — это процесс объяснения причин (explanation), а не просто генерация текста на основе вероятностей.
## Будущее: «наука о функциях» или формальная инженерия? 🚀 52:08
Финальный тезис дискуссии: текущее доминирование «алхимических» методов обучения — это следствие отсутствия компиляторов, которые могли бы превращать формальные высокоуровневые спецификации в эффективные нейросетевые модули.
- Data as Code: Собеседники пришли к выводу, что любая интеллектуальная деятельность в глубоком обучении — это программирование. Обучающая выборка является программой, а нейросеть — компилятором, который эту программу превращает в исполняемую функцию.
- Синтаксис против семантики: Категориальный подход позволяет абстрагироваться от «ужасающих» деталей реализации и работать на уровне functorial semantics (функториальной семантики). Это не «божественное откровение», а способ сделать проблему «тривиальной», выбрав правильную форму представления.