Узнайте, как уменьшение размерности оптимизирует рабочие процессы машинного обучения. Изучите такие методы, как PCA и t-SNE, для улучшения производительности Ultralytics и визуализации данных.
Снижение размерности — это преобразующая техника в машинном обучении (ML) и науке о данных, используемая для уменьшения количества входных переменных — часто называемых признаками или измерениями — в наборе данных с сохранением наиболее важной информации. В эпоху больших данных наборы данных часто содержат тысячи переменных, что приводит к явлению, известному как проклятие размерности. Это явление может привести к тому, что обучение модели станет вычислительно затратным, склонным к переобучению и трудным для интерпретации. Проецируя высокоразмерные данные в пространство с меньшей размерностью, специалисты могут повысить эффективность, визуализацию и прогнозируемую производительность.
Упрощение данных является фундаментальным этапом в процессе предварительной обработки данных. Оно дает ряд ощутимых преимуществ для создания надежных систем искусственного интеллекта (ИИ):
Методы уменьшения размерности обычно классифицируются в зависимости от того, сохраняют ли они глобальную линейную структуру или локальное нелинейное многообразие данных.
Наиболее распространенной линейной техникой является анализ главных компонент (PCA). PCA работает путем идентификации «главных компонент» — ортогональных осей, которые фиксируют максимальную дисперсию в данных. Он проецирует исходные данные на эти новые оси, эффективно отбрасывая измерения, которые вносят мало информации. Это основной элемент в рабочих процессах неконтролируемого обучения.
Для сложных структур данных, таких как изображения или текстовые вложения, часто требуются нелинейные методы. Такие методы, как t-Distributed Stochastic Neighbor Embedding (t-SNE) и UMAP (Uniform Manifold Approximation and Projection), отлично сохраняют локальные соседства, что делает их идеальными для визуализации высокоразмерных кластеров. Кроме того, автокодировщики — это нейронные сети, обученные сжимать входы в представление латентного пространства и восстанавливать их, эффективно обучаясь компактному кодированию данных.
Снижение размерности имеет решающее значение в различных областях глубокого обучения (DL):
Важно отличать это понятие от выбора признаков, поскольку они достигают подобных целей с помощью разных механизмов:
Следующий пример иллюстрирует, как взять высокоразмерный вывод (имитирующий вектор вложения изображения) и уменьшить его с помощью PCA. Это обычный рабочий процесс при визуализации того, как модель типа YOLO26 группирует похожие классы.
import numpy as np
from sklearn.decomposition import PCA
# Simulate high-dimensional embeddings (e.g., 10 images, 512 features each)
# In a real workflow, these would come from a model like YOLO26n
embeddings = np.random.rand(10, 512)
# Initialize PCA to reduce from 512 dimensions to 2
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(embeddings)
# Output shape is now (10, 2), ready for 2D plotting
print(f"Original shape: {embeddings.shape}") # (10, 512)
print(f"Reduced shape: {reduced_data.shape}") # (10, 2)