一、监督学习

机器基于人类输入的特征向量及对应的正确标签,从这些有限的训练数据中学习出最优模型,对已知与未知数据做出最准确的预测。

监督学习由模型、算法、策略三要素组成:

  • 模型(Model):模型的假设空间,表示要学习的条件概率分布或决策函数

  • 策略(Strategy):模型选择的准则,定义了从假设空间中选择最优模型的准则,例如通过最小化损失函数。

  • 算法(Algorithm):模型学习的算法,指的是学习模型的具体计算方法,例如梯度下降法、拟牛顿法等

主要解决三类问题:

  • 回归问题 (Regression)

    • 目的是预测连续的输出值。

    • 例如,根据房屋的尺寸、卧室数量等特征来预测房价,或预测未来某个公司的股票价格。

  • 分类问题 (Classification)

    • 目的是预测离散的输出值或类别。

    • 例如,判断肿瘤是恶性的 (1) 还是良性的 (0),识别图片是猫还是非猫,或将邮件分类为垃圾邮件或非垃圾邮件。输出可能不止两个离散值,例如区分三种乳腺癌 (0, 1, 2, 3)。

  • 标注问题 (Annotation)

    • 介于分类和回归之间,旨在预测一个序列的输出标记。

    • 例如,自然语言处理中的词性标注(给定一个单词序列,预测其对应的词性标记序列)。分类问题可以被视为标注问题的特殊情况

(一)回归问题

  1. 线性回归

以x作为输入特征,y作为输出的预测值,则h(hypothesis)为x与y之间的函数映射。

在实际处理中,需要将数据集喂给机器,得到算法h,再将特征x输入,通过h预测输出值y。

对于h,一般表达为:h(x)=a+bx

h(x)=a+bx,因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。

对于单变量线性回归,函数h(x)=a+bx,则需要确定a与b的值,图像化反映为直线的截距与斜率。

为了降低模型预测值与训练集数据的差距,即降低建模误差,需要选择使得建模误差的平方和最小(因为差距有正有负,直接相加会相互抵消)的模型参数(a,b),即使得代价函数 J 最小。

代价函数展开是一个二元二次函数,图形化是一个三维曲面(二次曲面),具有严格凸函数特征,我们需要寻找三维曲面中的最小值,使得代价函数最小,即所有预测值的误差平方和最小。

  1. 梯度下降算法

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数 J(𝜃0,𝜃1) 的最小值。

梯度下降是核心思想是以局部信息找到全局最优,如“盲人下山”一般,选择当前节点能让代价函数下降最多的参数组合,不断积累,直到得到局部最小值(local minimum)

由于没有遍历所有的参数组合,所以不能确定我们得到的局部最小值是否是全局最小值(glogal minimum)。

因此,选择不同的初始参数组合,可能会找到不同的局部最小值。

在梯度下降的算法中,对𝜃赋值,使得𝐽(𝜃)按梯度下降最快方向进行,一直迭代下去,最终得到局部最小值。

其中𝑎学习率(learning rate),它决定我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。

作为关键参数:

  • α过小:虽然能稳定收敛,但速度太慢,可能陷入局部最小

  • α过大:虽然快速下降,但不一定能稳定收敛,甚至发散

同时,由于贴近最优点时,梯度导数趋近于0,此时梯度下降会选择越来越小的幅度,并逐渐收敛至局部最小值。

对于具有凸函数特征(代价函数具有唯一最小值,最小值两侧函数斜率方向一致)的线性回归而言,曲线中只有一个最低点,因此此时收敛的局部最小值即全局最小值

但对于其它非凸函数而言,局部最小未必等于全局最小。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐