Почему больше признаков может означать меньше информации?
В высокой размерности объём растёт быстрее, чем число наблюдений. Сетка
взрывается, шар исчезает внутри куба, а ближний сосед перестаёт быть по-настоящему
ближним. Спасает не хитрость оптимизатора, а предположение о том, что реальные
данные имеют структуру — и урок как раз о том, как это предположение назвать
вслух и проверить числом.
Десять делений на каждой оси
Начнём с самого безобидного намерения. Мы хотим оценивать ответ «по соседям»:
разобьём каждую координату на десять интервалов и в каждой клетке усредним то,
что наблюдали. Для одной температуры это десять клеток; при двухстах измерениях
в каждой окажется примерно двадцать точек — оценка вполне устойчива. Для двух
признаков клеток уже 102=100, для шести — миллион, для двадцати —
1020:
Ncells=md.
Формула короткая, а последствия драматические. Удвоим разрешение каждой оси —
число клеток вырастет в
md(2m)d=2d
раз: в десяти измерениях это тысяча, в тридцати — миллиард. Наоборот, если мы
хотим держать в каждой клетке фиксированное среднее число точек nˉ, то
выборка обязана расти как
n=nˉmd,
то есть экспоненциально по размерности. Именно это, а не какая-то мистика,
и называют проклятием размерности.
Рис. 60.1. Равное разрешение по каждой оси стоит экспоненциально
Одни и те же двести точек. На отрезке в каждой из десяти клеток около двадцати
наблюдений. На квадрате клеток уже сто, и при том же наборе данных 14 клеток
пусты — оценка «по соседям» в них просто не определена. Справа цена того же
разрешения при росте размерности: красная черта — 1797 рукописных цифр из
sklearn, весь наш будущий набор данных. Он кончается где-то между d=3 и
d=4.
Термин придумал Беллман, решая задачи динамического программирования: таблица
значений функции по состоянию системы росла у него как md, и никакая ЭВМ
пятидесятых годов не могла её вместить. Мы встретимся с тем же явлением в
статистике, в геометрии и в вычислениях, и каждый раз оно будет иметь одно и то
же лицо — экспоненту.
Шар исчезает внутри куба
Геометрия высокой размерности устроена не так, как подсказывает бумага. Объём
единичного шара
Vd=Γ(2d+1)πd/2
сначала растёт: V1=2, V2=π≈3,14, V3=4π/3≈4,19. Он
достигает максимума при d=5, где V5≈5,264, а дальше падает — и
падает стремительно: V20≈0,0258. Шар радиуса единица в двадцати
измерениях занимает меньше трёх сотых кубической единицы объёма.
Куб [−1,1]d, в который этот шар вписан, имеет объём 2d. Значит, доля
вписанного шара равна
2dVd.
При d=2 это π/4≈0,785: круг занимает почти четыре пятых квадрата.
При d=3 — уже π/6≈0,524. При d=10 остаётся
2,49⋅10−3, при d=20 — 2,46⋅10−8, а при d=50 —
1,54⋅10−28. Практически весь объём куба лежит вне вписанного шара,
то есть в углах, куда наша двумерная интуиция не заглядывает.
Слева: объём единичного шара растёт лишь до d=5 (V5≈5,26), а затем
неумолимо стремится к нулю. Справа: доля вписанного шара в кубе на
логарифмической оси. От 0,785 при d=2 до 2,46⋅10−8 при d=20.
Если бросать точки равномерно в куб, попасть в шар в двадцати измерениях —
событие вероятности примерно одна сорокамиллионная (1/2,46⋅10−8≈4,06⋅107).
Полезно запомнить простой факт: расстояние от центра куба [−1,1]d до
середины грани всегда равно единице, а до угла —
d1+1+⋯+1=d.
В двадцати измерениях углы в 20≈4,47 раза дальше от центра, чем
грани. Куб перестаёт быть похожим на кубик и становится колючим ежом с
220≈106 шипами.
Почти весь объём — в тонкой корке
Возьмём теперь сам шар и спросим, где внутри него лежит объём. Доля объёма,
попадающая внутрь радиуса 1−ε, равна
VdVd(1−ε)d=(1−ε)d,
а во внешнюю корку толщиной ε попадает
1−(1−ε)dd→∞1.
При ε=0,1: в d=10 в корке уже 65,1% объёма, в d=20 —
87,8%, в d=50 — 99,5%. Апельсин в пятидесяти измерениях — это почти
одна кожура. То же самое верно и для гауссова облака: точки не толпятся у
центра, а живут в тонком сферическом слое радиуса примерно d.
Расстояния становятся похожими
Теперь главное для машинного обучения следствие. Пусть координаты независимы;
квадрат евклидова расстояния
∥X−Y∥22=j=1∑d(Xj−Yj)2
есть сумма d независимых одинаково распределённых слагаемых. По закону больших
чисел из урока 41 она концентрируется около своего среднего:
E∥X−Y∥22=dμ,sd∥X−Y∥22=dτ,
то есть среднее растёт как d, а разброс — только как d.
Относительный разброс убывает:
Esd=μdτ→0.
Отсюда и знаменитый эффект: отношение расстояния до ближайшего соседа к
расстоянию до самого дальнего стремится к единице,
maxi∥q−Xi∥mini∥q−Xi∥d→∞1.
Измерим это честно. Возьмём 500 точек из стандартного гауссова распределения и
посчитаем контраст
contrast=mini∥q−Xi∥maxi∥q−Xi∥−mini∥q−Xi∥.
При d=2 получается 25,54: дальний сосед в двадцать шесть с половиной раз
дальше ближнего. При d=20 — уже 1,89, при d=200 — 0,366, при d=2000 —
0,087. Все точки становятся почти равноудалёнными, и слово «ближайший»
теряет содержание.
Обратите внимание на двойственность, которую подчёркивает Донохо. Одна и та же
концентрация, которая губит ближайшего соседа, спасает среднее: выборочное
среднее по многим координатам почти детерминировано, и именно поэтому линейные
методы в высокой размерности часто работают лучше локальных.
Рис. 60.3. Ближний и дальний сосед теряют различие
Слева: чем больше независимых координат, тем уже гистограмма расстояний
относительно своего среднего. Справа: контраст (max−min)/min падает как
степень d. Но реальные данные не обязаны лежать на этой кривой: 64-пиксельные
цифры дают контраст 3,22 вместо ≈1, ожидаемого для независимых
координат. Стоит перемешать значения внутри каждого столбца — структура
разрушается, и контраст падает до 0,90, ровно на теоретическую кривую.
Реальные цифры против перемешанных
Правый график рисунка 60.3 — важнейший в этом уроке, поэтому проговорим его
медленно. Мы берём реальный набор digits из sklearn: 1797 рукописных цифр,
каждая — картинка 8×8, то есть точка в R64. Считаем средний
контраст расстояний от случайной цифры до всех остальных: получается 3,22.
Теория для 64 независимых координат обещала бы около единицы.
Теперь проведём операцию, которая ничего не меняет в отдельных признаках, но
уничтожает связи между ними: внутри каждого из 64 столбцов случайно перемешаем
значения по объектам. Гистограмма яркости каждого пикселя останется той же,
среднее и дисперсия каждой координаты не изменятся — исчезнет только
согласованность. Контраст падает до 0,90:
3,22перемешалистолбцы0,90.
Вывод, который стоит подчеркнуть: проклятие размерности — свойство не числа
координат, а их независимости. Пиксели соседних клеток картинки сильно
скоррелированы, цифры лежат вблизи маломерной поверхности, и потому геометрия у
них жива. Наше дело — не бояться большого d, а спрашивать, есть ли структура.
Как это ломает k-NN: реальный опыт
Проверим цену лишних координат на настоящей задаче. Набор
breast_cancer из sklearn: n=569 пациенток, d=30 честных признаков,
измеренных по изображению биопсии, и бинарная метка. Метод k ближайших соседей
(k=15) со стандартизацией внутри пайплайна даёт по пятиблочной кросс-валидации
точность 96,1%.
Теперь начнём приписывать к таблице чистый шум — независимые нормальные
столбцы, никак не связанные с меткой. Мы не удаляем информацию: все тридцать
исходных признаков на месте. Мы только добавляем координаты.
Почти двенадцать процентных пунктов точности мы потеряли, ничего полезного не
убрав. Причина видна из формулы для квадрата расстояния: если сигнал живёт в
нескольких координатах и даёт вклад S, а m шумовых координат добавляют по
σ2 каждая, то
E∥x−x′∥2=сигналS+mσ2,
и доля полезного вклада равна S/(S+mσ2)→0. Соседство начинает
определяться шумом.
Реальные данные о раке груди. Красная кривая: точность k-NN, когда расстояние
считается по всем координатам. Зелёный пунктир — исходные 96,1%. Синий
квадрат: если внутрь каждой обучающей части кросс-валидации поставить отбор
тридцати лучших признаков, точность возвращается к 94,9%, хотя таблица
по-прежнему содержит тысячу шумовых столбцов. Лечение не в данных, а в
предположении «полезных координат мало».
Насколько силён этот соблазн, легко измерить. Отберём на всей таблице (с
метками!) тридцать признаков с наибольшей F-статистикой. Среди выбранных
окажется пять чисто шумовых столбцов — они просто случайно оказались похожими на
метку среди тысячи кандидатов. Это уже знакомая нам из урока 43
проблема множественной проверки: при тысяче испытаний редкое событие перестаёт
быть редким.
Пик Хьюза: когда лишний признак вредит
Есть эффект тоньше, чем чистый шум. Даже полезные признаки при фиксированном
объёме выборки начинают вредить, когда их слишком много: каждый новый признак
приносит немного информации и много дисперсии оценки. В 1968 году Гордон Хьюз
посчитал это для байесовского классификатора и обнаружил максимум.
Мы воспроизвели этот пик на реальных данных: к тем же тридцати честным
признакам добавили двести шумовых, обучались всего по сорока пациенткам и
добавляли признаки в порядке убывания их индивидуальной силы. Точность растёт с
89,3% на одном признаке до максимума 92,3% на двадцати, а затем
неуклонно падает до 85,3% на всех 230. Это ровно кривая
смещение—вариативность из урока 33, только по оси «число
признаков».
Лаборатория размерности
Шум по координатам, контраст расстояний и точность k-NN
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
Сигнал в этой лаборатории всегда живёт ровно в двух координатах: классы
раздвинуты по первой оси и слабее по второй. Всё остальное — независимый шум,
одинаковый для обоих классов. Двигая ползунок размерности, следите за тремя
величинами одновременно: гистограмма расстояний слева сжимается в иглу, доля
шара в кубе в показаниях падает на десятки порядков, а красная кривая точности
k-NN уходит вниз. Затем переключитесь на «только 2 информативные»: данные не
изменились ни на йоту, мы не добавили ни одного нового наблюдения — но точность
возвращается к зелёной линии. Разрыв между красной кривой и зелёной линией и
есть цена, которую платит алгоритм за право считать все направления одинаково
важными.
Мильман: концентрация меры вместо проклятия
Русская математическая школа посмотрела на ту же экспоненту с другой стороны и
превратила проклятие в инструмент. Виталий Давидович Мильман, работавший в
шестидесятые-семидесятые годы в Харькове, дал в 1971 году новое доказательство
теоремы Дворецкого — через явление концентрации меры. Суть в следующем: если
f — липшицева функция на сфере Sd−1 с константой L, то для равномерной
меры
P{∣f−medf∣>t}≤2exp(−L2cdt2).
Читается это так: всякая не слишком резкая функция многих переменных почти
постоянна. Отклонение от медианы больше t имеет вероятность, экспоненциально
малую по d. Именно отсюда и слабеющий контраст расстояний (расстояние —
липшицева функция координат), и тонкая корка шара, и устойчивость средних.
Мильмановский взгляд перестраивает мышление. Экспонента e−cdt2 — та же
самая экспонента, что делала сетку невозможной, но теперь она работает на нас:
чем выше размерность, тем надёжнее ведут себя усреднённые величины. Из этого
растут концентрационные неравенства, оценки обобщающей способности и
современный анализ случайных матриц. Проклятие и благословение — две проекции
одного факта.
Как структура спасает
Реальное изображение 256×256 в цвете — точка в R196608.
Если бы фотографии заполняли этот куб равномерно, случайный набор пикселей
выглядел бы как осмысленный снимок; но случайная картинка — всегда «снег».
Естественные изображения лежат вблизи сложного маломерного множества:
соседние пиксели связаны, у объектов есть края, текстуры повторяются.
Перечислим типы структуры, которые мы уже встречали в курсе, и то, какое
предположение каждый из них вносит:
Штрафы L1 и L2 мы разбирали в уроке 51, низкий ранг и
скрытые факторы — в уроке 38, нелинейное многообразие и
автокодировщик — в уроке 35, а осмысленный словарь признаков
ϕ(x) — в уроке 50. Все они делают одно и то же: уменьшают
эффективную размерность, оставляя исходную прежней.
PCA и эффективная размерность реальных цифр
Померим эффективную размерность там, где мы её уже видели. У набора digitsd=64 признака. Главные компоненты (метод из урока 38) дают
накопленную объяснённую дисперсию
R(k)=∑j≤64λj∑j≤kλj,
и цифры получаются такие: 80% дисперсии умещаются в 13 компонентах,
90% — в 21, 95% — в 29, 99% — в 41. Первые две компоненты дают
28,5%, первые десять — 73,8%.
Рис. 60.5. Эффективная размерность реальных цифр меньше исходной
Слева: накопленная объяснённая дисперсия на реальных цифрах. Справа: одна и та
же цифра, восстановленная по k компонентам. При k=2 (28,5% дисперсии)
это бесформенное пятно, при k=10 (73,8%) угадывается очертание, при
k=29 (95%) картинка практически неотличима от исходной. Шестьдесят четыре
пикселя — но далеко не шестьдесят четыре независимых направления.
Здесь нужна оговорка, без которой PCA превращается в суеверие. Большая
дисперсия не означает полезности для метки. Диагностический сигнал вполне может
жить в направлении с малой общей вариативностью, и тогда «сжатие до 95%
дисперсии» его просто выбросит. Высокая объяснённая дисперсия говорит о
восстановлении x, а не о сохранении y.
Случайная проекция и лемма Джонсона–Линденштраусса
Есть удивительный результат, который говорит: чтобы сохранить геометрию
конечного облака точек, знать структуру не обязательно — достаточно случайности.
Лемма Джонсона–Линденштраусса (1984) утверждает, что для n точек и
ε∈(0,1) найдётся отображение в размерность
k=O(ε2logn),
сохраняющее все попарные расстояния с относительной точностью ε:
(1−ε)∥xi−xj∥2≤∥f(xi)−f(xj)∥2≤(1+ε)∥xi−xj∥2.
Причём f можно взять линейным и случайным: f(x)=k1Rx, где
элементы R независимы и нормальны. Обратите внимание: требуемая k зависит
только от числа точек, логарифмически, и никак не от исходной размерности.
Рис. 60.6. Случайная проекция сохраняет расстояния тем точнее, чем больше k
Реальный опыт: 300 случайных цифр, все 44850 попарных расстояний,
проецирование гауссовой матрицей в размерность k. Медианное искажение падает
с 17,7% при k=8 до 8,9% при k=32; девяностый процентиль при
k=32 равен 21,5%. Пунктир — ориентир 0,7/k: точность растёт как
корень из k, а не экспоненциально.
Случайная проекция — честный и очень дешёвый базовый метод. Но она не снимает
проклятия: она сохраняет геометрию уже наблюдаемого облака, а не гарантирует
сохранение редкого предсказательного признака, который может жить в одном
слабом направлении.
No free lunch: проклятие как требование назвать предположение
Почему без предположений нельзя обойтись в принципе? Представим, что метки
расставлены по всем точкам огромного куба произвольно. Тогда, увидев обучающую
выборку, мы не знаем о новой точке ровно ничего: любое её значение согласуется с
данными. Число различных функций из {0,1}d в {0,1} равно
22d,
и при d=20 это 21048576 — число, рядом с которым количество атомов во
Вселенной выглядит опечаткой. Никакая выборка такое множество не сузит.
Теорема о бесплатном обеде не запрещает обучение — она требует назвать
inductive bias, встроенное предположение. Линейная модель верит в линейность по
признакам (урок 49), дерево — в осевые разбиения, свёрточная сеть
— в локальность и трансляционную эквивариантность, регуляризация — в простоту
весов, метод соседей — в гладкость по выбранной метрике. Обобщение, которое мы
измеряем истинным риском из урока 58, возникает не из данных самих
по себе, а из союза данных и предположения.
Геномные признаки: где проклятие встречается каждый день
Классическая ситуация современной биологии: 500 пациентов и 20 000 уровней
экспрессии генов, то есть d≫n. Здесь всё описанное происходит сразу.
Выборочная ковариационная матрица размера 20000×20000 по 500
наблюдениям обязательно вырождена: её ранг не превосходит n−1=499, так что не
менее 19501 собственного значения равны нулю точно:
rankΣ≤n−1≪d.
Обратить такую матрицу нельзя, классические формулы регрессии и расстояние
Махаланобиса неприменимы без регуляризации. Случайных корреляций тоже море: при
20000 проверках на уровне 0,05 около тысячи генов окажутся «значимы»
просто так. Мы уже видели этот механизм на игрушечном масштабе — среди тысячи
шумовых столбцов пять пробрались в тридцатку лучших.
Правильный протокол выглядит так. Внутри каждого обучающего блока
кросс-валидации: стандартизация, отбор или L1-регуляризация, обучение. Затем
— оценка на отложенном блоке, который ни в чём из этого не участвовал. Отдельно
стоит смотреть на стабильность списка генов между блоками: если при смене блока
список меняется целиком, вы описали шум, каким бы приличным ни было среднее
качество. А предметные знания (сигнальные пути, семейства генов) позволяют
объединять признаки в группы и уменьшать эффективную размерность до того, как
начнётся статистика.
Расстояния в булевом кубе
Двоичный случай позволяет увидеть концентрацию совсем без интегралов. Возьмём
два независимых случайных вектора из {0,1}d. В каждой координате они
различаются с вероятностью 1/2, поэтому расстояние Хэмминга имеет
биномиальное распределение:
H∼Bin(d,21),EH=2d,sdH=2d.
При d=10: среднее 5, стандартное отклонение ≈1,58 — соседи и
далёкие объекты различаются заметно. При d=1000: среднее 500, стандартное
отклонение 15,81. Поделим на d, чтобы получить долю различающихся битов:
dH≈21±2d3,
и трёхсигмовый интервал при d=1000 занимает всего от 0,4526 до 0,5474.
Все объекты различаются примерно наполовину — ровно то, что мы видели у
гауссовых точек.
И тот же самый сюжет со спасением. Если метка зависит только от первых двадцати
битов, то расстояние по ним содержит весь сигнал, а остальные 980 добавляют
шум с ожидаемым вкладом 490 против максимум 20. Проклятие возникает не от
длинной записи как таковой, а от попытки считать все направления одинаково
содержательными.
Размерность вычислительная и размерность статистическая
Полезно развести две разные трудности, которые часто путают. Умножить
разреженный вектор из миллиона координат на матрицу — вопрос вычислительный, и
он решается: стоимость линейной операции растёт как число ненулей, а не как
md. Собрать достаточно данных, чтобы восстановить произвольную функцию
миллиона переменных, — вопрос статистический, и он не решается никаким железом:
вычисления∼O(nd),данныедляпроизвольнойf∼md.
Первое линейно, второе экспоненциально. Поэтому современные модели с
миллиардами параметров вовсе не опровергают проклятие: они работают потому, что
предположения (локальность, разделяемые веса, предобученные представления)
делают эффективную размерность задачи умеренной. И наоборот, короткая запись
объекта не гарантирует лёгкости, если зависимость от неё произвольна.
Что стоит унести с собой
Проклятие размерности — не запрет, а диагностический инструмент. Оно
безошибочно указывает, где в решении спрятано предположение, и заставляет
назвать его вслух: словарь признаков (урок 50), штраф за сложность
(урок 51), архитектура, метрика, многообразие, инвариантность.
Три числа этого урока стоит помнить наизусть: доля вписанного шара в двадцати
измерениях — 2,46⋅10−8; контраст расстояний у настоящих цифр —
3,22 против 0,90 у тех же цифр с перемешанными столбцами; точность
k-NN на реальной медицинской задаче — 96,1% до и 84,4% после
добавления тысячи бессмысленных координат, причём отбор внутри пайплайна
возвращает 94,9%. Первое — про геометрию, второе — про структуру, третье —
про дисциплину. Вместе они и составляют содержание урока.