深度学习——损失函数及优化

目录

  • 损失(Loss)
    • 什么是损失函数
    • 例子:多分类SVM损失
  • 优化(Optimization)
    • 如何优化
    • 随机梯度下降法

刚学完用resnet18训练数据实现cifar10分类,现在反过头来发现自己的损失函数,后向传播,梯度下降这一块的概念学的并不是很好,重新学习了一遍。

损失(Loss)

在我们训练模型的过程中,我们需要衡量这一个模型的参数是好还是坏,而衡量这一个模型参数的好坏就是看输出的损失。训练模型的过程中,会输出这一个模型对一个图片分类的预测标签,这一个预测标签和这一个图片的真实标签的差异就是我们所说的损失。

什么是损失函数

而损失,是需要我们计算得到的,这一个计算的方法就是损失函数。
我们用**Li()**函数来代表我们计算这个差异的方法,那么可以得到以下概念。整个数据集的损失因此也得到了。
其中:
Si代表了真实标签,yi代表了预测标签

深度学习——损失函数及优化_第1张图片

在这里,所指的标签代表了一个图象对于所在分类的分类得分,所以这里一个数值
深度学习——损失函数及优化_第2张图片

实际中我们一般用以下的式子来表示损失函数
深度学习——损失函数及优化_第3张图片
正则项的作用有以下几点
1.保证模型的泛化能力。
2.防止模型过拟合训练集

例子:多分类SVM损失

深度学习——损失函数及优化_第4张图片

注:图片右侧应该是Sj+1,无-号
计算实例:
深度学习——损失函数及优化_第5张图片

还有很多其他的损失函数,可以看以下两篇博客里面更多的损失函数

https://xiongyiming.blog.csdn.net/article/details/99672818

https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650748392&idx=2&sn=1cc2080bad1cfee17e8f292256742c44&chksm=871

优化(Optimization)

因为深度学习是指电脑自己优化自己的参数,所以优化的过程就是网络不断的优化自己的参数,使得损失函数不断减小,从而达到一个更好的精度的过程。

如何优化

为了让损失下降,我们需要进行优化,而优化的方法有许多:

梯度下降法、牛顿法:泰勒+最小化+更新;
启发式:蚁群、遗传、模拟退火、粒子等;
有约束:拉格朗日乘子法等;
批梯度下降、随机梯度下降法:SGD、Adam等;
这些方法都是上课学到的总述,我们只重点讲解了梯度 下降法,像蚁群,遗传,模拟退火这些都没讲到,大伙可以自行百度学习一下。

而在现在深度学习的过程中,随机梯度下降法是用的最多的

随机梯度下降法

深度学习——损失函数及优化_第6张图片

其中,W就是指网络中的权重即参数。

简单的理解就是我们利用梯度下降法,可以将损失给降低下来,而具体的过程,其实就是涉及了求导的链式法则,这个涉及数学的一些方法,大伙可以继续百度学习

你可能感兴趣的:(深度学习,深度学习,机器学习,人工智能,神经网络)