Стандартные benchmark-задачи вроде MNIST или Titanic давно перестали быть настоящим испытанием: на изображениях побеждают свёрточные сети, на таблицах — градиентный бустинг. Российский исследователь решил сконструировать задачу, где ни один из этих привычных ответов не работает автоматически.

Исходная идея проста: взять сложную двумерную функцию — визуально напоминающую сильно измятый шёлк — и превратить её в задачу регрессии. Два входных признака (координаты x и y), на выходе — нормализованная яркость от 0 до 1. Изображение разрешением 512×512 пикселей даёт 262 144 примера, из которых 240 000 уходят в обучение, 22 144 — в тест. Сама по себе задача нетривиальна из-за высокой нелинейности функции, но для современных методов всё равно выглядит решаемой.

АлгоритмКонфигурация
1Ridge регрессиястандартная
2kNNстандартная
3SVRстандартная
4HistGradientBoostingRegressorнастройки Claude
5HistGradientBoostingRegressorпо умолчанию
6LightGBMнастройки Claude
7LightGBMпо умолчанию
8XGBoostнастройки Claude
9XGBoostпо умолчанию
10CatBoostнастройки Claude
11RandomForestнастройки Claude
12RandomForestпо умолчанию
13ExtraTreesнастройки Claude
14ExtraTreesпо умолчанию
15Нейросеть (bottleneck)код Claude
16Нейросеть (два режима)код Claude
17Нейросетьавторская реализация
18TabNetнастройки Claude, вариант 1
19TabNetнастройки Claude, вариант 2
20TabNetпо умолчанию
21Полигармонический каскадавторская реализация

Подвох автор добавил намеренно. Вместо двух признаков алгоритмы получают 500, 1000 или 2000 входных колонок. Из них только две содержат настоящие координаты — остальные заполнены шумом, который генерируется перестановкой тех же значений x и y. Распределение, амплитуда и средние у шумовых признаков идентичны полезным: отличить сигнал от мусора, анализируя входные данные напрямую, невозможно. Это доведённая до предела классическая проблема отбора признаков — та же, с которой сталкиваются при работе с геномными данными, финансовыми рядами или показаниями промышленных датчиков.

Второй уровень сложности — матричный поворот. Автор умножает всё многомерное пространство признаков на случайную ортогональную матрицу. Геометрия данных не меняется, расстояния между точками сохраняются, но полезный сигнал оказывается равномерно размазан по всем двум тысячам координат. Древовидные алгоритмы, которые ищут информативные признаки, перебирая отдельные столбцы, после такого преобразования теряют главное преимущество: ни одна ось больше не совпадает с информативным направлением.

В турнире участвуют 21 алгоритм: Ridge-регрессия, kNN, SVR, HistGradientBoostingRegressor, LightGBM, XGBoost, CatBoost, RandomForest, ExtraTrees — каждый в нескольких конфигурациях (настройки по умолчанию и настройки, подобранные с помощью Claude). Отдельно представлены три варианта нейросетей, три варианта TabNet и авторский алгоритм «Полигармонический каскад».

TabNet — архитектура, разработанная Google в 2019 году специально для табличных данных: она использует механизм внимания для последовательного отбора признаков на каждом шаге обработки. Именно такие модели теоретически должны справляться с задачами, где важные признаки нужно выделить из шума. «Полигармонический каскад» — авторская разработка, выведенная из принципов теории случайных функций и индифферентности; широкой аудитории и сообществу Kaggle она практически неизвестна.

Качество каждого алгоритма измеряется через RMSE на тестовой выборке из 262 144 примеров. Принципиальная деталь: шумовые признаки в тестовых данных генерируются заново — алгоритм, который просто запомнил обучающую выборку, на тесте немедленно проваливается. RMSE около 0,2 соответствует предсказанию константы (средней яркости) — то есть фактическому отказу от решения задачи. Помимо числовой метрики, результат можно визуализировать: упорядоченные предсказания превращаются в изображение, которое сравнивается с исходным.

Автор позиционирует эксперимент как приглашение к репликации, а не как финальный вердикт. Методологические детали — в том числе то, как именно «Полигармонический каскад» обошёл фаворитов — он обещает раскрыть в продолжении. Тем не менее сама постановка задачи представляет самостоятельный интерес: синтетический benchmark с контролируемой сложностью, где можно точно знать, что именно должен найти алгоритм, — редкость для табличного ML.