探索无监督学习,发现未标注数据中的隐藏模式。了解聚类、异常检测及其如何赋能现代AI解决方案。
无监督学习是一种机器学习类型,其中算法无需人工干预即可从未标记数据中学习模式。与依赖标记的输入-输出对来训练模型的监督学习不同,无监督学习处理的是没有历史标签的数据。系统本质上通过发现输入数据中隐藏的结构、模式或关系来尝试自我学习。这种方法特别有价值,因为当今生成的大多数数据——图像、视频、文本和传感器日志——都是非结构化和未标记的。
在无监督场景中,算法被赋予自主权,以发现数据中有趣的结构。目标通常是建模数据的底层分布或更多地了解数据本身。由于训练期间没有提供“正确答案”,因此模型无法以传统方式评估准确性。相反,性能通常通过模型降维或将相似数据点聚类的效果来衡量。
这种方法论反映了人类学习新概念的方式。例如,一个孩子可以通过观察狗和猫的不同形状和行为来区分它们,而最初不一定知道“狗”和“猫”的名称。同样,无监督算法根据内在相似性对信息进行分组。这种能力是通用人工智能 (AGI) 发展的基础,因为它允许系统在没有持续人工监督的情况下适应新环境。
无监督学习包含几种不同的技术,每种技术都适用于不同类型的数据分析问题:
区分 无监督学习 与 监督学习 至关重要。主要区别在于所使用的数据。监督学习需要一个 标记数据集,这意味着每个训练示例都与一个正确的输出配对(例如,一张猫的图片被标记为“猫”)。模型学习将输入映射到输出以最小化误差。
相比之下,无监督学习使用未标记数据。没有反馈循环告诉模型其输出是否正确。存在一种中间方法,称为半监督学习,它结合少量标记数据和大量未标记数据来提高学习准确性,常用于数据标记昂贵或耗时的情况。
无监督学习为我们日常遇到的许多技术提供支持。以下是两个具体示例:
尽管 Ultralytics YOLO26 主要是监督式目标 detect 框架,无监督技术常用于预处理步骤,例如分析锚框分布或聚类数据集特征。下面是一个使用 sklearn 执行K-Means聚类,这是一种基本的无监督技术。
import numpy as np
from sklearn.cluster import KMeans
# Generate synthetic data: 10 points with 2 features each
X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])
# Initialize KMeans with 2 clusters (k=2)
kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto")
# Fit the model to the data (no labels provided!)
kmeans.fit(X)
# Predict which cluster each point belongs to
print(f"Labels: {kmeans.labels_}")
# Output will group the first 3 points together (0) and the last 3 together (1)
现代深度学习 (DL)正越来越多地整合无监督学习原则。像自监督学习 (SSL)这样的技术允许模型从数据中生成自己的监督信号。例如,在自然语言处理 (NLP)中,像GPT-4这样的模型在大量文本上进行预训练,以预测句子中的下一个词,从而在没有明确标签的情况下有效地学习语言结构。
同样,在计算机视觉 (CV)领域,自动编码器用于学习高效的数据编码。这些神经网络将图像压缩成低维表示,然后进行重建。这个过程使网络学习到视觉数据最显著的特征,这对于图像去噪和生成建模等任务非常有用。
对于希望管理训练数据集的用户,Ultralytics Platform提供了可视化数据分布的工具,这有助于在监督训练过程开始前识别聚类或异常。通过无监督探索理解数据结构通常是构建强大AI解决方案的第一步。

开启您的机器学习未来之旅