Функция Кантора: «дьявольская лестница» в математическом анализе
Недавно на Хабре вышла интересная статья «Рваная, чудовищная функция, которая сломала математический анализ». В ней рассказывалось о функции Вейерштрасса — знаменитом примере непрерывной, но нигде не дифференцируемой функции, которую математики XIX века называли «безобразным злом». Это вызвало у меня интерес к другим необычным («патологическим») функциям. Мне захотелось разобраться, как подобные объекты влияют на развитие математики и даже находят отражение в современных областях, таких как машинное обучение.
В этой статье я хочу поделиться исследованием про функцию Кантора. Это еще одна причудливая функция, обладающая интересными свойствами. Рассмотрим историю ее появления, о том, как она строится, рассмотрим ее фрактальную природу и связь с теорией меры, а также обсудим возможные применения – например, в генерации разреженных данных или тестировании алгоритмов оптимизации. Статья носит исследовательский характер и не претендует на математическую строгость, но, надеюсь, сможет передать красоту и важность этой функции.
Историческое происхождение функции Кантора
Функция Кантора (иногда ее называют канторовой лестницей или «дьявольской лестницей») была впервые описана в 1884 году Георгом Кантором. Кантор искал контрпримеры, чтобы уточнить фундаментальные понятия математического анализа. Ему удалось построить непрерывную функцию, которая, казалось бы, «почти не растет», но при этом изменяется от 0 до 1. Этот пример опроверг излишне сильное обобщение основной теоремы анализа, предложенное Г. Гарнаком. Впоследствии функцию Кантора изучали и популяризировали другие математики, например, Феликс Шеффер, Анри Лебег и Джузеппе Витали. Лебег в 1904 году использовал ее при создании теории меры, из-за чего эту функцию иногда называют «особой функцией Лебега».
Таким образом, изначально функция Кантора возникла как патологический пример — «игрушка» чистой математики, демонстрирующая противоречие интуиции. Однако, как мы увидим, ее изучение заложило основы для новых идей в математике, а со временем появились и неожиданные прикладные переклички.
Построение функции Кантора
Функция Кантора определяется на отрезке [0, 1]. Её конструкция тесно связана с множеством Кантора – знаменитым фрактальным подмножеством отрезка. Посмотрим, как строится канторово множество:
Начинаем с отрезка
. На первом шаге удаляем открытую среднюю треть
. Остаются два отрезка: и . На втором шаге удаляем средние трети оставшихся отрезков. То есть вырезаем интервалы
и . Теперь остаются четыре небольших отрезка: , , и . Продолжаем этот процесс бесконечно. На каждом шаге удаляются средние трети всех оставшихся отрезков предыдущего шага.
После бесконечного числа шагов остаётся несчётное множество точек (канторово множество
Можно задать
Теперь определим функцию Кантора
Шаг 0: определим начальные значения:
и . Шаг 1: на удалённой средней трети
зафиксируем значение функции равным . Иными словами, при полагаем . На краях этого интервала ( и ) значение тоже будет – так мы обеспечиваем непрерывность. Шаг 2: рассмотрим два удалённых интервала второго шага. Для всех
положим , а для – . Эти значения выбраны как середины между уже имеющимися соседними уровнями ( и для левого интервала; и для правого). Шаг 3 и далее: продолжаем аналогично. На каждом следующем этапе на всех новых вырезанных промежутках функция Кантора принимаeт значение, равное середине между значениями на концах этого промежутка.
Другими словами, функция на каждом «среднем удалённом» отрезке остаётся постоянной, принимая значение ровно посередине между уровнями слева и справа от этого отрезка. При бесконечном продолжении процесса мы определяем
На графике хорошо видны первые крупные «ступени»: на участке
Заметим, что можно описать
Свойства и фрактальная структура
Функция Кантора обладает рядом удивительных математических свойств:
Непрерывность и монотонность. Как было отмечено,
непрерывна на всём отрезке [0,1] и неубывающая (то есть функция распределения, CDF). При этом она принимает все промежуточные значения от 0 до 1. Казалось бы, непрерывная монотонная функция должна хоть где-то «расти» в обычном смысле, однако здесь рост происходит очень необычно. Почти везде постоянство (особенность производной). Функция Кантора была придумана как контрпример к наивному обобщению теоремы Ньютона-Лейбница. Дело в том, что она поднимается от 0 до 1, но делает это так «бережно», что производная оказывается равной нулю на всем протяжении, кроме, формально, множества Кантора. В каждом вырезанном интервале график
горизонтален, отсюда для всех вне канторова множества. С другой стороны, в точках самого множества Кантора производная не существует (там график изгибается углом при переходе с одной ступеньки на другую). Поскольку множество Кантора имеет меру ноль, говорят, что производная равна 0 почти всюду. И все же интеграл этой производной от 0 до 1 даёт 1, а не 0, ведь функция суммарно повысилась на 1. Это и есть «дьявольщина» в дьявольской лестнице. В среде математиков функция Кантора стала классическим примером особой функции: она непрерывна, но не абсолютно непрерывна и практически плоская всюду, хотя не константна. Фрактальная самоподобность. Построение
явно носит самоподобный характер. Если взять левую треть графика (от 0 до 1/3 по ), то она выглядит как миниатюрная копия всего графика, только «вписанная» в прямоугольник . Аналогично, правая часть (от до 1) масштабируется в копию в прямоугольнике . Такое дробное самоподобие присуще фракталам. Формально, множество Кантора обладает хаусдорфовой размерностью ,
что меньше единицы (нулевая длина соответствует этому факту). График же функции Кантора заполняет некоторое подмножество единичного квадрата на плоскости. Хотя топологически это непрерывная кривая (имеющая размерность 1), ее свойства тесно связаны с фрактальной природой множества Кантора. Каждый «излом» на графике происходит на точках из, при увеличении масштаба мы всегда снова видим лестницу, и структура ступенек повторяется в каждом масштабе. Такое поведение резко отличается от гладких кривых и сближает функцию Кантора с другими известными фрактальными объектами (например, функция Вейерштрасса — тоже фрактальная, но там кривая нигде не имеет касательной, тогда как у Кантора касательная почти везде горизонтальна). Теория меры и особые распределения. С точки зрения теории меры функция Кантора предоставляет интереснейший пример сингулярного распределения. Поскольку
— монотонно неубывающая и непрерывная, она может выступать в роли функции распределения некоторой случайной величины. Какое же это распределение? Оказывается, это случайная величина, принимающая значения только на множестве Кантора. Представьте себе случайный процесс: на каждом шаге выбираем, куда пойти — в левый или правый оставшийся отрезок (с равной вероятностью 50%). После бесконечного числа шагов мы попадём в случайную точку из канторова множества. Эта точка равномерно (в смысле канторовой меры) распределена по . Тогда будет равномерно распределено на отрезке [0,1]. И наоборот, фактически является накопленной функцией распределения для . Другими словами, функция Кантора переводит равномерное распределение на множестве Кантора в равномерное распределение на интервале. В прикладных терминах, вероятностная мера, соответствующая , сконцентрирована на тончайшем фрактальном множестве (имеющем нулевую длину). Ни плотности распределения (pdf), ни дискретных атомов у такой меры нет – классический пример ни непрерывного, ни дискретного, а особого распределения. Симметрия канторова множества подсказывает, что среднее такой случайной величины равно , а ее распределение симметрично относительно 0.5. Можно даже вычислить дисперсию: она оказывается равной . Такие экзотические распределения редки в базовых курсах, но важны в теории вероятностей и мере. Функция Кантора, таким образом, связала воедино идеи фрактальной геометрии (самоподобие), анализа (непрерывность при нулевой производной) и теории меры (особые распределения).
Возможные применения и параллели в машинном обучении
Возникает вопрос: а можно ли встретить или применить столь необычную функцию где-то вне чистой математики? На первый взгляд, кажется маловероятным — слишком уж специально она построена. Но именно благодаря своим экстремальным свойствам функция Кантора и связанные с ней концепции могут быть полезны для тестирования алгоритмов и моделирования нетривиальных ситуаций.
Генерация разреженных и фрактальных данных. В машинном обучении нередко приходится иметь дело с разреженными признаками или распределениями, сконцентрированными на малой подмножественности пространства. Канторово распределение дает чистый теоретический пример подобной ситуации. Мы можем сгенерировать выборку точек, равномерно распределённых на множестве Кантора (например, как описывалось выше через случайные коэффициенты 0/2 в троичном разложении). Получается датасет, заполняющий отрезок [0,1] крайне неоднородно: все точки распределены по канторову множеству, образуя разреженный, но несчётный набор значений, избегая целые промежутки. Такой набор данных может послужить бенчмарком для алгоритмов кластеризации, оценки плотности и др., проверяя, способны ли они уловить сложную фрактальную структуру распределения. Кроме того, визуализация такого распределения красиво демонстрирует разницу между понятиями «почти всюду» и «всюду» в практике: хотя выборка бесконечно плотна в пределе (несчетно много точек), стандартные гистограммы с малым числом бинтов могут показывать нулевую частоту в большинстве из них (как если бы данные были дискретны).
Тестирование методов оптимизации (градиентные методы). Алгоритмы оптимизации, лежащие в основе обучения нейросетей (типа градиентного спуска), полагаются на информацию о градиенте функции потерь. Но что если функция имеет большие плоские области нулевого градиента, разделенные резкими «обрывами»? Функция Кантора представляет именно такую ситуацию. Если мы зададим, например, задачу максимизации
Особые распределения и обучение на фрактальных мерах. Хотя реальные данные обычно не имеют строго нулевой плотности на целом интервале, в некоторых задачах встречаются распределения со сложной поддержкой. Например, в генеративных моделях можно попытаться научить нейросеть имитировать распределение, подобное канторовому. Это был бы испытательный полигон для моделей: обычные нормализующие потоки или вариационные автоэнкодеры, предполагающие гладкую плотность, могут плохо справиться с воспроизведением сингулярной меры. Такого рода эксперименты помогают выявить ограничения моделей и улучшить их. Более того, понятие фрактальной размерности данных находит отклик в современных исследованиях сложности задач машинного обучения. Метрики, основанные на фрактальной размерности выборки, используются для оценки обобщающей способности моделей и эффективности различных архитектур. В этом контексте канторова мера (с ненулевой фрактальной размерностью < 1) служит понятным примером: она показывает, что сложность данных не обязательно связана с размерами пространства или обычной энтропией распределения, а может быть скрыта глубже, в геометрии поддержки.
Неожиданные появления в теории обучения. Любопытно, что функции типа канторовой лестницы всплывают даже в строгом анализе некоторых алгоритмов. Например, в одной работе по обучению с подкреплением исследователи получили оптимальную ценностную функцию, обладающую свойствами самоподобия и нулевой производной почти всюду, аналогично функции Кантора. Это показывает, что «экзотические» конструкции могут не только служить искусственными примерами, но и возникать естественно в решении прикладных задач. Знание о них позволяет вовремя распознать структуру проблемы и применить адекватные методы (например, спецпроцедуры для обработки разреженных вознаграждений или дискретизации состояний в задачах RL).
Конечно, напрямую функция Кантора в прикладных моделях встречается редко. Скорее, она выполняет роль мысленного эксперимента и крайнего случая, на котором можно проверить границы применимости наших методов. Тем не менее, подобные математические объекты расширяют кругозор инженеров и исследователей. Они показывают, что мир функций гораздо богаче привычных нам гладких кривых, и иногда для успеха алгоритма нужно учитывать возможность совершенно нестандартного поведения данных.
Вместо заключения
Функция Кантора — яркий пример того, как абстрактные конструкции из математического анализа со временем оказывают влияние на смежные области знаний. Изначально появившись как вызов устоявшимся представлениям (непрерывная функция без привычной производной), она стимулировала развитие теории меры и нашего понимания разрывов между понятиями «почти всюду» и «везде». Ее фрактальная природа предвосхитила идеи, которые спустя почти столетие стали востребованы в науке о сложности, компьютерной графике и моделировании природных процессов.
Для прикладных наук такие необычные функции важны не сами по себе, а как источники идей. Изучая «дьявольскую лестницу» Кантора, мы учимся мыслить шире о возможных структурах данных и поведении моделей. Этот мысленный эксперимент может подсказать новые подходы к работе с разреженными признаками, нестандартными распределениями вероятностей, плато функции потерь. В конце концов, многие прорывы в науке рождались именно так: попытка понять странный, казалось бы бесполезный объект приводила к новым универсальным методам.