本篇关键词:损失函数/代价函数/误差函数、梯度下降、学习率、Momentum(动量)
损失函数也可以理解为代价函数,机器学习中通常指同一种东西
【梯度下降】3D可视化讲解通俗易懂
5分钟深度学习-01 梯度下降算法
72 优化算法【动手学深度学习v2】
梯度下降算法,拿最简单的线性拟合的例子,首先随机取一条直线 y=wx+b 计算每个真实数据点 xi 和预测值 yi 的差值的平方和,对所有点求和,然后求一个平均,其实就是在求样本的 MSE 均方误差。
MSE 越小代表直线对整体点的拟合效果越好,任务就是求 MSE 这个式子的最小值。
进行整理后发现,可以将这个式子变为一个二次函数的形式,最小值即对称轴所在点。
而机器学习中不能一下看出来,所以采取 GD 算法通过逐步迭代找出这个最小值
权重w = w - 学习率 x 梯度
梯度下降步骤:1. 定义损失函数 2. 选择起始点 3. 计算梯度 4. 按照学习率前进
重复3,4,直到找到最低点
三种梯度下降
梯度下降(Gradient Descent):使用所有样本进行梯度下降,更新方向正确,但计算成本高
随机梯度下降(Stochastic GD):每次只使用一个样本进行梯度下降,更新快,可以跳出局部最优解,但方向不稳定,可能永远不会收敛
小批量样本梯度下降(Mini Batch GD):每次使用小批量样本进行梯度下降,结合GD和SGD的优点,较稳定,且更新迭代较快,能跳出局部最优解
什么是小批量梯度下降,和批量梯度下降、随机梯度下降有什么不同
能使用 SGD 和 Mini Batch GD 都是因为导数是线性可加的,可以求多次梯度进行迭代
🔺目前,小批量样本梯度下降即为 ML、DL 中的默认方法。因为现在的项目数据量通常都很大,无法一次输入内存,需要通过设置 batch size 来决定一次参数更新所用的样本数量。
🔺Adam:是 SGD 的优化版本,目前使用最广泛的优化算法,一般情况下使用 Adam 都没有问题
怎么通俗易懂的理解SGD中Momentum的含义?
深度学习各类优化器详解(动量、NAG、adam、Adagrad、adadelta、RMSprop、adaMax、Nadam、AMSGrad)
Q:模型评估方法和损失函数使用的函数是否相同?
A:在深度学习中,模型评估方法和损失函数使用的函数通常是不同的,
尽管有些情况下可能会相同或者有所重叠。这两者之间的主要区别在于它们的目的和应用场景:
1. 损失函数(Loss Functions):
- 目的:损失函数是在模型训练过程中使用的,目的是量化模型预测的好坏。
损失函数衡量的是模型预测值和实际值之间的不一致程度。
训练深度学习模型的目标就是通过优化算法(如梯度下降)最小化这个损失函数。
- 常见例子:均方误差(MSE)用于回归任务,交叉熵损失用于分类任务,
以及其他更专业的损失函数,如对抗损失、对比损失等,它们适用于特定类型的深度学习任务。
2. 模型评估方法(Evaluation Metrics):
- 目的:模型评估方法用于在模型训练完成后评估模型的性能。
这些评估指标帮助我们理解模型在实际应用中的表现,比如它的准确度、召回率、F1 分数等。
- 常见例子:对于分类问题,常用的评估指标包括准确率、精确率、召回率和 F1 分数等。
对于回归问题,常用的评估指标包括均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)等。
虽然某些函数既可以用作损失函数也可以用作评估指标(例如,均方误差可以用作回归任务的损失函数,
也可以用来评估回归模型的性能),但它们的用途和上下文是不同的。
评估指标通常被选用来直观地反映模型的性能,而不一定是为了指导模型的训练过程。
此外,一些评估指标(如准确率或F1 分数)并不总是可导的,因此不适合直接用作损失函数进行模型优化。
MSE 和 方差的辨析
均方误差(Mean Squared Error, MSE)和方差(Variance)是两个相关的概念,但它们并不相同。
均方误差(MSE) 是一种用于衡量模型预测值与实际值之间差异的指标。它是预测值
与实际值
之差的平方的平均值,公式如下:
方差(Variance) 是统计学中衡量一组数据分散程度的指标。它是各个数据点
与数据平均值
之差的平方的平均值,公式如下:
`拓展阅读`
[SGD有多种改进的形式(RMSprop,Adadelta等),为什么大多数论文中仍然用SGD?](https://www.zhihu.com/question/42115548/answer/1636798770)
[PyTorch学习之 torch.optim 的6种优化器及优化算法介绍](https://blog.csdn.net/qq_36589234/article/details/89330342)