自用华为ICT云赛道AI第一章知识点-机器学习概览

机器学习算法

  • 机器学习(包括深度学习分支)是研究"学习算法"的一门学问。所谓"学习"是指:对于某类任务T和性能度量P,一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E学习。
  • 深度学习是机器学习的一个特定分支,要想充分理解深度学习,必须对机器学习的基本原理有深刻的理解。
    • 任务T:机器学习系统应该如何处理样本。
    • 性能度量P:评估机器学习算法的能力。如准确率、错误率。
    • 经验E:大部分学习算法可以被理解为在整个数据集上获取经验。有些机器学习的算法并不是训练于一个固定的数据集上,例如强化学习算法会和环境交互,所以学习系统和它的训练过程会有反馈回路。根据学习过程中的不同经验,机器学习算法可以大致分为无监督算法和监督算法。
  • 学习下围棋问题:
    • 经验E1:自己和自己对弈--无监督、间接学习
    • 经验E2:自对弈过程中询问人类--半监督学习
    • 经验E3:人类历史对弈--有监督、直接学习
  • 手写识别问题:任务T:识别手写文字。性能标准P:分类准确率。经验E:已分类样例库(有监督、直接学习)。
  • 机器人的上进心:寻找新的棋局,同样的局面下通过微小变化来磨砺技能,等效于扩充了训练样例。

机器学习算法与传统基于规则的区别

什么时候该使用机器学习

  • 问题的解决方案很复杂,或者涉及到大量没有明确分布函数的数据。
  • 遇到如下情况,可以考虑使用机器学习:

机器学习算法的理性认识

  • 目标函数床知,学习算法无法得到一个完美的函数f
  • 假设函数g逼近函数f,但是可能和函数不同

机器学习解决的主要问题

  • 机器学习可以解决多种类型的任务,下面列出常见的三种:
    • 分类:计算机程序需要指定输入属于k类中的哪一类。为了完成这个任务,学习算法通常会输出一个函数f:R"→(1,2,..,k)。比如计算机视觉中的图像分类算法解决的就是一个分类任务。
    • 回归:这类任务中,计算机程序会对给定输入预测输出数值。学习算法通常会输出一个函数f:R"→R,这类任务的一个示例是预测投保人的索赔金额(用于设置保险费),或者预测证券未来的价格。
    • 聚类:对大量未知标注的数据集,按数据的内在相似性,将数据划分为多个类别,是类别内的数据相似度较大,而类别间的相似性比较小。可以被运用在图片检索,用户画像等场景中。
  • 分类和回归是预测问题的两种主要类型,分类的输出是离散的类别值,而回归的输出是连续数值。

机器学习分类

  • 监督学习:利用已知类别的样本,训练学习得到一个最优模型,使其达到所要求性能,再利用这个训练所得模型,将所有的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,即可以对未知数据 进行分类。

  • 无监督学习:对于没有标记的样本,学习算法直接对输入数据集进行建模,例如聚类,即"物以类聚,人以群分"。我们只需要把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。

  • 半监督学习:在一个任务中,试图让学习器自动地对大量未标记数据直接帮助少量有标记数据进行模型训练。

  • 强化学习:学习系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统如何去产生正确的动作。

  • 随着算法的发展,除以上学习方式以外,还有自监督学习、对比学习、生成式学习等。

    • 监督学习:通俗的来讲,我们给计算机一堆选择题(训练样本),并同时提供了它们的标准答案,计算机努力调整自己的模型参数,希望自己推测的答案与标准答案越一致越好,使计算机学会怎么做这类题。然后再让计算机去帮我们做没有提供答案的选择题(测试样本)。
    • 非监督学习:通俗的来讲,我们给计算机一堆选择题(训练样本),但是不提供标准答案,计算机尝试分析这些题目之间的关系,对题目进行分类,计算机也不知道这几堆题的答案分别是什么,但计算机认为每一个类别内的题的答案应该是相同的。
    • 半监督学习:传统监督学习通过对大量有标记的训练样本进行学习以建立模型用于预测新的样本的标记。例如,在分类任务中标记就是样本的类别,而在回归任务中标记就是样本所对应的实值输出。随着存储数据能力的高度发展,在很多实际任务中可以容易地获取大批未标记数据,而对这些数据赋予标记则往往需要耗费大量的人力物力。例如,在进行Web网页推荐时,需请用户标记出感兴趣的网页,但很少有用户愿意花很多时间来提供标记,因此有标记的网页数据比较少,但Web上存在着无数的网页,它们都可作为未标记数据来使用。
    • 强化学习:通俗的来讲,我们给计算机一堆选择题(训练样本),但是不提供标准答案,计算机尝试去做这些题,我们作为老师批改计算机做的对不对,对的越多,奖励越多,则计算机努力调整自己的模型参数,希望自己推测的答案能够得到更多的奖励。不严谨的讲,可以理解为先无监督后有监督学习。

监督学习

监督学习-回归问题

  • 回归:反映了样本数据集中样本的属性值的特性,通过函数表达样本映射的关系来发现属性值之间的依赖关系。
    • 下周股票能给我带来多少收益?
    • 周二的温度会是多少摄氏度?

监督学习-分类问题

  • 分类:分类问题属于有监督学习,通过分类模型,将样本数据集中的样本映射到某个给定的类别中。
    • 饮料瓶属于哪一类垃圾?
    • 收到的邮件是否是垃圾邮?

无监督学习

无监督学习-聚类问题

  • 聚类:通过聚类模型,将样本数据集中的样本分为几个类别,属于同一类别的样本相似性比较大。
    • 找出相同族类的鱼?
    • 为用户推荐可能喜欢的电影?

半监督学习

强化学习

  • 模型感知环境,做出行动,根据状态与奖惩做出调整和选择。
  • 强化学习通过一系列的行动最大化"奖励函数"来学习模型,
  • 不管是好行为还是坏行为都可以帮助强化学习模型学习
  • 例子,自动驾驶汽车通过不断与环境交互来学习

强化学习-最佳行为

  • 强化学习:强化学习总是在寻找什么样的行动才是最佳的?
  • 自动驾驶汽车:黄灯开始闪了,是刹车还是加速通过?
  • 对于一个吸尘机器人,电量剩余10%,还剩一小块区域未进行打扫,是继续吸尘还是回去充电?

机器学习的整体流程

机器学习基本概念-数据集

  • 数据集:在机器学习任务中使用的一组数据,其中的每一个数据称为一个样本。反映样本在某方面的表现或性质的事项或属性称为特征。
  • 训练集:训练过程中使用的数据集,其中每个样本称为训练样本。从数据中学得模型的过程称为学习(训练)。
  • 测试集:学得模型后,使用其进行预测的过程称为测试,使用的数据集称为测试集,每个样本称为测试样本。

数据概览

典型的数据集的样式

数据处理的重要性

  • 数据对于模型来说就是至关重要的,是模型能力的天花板,没有好的数据,就没有好的模型。

数据清理

  • 大部分的机器学习模型所处理的都是特征,特征通常是输入变量所对应的可用于模型的数值表示。
  • 大部分情况下,数据需要经过预处理后才能够为算法所使用,预处理的操作主要包括以下几个部分:
    • 数据过滤
    • 处理数据缺失
    • 处理可能的错误或者异常值
    • 合并多个数据源数据
    • 数据汇总

"脏"数据

  • 真实的数据中通常会出现一些数据质量问题:
    • 不完整:数据中缺少属性或者包含一些缺失的值。
    • 多噪音:数据包含错误的记录或者异常点。
    • 不一致:数据中存在矛盾的、有差异的记录。

数据的转换

  • 对数据进行初步的预处理后,需要将其转换为一种适合机器学习模型的表示形式,以下是一些常见的数据转化的形式。
    • 在分类问题中,将类别数据编码成为对应的数值表示。
    • 数值数据转换为类别数据以减少变量的值(对年龄分段)。
    • 其他数据:
      • 在文本中,通过词嵌入将词转化为词向量(一般使用word2vec模型,BERT模型等)。
      • 处理图像数据(颜色空间,灰度化,几何变化,haar特征等,图像增强)。
    • 特征工程:
      • 对特征进行归一化、标准化,以保证同一模型的不同输入变量的值域相同。
      • 特征扩充:对现有变量进行组合或转换以生成新特征,比如平均数。

特征选择的必要性

  • 通常情况下,一个数据集当中存在很多种不同的特征,其中一些可能是多余的或者与我们要预测的值无关的。
  • 特征选择技术的必要性体现在:

特征选择的方法-Filter

  • 过滤法(Filter)在选择特征的时候是独立的,与模型本身无关。

特征选择的方法-Wrapper

  • 包装器(Wrapper)方法使用一个预测模型来对对特征子集进行评分。

特征选择的方法-Embedded

  • 嵌入法(Embedded)的方法将特征选择作为模型构建的一部分。
  • 强调利用了模型的惩罚属性,对不重要的特征就行消除

有监督学习示例-学习阶段

  • 使用分类模型来判断,在特定特征下这个人是否是篮球运动员。

有监督学习示例-预测阶段

  • 这里的模型可以认为是类似与决策树模型

什么是好的模型?

模型的有效性

  • 泛化能力:机器学习的目标是使学得的模型能够很好的适用于新的样本,而不是仅仅在训练样本上工作的很好,学得的模型适用于新样本的能力称为泛化能力,也称为鲁棒性。

  • 误差:学习到的模型在样本上的预测结果与样本的真实结果之间的差。

    • 训练误差:模型在训练集上的误差。
    • 泛化误差:在新样本上的误差。显然,我们更希望得到泛化误差小的模型。
  • 欠拟合:如果训练误差很大的现象。

  • 过拟合:如果学得的模型的训练误差很小,而泛化能力较弱即泛化误差较大的现象。

    • 一旦给定了问题假定的形式,所有可能的函数构成了一个空间,我们称之为假设空间。机器学习的问题可以看做是在假设空间中搜索合适的拟合函数的问题。
    • 过拟合:过于复杂的数学模型比较容易发生过拟合,适当简化数学模型、在过拟合前提前结束训练、采用Dropout/Weight Decay手段等,可以减轻过拟合现象。
    • 欠拟合:过于简单的数学模型,或训练时间太短,则可能引起欠拟合。对于前者,需使用更复杂的模型,对于后者,只需延长训练时间,即可有效缓解欠拟合现象。
  • 模型的容量:指其拟合各种函数的能力,也称为模型的复杂度。

    • 容量适合于执行任务的复杂度和所提供训练数据的数量时,算法效果通常会最佳;
    • 容量不足的模型不能解决复杂任务,可能出现欠拟合;
    • 容量高的模型能够解决复杂的任务,但是其容量高于任务所需时,有可能会过拟合。
  • 有效容量受限于算法、参数、正则化等。

过拟合的原因-误差

  • 最终预测的总误差=偏差2+方差+不可消解的误差
  • 预测误差总的来说可以被拆解出两种主要的我们需要关注的子形式:
    • 来源于"偏差"的误差
    • 来源于"方差"的误差
  • 方差(Variance):
    • 模型的预测结果在均值附近的偏移的幅度
    • 来源于模型在训练集上对小波动的敏感性的误差
  • 偏差(Bias) :
    • 模型的预期(或平均)预测值与我们试图预测的正确值之间的差异。
  • 关于不可消解的误差
    • 理论上来说,如果有无限量的数据与完美的模型,这个不可消解的误差是可以被消解的,
    • 但实际上所有模型都是不完美的,并且我们的数据量是有限的

方差与偏差

  • 以下四种形式表示了方差与偏差不同组合方式:
    • 低偏差&低方差好模型
    • 低偏差&高方差→欠优模型
    • 高偏差&低方差→欠优模型
    • 高偏差&高方差→不良模型
  • 理想状态下,我们想要选择一个模型,它既能准确地捕获训练数据中的规律,又能很好地概括不可见数据(即新数据)。但是,通常我们不可能同时完成这两件事。

模型的复杂度与误差

  • 随着模型复杂度上升的增加,训练误差逐渐减小。
  • 同时,测试误差会随着复杂的增大而减小到某一点,继而反向增大,形成一条凸曲线。

机器学习的性能评估-回归

机器学习的性能评估-分类

机器学习性能评估举例

  • 我们训练了一个机器学习的模型用来识别图片中是不是一只猫,现在用200张图片来验证下模型的性能指标。这200张图片中,170张是猫,30张不是猫。模型的识别结果为160张是猫,40张不是猫。

机器学习训练方法-梯度下降

  • 梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,该方向为当前位置最快下降方向,公式如下:
  • 其中η成为学习率,i表示第i条数据。权重参数w每次迭代变化的大小。
  • 收敛:目标函数的值变化非常小或达到最大迭代次数。
  • 通常情况下,在接近目标点区域的极小范围内,下降的幅度是越来越小的。但是,在目标点一定范围内可能存在梯度不稳定的情况。

模型中的参数与超参数

  • 模型中不但有参数,还有超参数的存在。其目的是为了让模型能够学习到最佳的参数。
    • 参数由模型自动学习;
    • 超参数由人工手动设定。

模型的超参数

  • 参数作为模型从历史训练数据中学到的一部分,是机器学习算的关键。有以下特征:
    • 进行模型预测时需要模型参数。
    • 模型参数值可以定义模型功能。
    • 模型参数用数据估计或数据学习得到。
    • 模型参数一般不由实践者手动设置。
    • 模型参数通常作为学习模型的一部分保存。
  • 模型参数的一些例子包括:
    • 人造神经网络中的权重。
    • 支持向量机中的支持向量。
    • 线性回归或逻辑回归中的系数。

超参数的搜索过程及方法

超参数的调节方法-网格搜索

  • 网格搜索尝试穷举搜索所有可能的超参数组合形成超参数值网格。
  • 在实践中,人工指定的范围和步骤之间的值。
  • 网格搜索是一种昂贵且耗时的方法。
    • 这种方法在超参数数目相对较少的情况下工作良好。因此一般机器学习算法中可行,但在神经网络等情况下就行不通了(见深度学习部分)。

超参数的调节方法-随机搜索

  • 在超参数搜索空间较大的情况下,采用随机搜索,会优于网格搜索。
  • 随机搜索实现了对参数的随机搜索,其中每个设置都是从可能的参数值的分布中进行取样,试图找出最佳的参数子集。
  • 注意:
    • 首先在一个粗范围内搜索,然后根据最佳结果出现的位置,缩小范围。
    • 某些超参数比其他的更加重要,随机搜索过程中会影响搜索的偏向。

交叉验证

  • 交叉验证:是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据进行分组,一部分作为训练集,另一部分作为验证集,首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以此来做为评价分类器的性能指标。

  • k-折交叉验证(K-CV):

    • 将原始数据分成k组(一般是均分)。
    • 将每个子集数据分别做一次验证集,其余的k一1组子集数据作为训练集,这样会得到k个模型。
    • 用这k个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。
  • 将数据集分成固定的训练集和固定的测试集后,若测试集的误差很小,这将是有问题的。一个小规模的测试集意味着平均测试误差估计的统计不确定性。使得很难判断算法A是否比算法B在给定任务上做得更好。当数据集有十万计或者更多的样本时,这不会是一个严重的问题。当数据集太小时,也有替代方法允许我们使用所有的样本估计平均测试误差,代价是增加计算量。

  • k-折交叉验证:k一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2。K一CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性。

相关推荐
张较瘦_10 分钟前
[论文阅读] 人工智能 | 读懂Meta-Fair:让LLM摆脱偏见的自动化测试新方法
论文阅读·人工智能
巴伦是只猫1 小时前
【机器学习笔记 Ⅲ】4 特征选择
人工智能·笔记·机器学习
好心的小明1 小时前
【王树森推荐系统】召回11:地理位置召回、作者召回、缓存召回
人工智能·缓存·推荐系统·推荐算法
lishaoan771 小时前
使用tensorflow的线性回归的例子(十二)
人工智能·tensorflow·线性回归·戴明回归
二DUAN帝2 小时前
UE实现路径回放、自动驾驶功能简记
人工智能·websocket·机器学习·ue5·自动驾驶·ue4·cesiumforue
zskj_zhyl2 小时前
AI健康小屋“15分钟服务圈”:如何重构社区健康生态?
大数据·人工智能·物联网
荔枝味啊~2 小时前
相机位姿估计
人工智能·计算机视觉·3d
陈纬度啊3 小时前
自动驾驶ROS2应用技术详解
人工智能·自动驾驶·unix
开开心心_Every4 小时前
全能视频处理工具介绍说明
开发语言·人工智能·django·pdf·flask·c#·音视频
xunberg4 小时前
AI Agent 实战:将 Node-RED 创建的 MCP 设备服务接入 Dify
人工智能·mcp