【Datawhale X 李宏毅苹果书 AI夏令营】Task1:《深度学习详解》1.1

102 阅读5分钟

机器学习(Machine Learning,ML)

机器学习就是让机器具备找一个函数的能力。

1、回归 Regression

Regression:The function outputs a scalar.

回归类似做填空题。

2、分类 Classification

Classification:Given options(classes), the function outputs the correct one.

分类类似做选择题。

3、结构化学习 Structured learning

产生有结构的物体,例如画一幅画、写一篇文章。

回归方法与分类方法的区别?

(1)回归预测的是连续数值,而分类预测的是离散的类别。

(2)回归任务常用MSE、RMSE、MAE等指标来评估性能;而分类任务则使用准确率、精确率、召回率、F1分数等。

(3)回归任务通常使用MSE或MAE作为损失函数,而分类任务则使用交叉熵损失。

(4)回归更多地应用于需要预测具体数值的场景,类似填空题,如销售预测、股票价格预测等;分类则更多用于需要确定类别归属的场景,类似选择题,如文本分类、图像识别等。

找函数的过程

1、写出一个带有未知参数的函数f

带有未知的参数(parameter)的函数称为模型(model)

已知的x称为特征(feature)

与x有关的参数w称为权重(weight)

与x无关的参数b称为偏置(bias)

2、定义损失(Loss)

损失函数(Loss Function)是衡量模型预测值与实际值之间差异的标准。

  1. 回归问题中的损失函数:

    • (1)均方误差 (MSE, Mean Squared Error)

      适用于数值预测问题,计算的是预测值与真实值之间的平方差的平均值。

    • (2)均方根误差 (RMSE, Root Mean Squared Error)

      MSE的平方根形式,使得误差以相同的单位表示。

    • (3)平均绝对误差 (MAE, Mean Absolute Error)

      计算预测值与真实值之间绝对差的平均值,不考虑误差的方向。

    • (4)平均绝对百分比误差 (MAPE, Mean Absolute Percentage Error)

      表示预测误差相对于真实值的百分比,适用于比较不同尺度的数据集。

    • (5)Huber 损失

      在误差较小时使用平方形式,在误差较大时使用线性形式,可以减少异常值的影响。

  2. 分类问题中的损失函数:

    • (1)交叉熵损失 (Cross-Entropy Loss)

      常用于二分类或多分类问题中,特别是当输出层使用sigmoid或softmax激活函数时。

    • (2)对数损失 (Log Loss)

      对数形式的交叉熵损失,常用于概率输出的评估。

    • (3)Hinge 损失

      常用于支持向量机 (SVM),用于最大化类别间的间隔。

3、解最优化问题

梯度下降:用于寻找函数的局部最小值(在凸函数中则是全局最小值)。这个过程涉及到迭代地更新参数,以便沿着函数梯度(或者说导数)的负方向移动,从而逐渐减少函数的值。

  1. 梯度

    • 在数学中,梯度是一个多元函数的向量,由各个变量的偏导数组成。
    • 对于一个函数 f(θ)f(θ) ,梯度 f(θ)∇f(θ) 是一个向量,其中每个元素是 f(θ)f(θ) 关于 θθ 中相应变量的偏导数。
    • 梯度指向函数值增加最快的方向。
  2. 梯度下降的基本思想

    • 梯度下降的目标是最小化一个函数 f(θ) f(θ)

    • 我们从一个初始点开始,并沿着梯度的负方向更新 θθ

    • 更新公式: θk+1=θkηf(θk)θk+1 = θk − η⋅∇f(θk)

  3. 学习率 (ηη)

    • 学习率决定了我们沿着梯度方向移动的步长。
    • 如果学习率太大,我们可能会在最小值周围“跳跃”,导致算法无法收敛。
    • 如果学习率太小,算法可能需要很多次迭代才能达到最小值,这会使收敛过程变得非常缓慢。
  4. 迭代过程

    • 梯度下降是一个迭代过程,我们在每一步中根据当前点的梯度来更新参数。
    • 迭代继续进行,直到满足某个停止标准,例如梯度足够小或者达到预定的最大迭代次数。
  5. 梯度下降的变体

    • 批量梯度下降 (Batch Gradient Descent) :在每一次迭代中,使用所有训练样本来计算梯度。
    • 随机梯度下降 (Stochastic Gradient Descent, SGD) :在每一次迭代中,仅使用一个训练样本来估计梯度。
    • 小批量梯度下降 (Mini-Batch Gradient Descent) :在每一次迭代中,使用一部分训练样本来估计梯度,这是批量梯度下降和随机梯度下降的折中方案。

为什么在深度学习中,小批量梯度下降(mini-batch gradient descent)相比于大批量梯度下降,可能在测试时表现更好?

A. 小批量更新更稳定。

B. 小批量有助于减少过拟合。

C. 小批量可以更快地完成训练。

D. 小批量可以减少内存的使用。

具体来说:

  • A. "小批量更新更稳定" — 小批量梯度下降的更新通常比批量梯度下降更加不稳定,因为它们受到随机性的更大影响。
  • B. "小批量有助于减少过拟合" — 这个选项是合理的,因为小批量梯度下降由于其固有的随机性,可以在一定程度上模拟正则化的效果,从而有助于减少过拟合。
  • C. "小批量可以更快地完成训练" — 这与测试时的表现好坏没有直接关联。
  • D. "小批量可以减少内存的使用" — 这与测试时的表现好坏没有直接关联。

学习链接: