郭震 AI公众号:郭震AI

11 机器学习基础:监督学习与非监督学习

发布日期:

分类: 计算机视觉

预计阅读: 3 分钟

阅读: --

系列进度

计算机视觉网络教程 · 第 11 / 31

监督学习与非监督学习流程图查看大图
监督学习与非监督学习流程图

监督学习和非监督学习的区别,核心是有没有明确标签。视觉任务里,标签类型会决定你是在做分类、检测、分割还是探索数据结构。

监督学习与非监督学习实操核对图查看大图
监督学习与非监督学习实操核对图

我会先确认标签形式。文件夹名、框坐标、mask 图和无标签图片,对应的训练方式完全不同。

在计算机视觉的应用中,机器学习是核心组成部分,而在机器学习中,我们常常将算法分为两大类:监督学习非监督学习。本篇将深入探讨这两种学习方式,理解它们的基本原理和实际应用。

监督学习

定义

监督与非监督学习判断卡查看大图
监督与非监督学习判断卡

比较监督学习与非监督学习时,先看是否有标签、要预测什么、如何评估结果和适合哪些视觉任务。

监督学习是指以带标签的数据集进行训练的过程。模型学习输入数据与输出标签之间的映射关系,目标是使模型能够基于新的输入数据预测输出。

典型算法

  1. 线性回归:用于回归问题,通过拟合一条直线来预测连续值。

    示例公式:

    y=wx+by = wx + b

    其中 yy 为输出,xx 为输入特征,ww 为权重,bb 为偏置。

  • 逻辑回归:主要用于二分类问题,通过映射函数(如 Sigmoid 函数)对连续输入进行分类。

    示例公式:

    P(y=1x)=11+e(wx+b)P(y=1|x) = \frac{1}{1 + e^{-(wx + b)}}
  • 支持向量机(SVM):通过寻找最优超平面来分离不同类别的数据,适用于线性和非线性分类。

  • 案例分析

    手写数字识别:图像分类问题的典型案例是手写数字识别(MNIST 数据集)。我们使用 监督学习 方法,通过提供标记的手写数字图像来训练模型,使其能够识别新的手写数字。

    from sklearn.datasets import fetch_openml
    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.metrics import classification_report
    
    # 加载数据
    X, y = fetch_openml('mnist_784', version=1, return_X_y=True)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=42)
    
    # 使用随机森林分类器
    model = RandomForestClassifier(n_estimators=100)
    model.fit(X_train, y_train)
    
    # 预测并评估模型
    y_pred = model.predict(X_test)
    print(classification_report(y_test, y_pred))
    

    在上述代码中,我们使用了随机森林算法来处理 MNIST 数据集,并通过分类报告评估模型性能。

    非监督学习

    定义

    计算机视觉阅读地图卡查看大图
    计算机视觉阅读地图卡

    看完《机器学习基础:监督学习与非监督学习》后,建议用一分钟复盘:关键概念是否分清、练习步骤是否可复现、结论能不能换成自己的话。

    非监督学习是指在没有标签的数据集上进行模型训练,目标是寻找数据中的模式和结构。常见的方法包括聚类和降维。

    典型算法

    1. K-means 聚类:一种常见的聚类技术,通过将数据划分为 K 个簇,最小化簇内距离。

      示例公式:

      J=i=1Kj=1nx(j)μi2J = \sum_{i=1}^{K} \sum_{j=1}^{n} || x^{(j)} - \mu_i ||^2
    2. 主成分分析(PCA):用于降维,通过线性方式将数据投影到低维空间,以保留尽可能多的方差信息。

    3. 自编码器:一种神经网络架构,通过压缩输入数据,再重建回原始数据,常用于特征学习。

    案例分析

    客户细分:在市场营销中,企业可能希望根据客户行为对其进行细分,非监督学习(如 K-means)非常有效。

    from sklearn.datasets import load_iris
    from sklearn.cluster import KMeans
    import matplotlib.pyplot as plt
    
    # 加载数据
    data = load_iris()
    X = data.data
    
    # 使用 K-means
    kmeans = KMeans(n_clusters=3)
    kmeans.fit(X)
    labels = kmeans.labels_
    
    # 可视化
    plt.scatter(X[:, 0], X[:, 1], c=labels)
    plt.xlabel('特征 1')
    plt.ylabel('特征 2')
    plt.title('K-means 聚类结果')
    plt.show()
    

    在此示例中,我们通过 K-means 将鸢尾花数据集聚类,并使用散点图可视化聚类结果。

    机器学习基础:监督学习与非监督学习应用复盘卡查看大图
    机器学习基础:监督学习与非监督学习应用复盘卡

    如果《机器学习基础:监督学习与非监督学习》还没完全消化,可以从这张卡片的四个动作重新走一遍。

    机器学习基础:监督学习与非监督学习应用检查卡查看大图
    机器学习基础:监督学习与非监督学习应用检查卡

    回看《机器学习基础:监督学习与非监督学习》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。

    小结

    在计算机视觉的任务中,监督学习非监督学习各有其优势和适用场景。监督学习能够为特定任务提供精确的预测,而非监督学习则在探索数据结构与模式方面表现优异。在后面的课程中,我们将进一步探索如何评估和选择合适的模型来解决具体问题。

    敬请期待,下一篇将深入探讨模型评估与选择

    相关教程

    相关页面

    AI 教程列表

    分享文章

    转发到常用平台

    微信/朋友圈可先复制链接

    延伸教程

    AI 教程列表

    相关内容

    相关 AI 教程

    返回栏目

    Reader Messages

    读者留言

    有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

    最多 800 字

    为了防刷,每条留言会做长度、链接数量和提交频率限制。

    0/800

    留言列表

    0
    正在加载留言...