§6. Нелинейные методы понижения размерности
Круговое движение первее прямолинейного: оно проще и более совершенно.
— Аристотель
Ортогональное проецирование на подпространство первых главных компонент, осуществляемое при линейном шкалировании Торгерсона, хорошо передаёт структуру данных, когда множество точек имеет большой разброс по одним направлениям и совсем небольшой — по другим. Если же «облако» точек не похоже на многомерный эллипсоид (его конфигурация существенно нелинейна), то точки, находящиеся на разных концах конфигурации, могут при ортогональном проецировании накладываться друг на друга.
Пример 7. Проецирование вершин многомерного симплекса. Возьмём 16 групп точек по 4 точки в группе. Каждая группа генерировалась с помощью датчика случайных чисел вблизи одной из 16 вершин правильного симплекса в (см. формулу (15) в §4). У Лагутина на первую (из пятнадцати) компоненту приходится 8,3 % следа ковариационной матрицы, на вторую — 7,6 %, на обе — лишь 15,9 %. Проецирование на плоскость двух первых главных компонент не позволяет сохранить разделение на группы.
По кирпичикам: у правильного симплекса нет «длинных» и «коротких» направлений — все 15 осей равноправны, на каждую приходится около разброса. Две любые оси видят лишь картины, а остальные 13 «проекций» схлопываются друг на друга.
Смысл по-пацански: 16 компаний, каждая на своём углу, и все углы одинаково далеко друг от друга. Сфотографировать такое в 2D честной проекцией невозможно — на фото они встанут в одну кучу. Нужна не проекция, а «нарисовать по памяти».
Метод Сэммона
Для анализа подобных сложных конфигураций применяются нелинейные методы понижения размерности. Они заключаются в минимизации некоторой функции , выражающей суммарное расхождение между заданными различиями объектов и расстояниями между образами объектов в подпространстве небольшой размерности.
Наиболее простой из таких функций является
Широкое распространение получил метод Сэммона (предложен Дж. Сэммоном в 1969 г.):
который обладает свойством более точно передавать небольшие различия и менее точно — большие, так как при отображении бо́льших расстояний допустимы бо́льшие ошибки. Деление на константу нужно для инвариантности к изменению масштаба величин .
По кирпичикам: ошибка на паре делится на . Промахнулся на 1 при истинном расстоянии 2 — штраф . Промахнулся на 1 при расстоянии 100 — штраф . Сэммон бережёт ближних соседей: локальная структура важнее, чем точные дальние расстояния.
Метод Сэммона, стартовав с проекции на главные компоненты, «расталкивает» группы, и разделение на группы сохраняется на плоскости. В нашей модели (разброс вокруг вершин ) значение уменьшается примерно с 0,42 до 0,13. У Лагутина — с 0,44 до 0,13; разброс точек в книге не указан, поэтому мы его подобрали.
Для поиска минимума функции прежде всего строится начальная конфигурация точек в пространстве небольшой размерности . Это могут быть просто проекции в подпространство, образованное какими-либо из координатных осей, или в подпространство первых главных компонент, или, наконец, случайная конфигурация, в которой координат получены с помощью датчика случайных чисел.
Исходя из начальной конфигурации, отыскивается конфигурация точек, на которой достигается (локальный) минимум функции . Для этого обычно применяется
Метод сопряжённых градиентов
- Определяется направление в пространстве по формулам
где обозначает градиент минимизируемой функции , — направление на предыдущем шаге, коэффициент .
В задаче 2 предлагается проверить, что координаты градиента функции , заданной формулой (18), удовлетворяют соотношениям
где ; . Считается, что все объекты различны (). В случае совпадения образов объектов в () соответствующее слагаемое полагается равным некоторой константе , чтобы образы могли «разойтись» в процессе минимизации. 2. Производится перемещение до точки минимума по выбранному направлению (например, с помощью рассматриваемого ниже алгоритма золотого сечения): , где . 3. Если , где — достаточно малое число (скажем, ), то поиск заканчивается, иначе увеличивается на 1, и происходит возвращение к пункту 1.
Впервые метод сопряжённых градиентов был опубликован в качестве численного алгоритма для решения системы линейных уравнений с положительно определённой матрицей . Эта задача равносильна минимизации по квадратичной функции . Оказывается, что (при отсутствии погрешностей округления) метод сопряжённых градиентов позволяет найти точку минимума не более чем за итераций, где — размерность . При этом направления одномерной минимизации являются взаимно сопряжёнными относительно матрицы : при всех , что объясняет название метода.
При решении задач понижения размерности метод сопряжённых градиентов обладает по сравнению с другими методами численной минимизации рядом преимуществ:
- на каждом шаге осуществляется минимизация по выбранному направлению, что ценно ввиду большого числа оптимизируемых переменных;
- в отличие от метода Ньютона не требуется память для хранения и не расходуется время на вычисление матрицы вторых производных размера ;
- в отличие от наискорейшего спуска (см. пример 8) метод сопряжённых градиентов обычно удовлетворительно работает при минимизации «овражных» функций.
Смысл по-пацански: градиентный спуск — как мяч, пущенный в узкий овраг: каждый шаг «вниз по склону», и его кидает от стенки к стенке. Сопряжённые градиенты помнят предыдущий шаг и потому идут вдоль дна.
Пример 8. Критика метода наискорейшего спуска
Иногда в качестве направления минимизации на очередном шаге рекомендуют выбирать антиградиент , поскольку в этом направлении функция убывает быстрее всего. (В частности, для поверхности, «горы», задаваемой гладкой функцией двух переменных, антиградиент указывает направление локально наискорейшего спуска.) Однако эта «жадность» метода приводит к огромному числу смен направления при движении вдоль «дна оврага». Наглядный пример даёт поиск минимума функции Розенброка
которая определяет в трёхмерном пространстве поверхность типа серповидного ущелья с точкой минимума .
У Лагутина процесс минимизации методом наискорейшего спуска из точки надолго застрял вблизи начала координат. Не помогла бы и счастливая случайность — на одной из итераций процедура одномерного поиска неожиданно нашла второй минимум по направлению. Затем было выполнено ещё несколько сотен шагов, но ощутимого изменения целевой функции это не дало, и счёт был прерван после 1000 итераций вдали от искомого решения. Метод сопряжённых градиентов, в свою очередь, позволил дойти до точки минимума за два десятка шагов. Хорошо виден его циклический характер в случае двух переменных: движение вдоль дна ущелья подправляется перемещением по антиградиенту.
В нашей реализации (одномерный поиск — удвоение шага и золотое сечение до машинной точности) наискорейший спуск за 1000 шагов всё же добирается до точки около , но так и не доходит до . Сопряжённым градиентам (с перезапуском по антиградиенту каждые 2 шага — отсюда и «циклический характер», о котором пишет книга) хватает 33 шагов. Насколько далеко застрянет спуск, зависит от деталей одномерного поиска, а вывод тот же: на «оврагах» наискорейший спуск безнадёжно медленный.
Метод золотого сечения
Для полноты изложения приведём один из алгоритмов минимизации по направлению. Алгоритм включает следующие пункты.
-
Необходимо проверить, что — это направление убывания . Для этого зададим малый шаг (скажем, ) и вычислим при значение . Если , то заменим направление на антиградиент и будем уменьшать величину шага делением пополам до тех пор, пока не добьёмся убывания функции.
-
Определим отрезок , содержащий точку минимума функции . Положим , а для нахождения будем увеличивать шаг вдвое до тех пор, пока функция не прекратит убывать. (Для заданных выше или это обязательно произойдёт, поскольку они стремятся к при .)
При поиске точки минимума (непрерывной) функции методом золотого сечения предполагается, что унимодальна, то есть строго убывает слева от и строго возрастает справа от . Для такой функции положение точки минимума можно уточнить, вычислив в двух внутренних точках отрезка . Например, если при , то обязана находиться на отрезке . (Если нет унимодальности, то в результате применения метода золотого сечения будет найден один из локальных минимумов.)
-
На отрезке возьмём две пробные точки и , где — золотое сечение (см. решение задачи 5 главы 1), и вычислим значения и .
-
Если , то полагаем , , , , и вычисляем . В противном случае полагаем , , , , и вычисляем .
-
Если (скажем, ), то заканчиваем поиск, иначе убираем у всех переменных штрихи и возвращаемся к пункту 4.
Замечательно, что точки и осуществляют золотые сечения не только отрезка , но и отрезков и соответственно. Это позволяет вычислять всего одно значение при следующей итерации. При каждом выполнении пункта 4 длина отрезка локализации точки минимума уменьшается в раз. Всего за 10 повторов первоначальный отрезок сожмётся в раза.
По кирпичикам: почему одна точка «переиспользуется». — корень уравнения . Новый отрезок имеет длину , а старая точка отстоит от на , то есть ровно на долю новой длины — как раз там, где должна стоять новая точка .
Замечание 8. В отличие от линейного шкалирования Торгерсона (§4) метод Сэммона позволяет обрабатывать матрицы различий с пропусками. Для этого суммирование в формуле (18) достаточно проводить только для тех пар объектов, у которых различия измерены. Экспериментально установлено, что качество восстановления конфигурации будет почти таким же, как для полной матрицы, даже если доля пропусков составляет около 30 %.
Пропуски в таблицах данных
Замечание 9. О заполнении пропусков. В таблицах реальных данных, как правило, встречаются пропуски. Если обрабатывать только часть таблицы, состоящую из строк без пропусков, то может пропасть много важной информации.
С другой стороны, многим методам заполнения пропусков (средневыборочными значениями, по регрессии — см. главу 21 — и т. п.) присущи следующие два принципиальных недостатка.
- Параметры алгоритмов заполнения обычно вычисляются по присутствующим данным, что вносит зависимость между наблюдениями.
- Распределение данных после заполнения отличается от истинного. Возникает смесь истинного и вырожденных распределений с вырождением на гиперплоскостях, на которых располагаются предсказываемые значения. В частности, заполнение средними приводит к искусственному увеличению доли объектов со значениями признаков в центре совокупности.
Эти недостатки влекут смещённость и несостоятельность оценок параметров моделей при обработке заполненной таблицы данных.
В качестве альтернативы рассмотрим
Метод локального заполнения
Пусть у -й строки таблицы есть данные в столбцах с номерами , . Обозначим через множество строк , не имеющих пропусков в столбцах . Для заполнения пропуска в -й ячейке -й строки выделим в подмножество тех строк, у которых нет пропуска в -й ячейке. Если пусто, то заполнение невозможно (-ю строку придётся исключить из обработки). В противном случае найдём в строку, ближайшую к -й в смысле, скажем, евклидова расстояния в -мерном подпространстве, порождённом столбцами с номерами (если таких строк окажется несколько, то выберем одну из них случайно). Заполним пропуск значением из -й ячейки найденной строки.
Смысл по-пацански: не знаешь рост пацана — не пиши «средний рост по району». Найди того, кто на него больше всех похож по остальным данным, и возьми рост у него. Так не создаётся толпы искусственных «середнячков».
Какими статистическими свойствами обладает этот метод? Будем рассматривать строки таблицы как реализации случайных векторов . Пусть случайная величина — индикатор наличия пропуска в -м столбце -й строки. Положим , . Допустим, что:
- случайные векторы независимы и одинаково распределены;
- не зависит от (то есть пропуски не зависят от значений);
- распределение имеет -мерную плотность (см. П8);
- для всех .
Обозначим через функцию распределения вектора : , а через — эмпирическую функцию распределения, построенную по полученной методом локального заполнения таблице :
Тогда при выполнении указанных выше условий 1–4
Приведённое утверждение означает, что при неограниченном увеличении размера выборки локальное заполнение обеспечивает совпадение распределения заполненной выборки с истинным. Из него вытекает, что оценки, непрерывные в равномерной метрике, состоятельные для полных данных, будут состоятельны и для данных с пропусками после локального заполнения.
При и 30 % пропусков заполнение средним занижает коэффициент корреляции примерно с 0,70 до 0,60, а стандартное отклонение — примерно с 0,97 до 0,82. Локальное заполнение сохраняет и то и другое.