Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Dimensionality Reduction

Понижение размерности отображает данные с множеством признаков в пространство меньшей размерности, сохраняя их структуру. Для этого используют PCA, t-SNE, UMAP и автокодировщики.

Снижение размерности преобразует данные, описанные множеством признаков, в представление с гораздо меньшим числом признаков, сохраняя важную информацию: например, дисперсию данных, расстояния между точками или сведения о ближайших соседях. Цветное изображение размером 640x640 содержит более 1,2 миллиона значений пикселей, профиль экспрессии генов может включать 20 000 измерений, а эмбеддинг изображения часто имеет сотни измерений. Снижение размерности ускоряет модели машинного обучения, уменьшает риск переобучения, сокращает объём хранилища и позволяет отображать данные на графиках в двух или трёх измерениях для визуализации данных.

Зачем уменьшать число измерений#

Ричард Беллман ввёл термин «проклятие размерности» в своих работах по динамическому программированию, описывая, как усложняются задачи при добавлении измерений. Объём пространства растёт экспоненциально с добавлением каждого нового признака, поэтому фиксированный объём обучающих данных распределяется всё разреженнее. В пространстве очень высокой размерности расстояния между случайными точками становятся почти одинаковыми, что снижает эффективность методов, основанных на расстояниях, таких как k ближайших соседей и кластеризация k-means.

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

Линейные и нелинейные методы#

Анализ главных компонент (PCA), предложенный Карлом Пирсоном в 1901 году, поворачивает данные вдоль ортогональных направлений, упорядоченных по объёму объясняемой ими дисперсии, и оставляет первые несколько направлений. Доля объяснённой дисперсии показывает, сколько компонент требуется набору данных. Линейный дискриминантный анализ, предложенный Рональдом Фишером в 1936 году, использует метки классов, чтобы найти направления, лучше всего разделяющие классы. Случайная проекция умножает данные на случайную матрицу, а лемма Джонсона — Линденштрауса гарантирует, что расстояния между n точками сохранятся с заданной точностью, если взять число измерений, растущее только пропорционально логарифму n.

Нелинейные методы следуют за искривлёнными многообразиями. Isomap и локально-линейное вложение, опубликованные в Science в 2000 году, сохраняют расстояния вдоль многообразия и локальные линейные окрестности. t-SNE и UMAP располагают похожие точки рядом на двумерной карте, поэтому стали стандартными инструментами для визуализации кластеров эмбеддингов, хотя расстояния между далёкими друг от друга кластерами на таких картах мало что значат. Автоэнкодеры обучаются кодировщику, который отображает каждый вход в компактный код в латентном пространстве, и декодировщику, который его восстанавливает. В 2006 году Джеффри Хинтон и Руслан Салахутдинов показали, что глубокие автоэнкодеры дают для изображений и документов более качественные коды, чем PCA.

В этом примере изображения цифр размером 8×8 сжимают с 64 пиксельных признаков до минимального числа главных компонент, сохраняющих 90% дисперсии, а затем классифицируют цифры методом k ближайших соседей до и после сжатия:

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline

X, y = load_digits(return_X_y=True)  # 1,797 images of 8x8 pixels = 64 features

# Keep the fewest principal components that explain 90% of the variance
pca = PCA(n_components=0.90).fit(X)
print(f"Features: {X.shape[1]} -> {pca.n_components_}")

# Classify with k-nearest neighbors on the raw pixels and on the reduced features
raw = cross_val_score(KNeighborsClassifier(), X, y).mean()
reduced = cross_val_score(make_pipeline(PCA(n_components=0.90), KNeighborsClassifier()), X, y).mean()
print(f"Accuracy: {raw:.3f} with 64 features, {reduced:.3f} with {pca.n_components_}")

Двадцать одна компонента сохраняет 90% дисперсии, а точность при перекрёстной проверке меняется лишь с 0.963 до 0.959 при использовании трети признаков. Обучение PCA внутри конвейера позволяет получать проекцию только на обучающей части каждого фолда, поэтому информация из тестовых фолдов не просачивается в обучение.

Отбор и извлечение признаков#

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

Применение в компьютерном зрении#

Компьютерное зрение использует компактные представления на нескольких этапах. Проекция эмбеддингов изображений в 2D с помощью t-SNE или UMAP показывает, разделяются ли классы и где расположены выбросы, а PCA или векторное квантование сжимают эмбеддинги для векторного поиска, чтобы в памяти помещались миллионы изображений. Модели сегментации экземпляров YOLO26 встраивают эту идею в свои выходные данные: головка вычисляет 32 маски-прототипа для каждого изображения с четвертью входного разрешения и предсказывает только 32 коэффициента для каждого объекта, а маска каждого объекта представляет собой взвешенную сумму прототипов. Поэтому маска размером 160×160 для входного изображения шириной 640 пикселей, содержащая 25 600 значений, кодируется 32 числами.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения