深度学习之损失函数,梯度下降法,反向传播总结以及之间的关系应用!

损失函数

每一个样本数据经过模型后会得到一个预测值,然后得到的预测值和真实值的差值就成为损失,得到这个损失的值的函数称为损失函数(目标函数)。许多不同种类的损失函数,这些函数本质上就是计算预测值和真实值的差距的一类型函数,然后经过库的封装形成了有具体名字的函数。

import torch
from torch.nn import L1Loss
from torch import nn

inputs = torch.tensor([1, 2, 3], dtype=torch.float32) #预测值
targets = torch.tensor([1, 2, 5], dtype=torch.float32) #目标值

inputs = torch.reshape(inputs,(1, 1, 1, 3))
targets = torch.reshape(targets,(1, 1, 1, 3))

loss = L1Loss(reduction='sum')  #求和,默认求平均
result = loss(inputs, targets)

loss_mse = nn.MSELoss() #实例化对象
result_mse = loss_mse(inputs, targets)  #对象调用默认函数

print(result)
print(result_mse)

x = torch.tensor([0.1, 0.2, 0.3])
y = torch.tensor([1])
x = torch.reshape(x, (1, 3)) #有3类
loss_cross = nn.CrossEntropyLoss()  #对于分类的函数
result_cross = loss_cross(x,y)
print(result_cross)

梯度下降法

梯度下降法求函数的最小值,梯度即函数的导数。

反向传播

是一种逆向计算的方法,具体理解可以参考:“反向传播算法”过程及公式推导(超直观好懂的Backpropagation)_aift的博客-CSDN博客

三者联系

  在初次接触看到这些名词时,只单独进行了学习了它们的原理算法,但还不理解其在神经网络模型中所发挥的作用以及它们之间的联系。在经过对一些模型的训练后,我总结出了更加适合小白理解的大白话思路。

  首先在模型中有计算公式,其中计算公式中的参数(权重,偏置)决定了这个计算公式是否准确。在导入训练集训练时,会得到实际值。通过损失函数可以计算出实际值和预测值的误差值。利用梯度下降法求得损失函数的最小值。此时损失函数得到一个数据可以使误差值最低,再利用反向传播法计算出对应的计算公式中的参数,从而使计算公式中的参数更加优化,训练出更加优化的模型。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值