当前位置: 首页> 游戏> 手游 > 个人网站设计毕业论文摘要_室内设计考研_他达拉非的副作用和危害_广告营销包括哪些方面

个人网站设计毕业论文摘要_室内设计考研_他达拉非的副作用和危害_广告营销包括哪些方面

时间:2025/7/11 8:40:45来源:https://blog.csdn.net/zjs246813/article/details/143966931 浏览次数:0次
个人网站设计毕业论文摘要_室内设计考研_他达拉非的副作用和危害_广告营销包括哪些方面

目录

1 损失函数

1.1 MAE Loss(平均绝对误差损失)

1.2 MSE Loss(均方误差损失)

1.3 CrossEntropyLoss(交叉熵损失)

2 优化方法(计算梯度)

2.1 随机梯度下降法(SGD)

2.2 动量法(Momentum)

2.3 自适应学习率方法


1 损失函数

        损失函数可以用来衡量模型拟合程度,通过计算模型预测的输出与实际标签之间的差异可以获得一个损失值,然后最小化这个损失值,我们可以驱使模型不断学习和改进,直至达到满意的预测精度。

下图中函数y=wx+b\widehat{y}是训练后得到的函数,然后定义损失函数L(b,w)=\frac{1}{N}\sum_{1}^{n}|y_{i}-\widehat{y_{i}}|  L(b,w)=\frac{1}{N}\sum_{1}^{n}(y_{i}-\widehat{y_{i}})^{2}其中MAE是平均绝对值误差,MSE是均方误差,wb是损失函数的两个自变量,函数训练得到的两个参数

1.1 MAE Loss(平均绝对误差损失)

  • 定义:计算预测值与真实值之间差的绝对值的平均。
  • 特点
    • 鲁棒性:对异常值相对鲁棒,因为对误差的惩罚是线性的。
    • 稀疏性:在某些情况下可以导致模型参数的稀疏性。
    • 不可微:在特定点处不可微,但实际应用中通常不是问题。
  • 使用场景:适用于回归问题、异常值不敏感的情况以及特征选择。

1.2 MSE Loss(均方误差损失)

  • 定义:衡量预测值与真实值之间差异的平方的平均值。
  • 特点
    • 敏感性:对大的预测误差给予更大的惩罚。
    • 可微性:在整个定义域上连续且可微。
    • 凸性:是一个凸函数,没有局部最小值。
  • 使用场景:适用于回归问题,尤其是当数据集中的异常值不是主要关注点时。

1.3 CrossEntropyLoss(交叉熵损失)

  • 定义:在多分类问题中广泛使用。
  • 特点
    • 无需手动应用Softmax。
    • 类别不平衡处理:可以通过weight参数为不同类别设置权重。
    • 忽略类别:可以使用ignore_index参数指定一个类别在计算损失时被忽略。
  • 使用场景:适用于多分类问题,如图像分类、文本分类、语音识别等领域。

损失函数使用场景,仅供参考

参考文档

深度学习之常见损失函数(详细讲解定义、数学公式、实现代码)icon-default.png?t=O83Ahttps://blog.csdn.net/a910247/article/details/137481105

2 优化方法(计算梯度)

        在上文中我们了解了损失函数是怎么样的,接下来我们将通过优化方法来获得一个较佳尽可能小的损失值

2.1 随机梯度下降法(SGD)

  • 基本原理:SGD每次迭代只使用一个或几个样本来计算损失函数的梯度,并更新模型参数。
  • 优点:计算效率高,适用于大规模数据集。
  • 缺点:容易陷入局部最优解,且收敛速度可能较慢。

2.2 动量法(Momentum)

  • 基本原理:在SGD的基础上引入动量项,通过积累之前的梯度来加速收敛过程。
  • 优点:可以加快收敛速度,并有助于跳出局部最优解,类似惯性一样。
  • 缺点:需要额外存储动量信息,增加了内存开销。

2.3 自适应学习率方法

  • AdaGrad:为每个参数分配独立学习率,自动调整学习步伐。但可能会因为累积过大而导致学习率过早地变得极小。
  • RMSProp:修改了AdaGrad的累积方式,引入衰减系数避免过重的惩罚。能有效处理非稳态目标函数。
  • Adam:结合了Momentum和RMSProp的优点,考虑了一阶矩和二阶矩的估计。能自动调整学习率,适用于大规模数据和参数场景。

以梯度下降法为例,下图中假设该损失函数只涉及一个自变量w,易于求得该损失函数的梯度得到一个较佳的损失值

而实际中,一个损失函数涉及大量自变量(参数),直接求偏导太复杂,可以根据链式法则通过反向传播方法计算

输入x^{n}到模型中得到y^{n}y^{n}与实际值\widehat{y}^{n}的损失为C^{n},然后求损失函数对自变量w、b的偏导,这里以求对w的偏导为例

由链式法则有\frac{\partial C}{\partial w}=\frac{\partial Z}{\partial w}\frac{\partial C}{\partial Z},其中\frac{\partial Z}{\partial w}通过前向传播计算,\frac{\partial C}{\partial Z}通过反向传播计算

\frac{\partial C}{\partial Z}也是通过链式法则计算,层层推导出要求得每个\frac{\partial C^{i}}{\partial Z^{i}}(其它的式子比较好求),最后要求得最终输出层的\frac{\partial C^{n}}{\partial Z^{n}},而\frac{\partial C^{n}}{\partial Z^{n}}=\frac{\partial y^{n}}{\partial Z^{n}}\frac{\partial C^{n}}{\partial y^{n}},且\frac{\partial y^{n}}{\partial Z^{n}}\frac{\partial C^{n}}{\partial y^{n}}是比较好求的,由后往前计算出每个\frac{\partial C^{i}}{\partial Z^{i}},最终得到\frac{\partial C}{\partial Z},再根据\frac{\partial C}{\partial w}=\frac{\partial Z}{\partial w}\frac{\partial C}{\partial Z}乘以前向传播得到\frac{\partial Z}{\partial w}得到\frac{\partial C}{\partial w},即损失函数对参数w的偏导,同理参数b也是如此,最后计算出损失函数的梯度

最后一层即输出层,计算\frac{\partial C^{n}}{\partial Z^{n}}

写得不是很清楚,可以参考下以下视频

李宏毅 To Learn More - 反向传播(Backpropagation)icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1Wv411h7kN?p=14&vd_source=b527e2490f539f0818d1929e85ae3bca&spm_id_from=333.788.videopod.episodes

# 参数设置
# 学习率
learning_rate = 0.001
# 动量
momentum = 0.5# 设置损失函数和优化算法
criterion = torch.nn.CrossEntropyLoss() # 交叉熵损失
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate, momentum=momentum)# forward + backward + update
# 梯度置零
optimizer.zero_grad()
# 输入inputs,输出outputs
outputs = model(inputs)# 计算损失
loss = criterion(outputs, labels)
# 反向传播
loss.backward()
# 优化参数
optimizer.step()

关键字:个人网站设计毕业论文摘要_室内设计考研_他达拉非的副作用和危害_广告营销包括哪些方面

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: