0 损失函数的概念损失函数是用来衡量模型输出与真实标签的差异。
比如下面的一元线性回归的实验: 绿色的点是样本。蓝色的直线是训练好的一个模型。 我们可以看到这个模型并没有很好的拟合到每一个数据点。所以数据点会产生一个loss。红色的线段就是模型之间的差距。
损失函数、代价函数和目标函数有什么区别?
损失函数是计算一个样本的差异。 代价函数是计算整个样本集的loss的平均值。
目标函数是更广泛的概念。目标通常包含cost 和正则化项。cost就是代价函数,是衡量模型输出与真实标签的差异。但是是不是代价函数越小越好呢?其实不一定,因为有时候会过拟合。 比如,训练了下面的模型:
可以看到这条曲线可以很好的拟合每一个数据点,所以它的cost是0。但是这个模型是不是好的模型呢?显然不是,这就是由于模型太复杂导致过拟合。所以在追求cost比较小的时候,同时也要对这个模型做一些限制,约束。在机器学习中,这些约束项就成为正则项。通常采用L1、L2、系数约束等。
在后面,不失一般性,后面都会用Loss function来统称。
看一下pytorch中的loss。
pytorch中的loss还是继承于Module。所以说Loss还是相当于网络层。 共有三个参数,其中前两个即将(已经)被舍弃了,以后不要用了。因为它的功能在reduction中完全可以实现。
下面看一下RMB分类中使用过的交叉熵损失函数,它是怎么创建的 |
6.1 常用的损失函数(18种)
最新推荐文章于 2024-06-07 10:05:26 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)