损失函数

                                   
               

目录:

一、0-1损失函数

二、平方损失函数(Square Loss):主要是最小二乘法(OLS)中; 

三、绝对值损失函数

四、对数损失函数(Cross Entropy Loss,Softmax Loss ):用于Logistic 回归与Softmax 分类中; 

五、指数损失函数(Exponential Loss) :主要用于Adaboost 集成学习算法中; 

六、铰链损失函数(Hinge Loss):主要用于支持向量机(SVM) 中; 

内容:

一、0-1损失函数

  可以看出,该损失函数的意义就是,当预测错误时,损失函数值为1,预测正确时,损失函数值为0。该损失函数不考虑预测值和真实值的误差程度,也就是只要预测错误,预测错误差一点和差很多是一样的。

如果你觉得这篇文章看起来稍微还有些吃力,或者想要系统地学习人工智能,那么推荐你去看床长人工智能教程。非常棒的大神之作,教程不仅通俗易懂,而且很风趣幽默。点击这里可以查看教程。

二、平方损失函数

  该损失函数的意义也很简单,就是取预测差距的平方。

三、绝对值损失函数

  该损失函数的意义和上面差不多,只不过是取了绝对值,差距不会被平方缩放。

四、对数损失函数

  这个损失函数就比较难理解了。事实上,该损失函数用到了极大似然估计的思想。P(Y|X)通俗的解释就是:在当前模型的基础上,对于样本X,其预测值为Y,也就是预测正确的概率。由于概率之间的同时满足需要使用乘法,为了将其转化为加法,我们将其取对数。最后由于是损失函数,所以预测正确的概率越高,其损失值应该是越小,因此再加个负号取个反。

经典的对数损失函数包括entropy和softmax,这里以entropy为例

在逻辑回归中,我们采用的是对数损失函数。由于逻辑回归是服从伯努利分布(0-1分布)的,并且逻辑回归返回的sigmoid值是处于(0,1)区间,不会取到0,1两个端点。因此我们能够将其损失函数写成以下形式: 


  解释一下含义:

  • 当真实值y=1时,,当预测值越接近1,也越接近最大值1,加上负号后就代表误差值最小。而当预测值越接近0,越接近负无穷,加上负号后就代表误差值最大。
  • 当真实值y=0时,,当预测值越接近0,也越接近最大值1,加上负号后就代表误差值最小。而当预测值越接近1,越接近负无穷,加上负号后就代表误差值最大。

  最后逻辑回归中对于所有样本的损失函数为: 


五、指数损失函数

指数误差,在boosting算法中比较常见:

学过Adaboost算法的人都知道,它是前向分步加法算法的特例,是一个加和模型,损失函数就是指数函数。在Adaboost中,经过m此迭代之后,可以得到

$$f_m (x) = f_{m-1}(x) + \alpha_m G_m(x)$$

Adaboost每次迭代时的目的是为了找到最小化下列式子时的参数

$$\arg \min_{\alpha, G} = \sum_{i=1}^{N} exp[-y_{i} (f_{m-1}(x_i) + \alpha G(x_{i}))]$$

而指数损失函数(exp-loss)的标准形式如下

$$L(y, f(x)) = \exp[-yf(x)]$$

可以看出,Adaboost的目标式子就是指数损失,在给定n个样本的情况下,Adaboost的损失函数为:

L(y, f(x)) = \frac{1}{n}\sum_{i=1}^{n}\exp[-y_if(x_i)]



六、hinge loss损失函数

hinge损失函数和SVM是息息相关的。在线性支持向量机中,最优化问题可以等价于下列式子:
$$\min_{w,b}  \ \sum_{i}^{N} [1 - y_i(w\cdot x_i + b)]_{+} + \lambda||w||^2 $$
下面来对式子做个变形,令:
$$[1 - y_i(w\cdot x_i + b)]_{+} = \xi_{i}$$
于是,原式就变成了:
$$\min_{w,b}  \ \sum_{i}^{N} \xi_i + \lambda||w||^2 $$

                     
### 条件损失函数的定义 条件损失函数是一种在特定条件下使用的损失函数,它根据某些条件来选择不同的损失计算方式。与普通损失函数不同,条件损失函数并非单纯地衡量模型预测值与真实值的差异,而是会考虑额外的条件信息,使得损失的计算更加灵活和精准。 ### 条件损失函数的应用场景及示例 #### 目标检测任务 在目标检测任务中,根据检测目标的大小、类别等条件选择不同的损失函数。对于小目标可以使用专门针对小目标设计的损失函数,对于大目标使用普通的损失函数。以下是一个简单的伪代码示例: ```python import torch import torch.nn as nn # 定义模型 model = ... # 定义不同的损失函数 small_object_loss = ... # 假设已经定义好针对小目标的损失函数 large_object_loss = nn.CrossEntropyLoss() # 训练过程 for input, target in dataloader: predictions = model(input) # 假设根据目标大小判断使用哪种损失函数 if is_small_object(target): loss = small_object_loss(predictions, target) else: loss = large_object_loss(predictions, target) optimizer.zero_grad() loss.backward() optimizer.step() ``` #### 图像生成任务 在图像生成任务中,可以根据生成图像的某些特征(如清晰度、色彩分布等)来选择不同的损失函数。例如,当生成图像的清晰度较低时,使用能够增强清晰度的损失函数;当色彩分布不准确时,使用色彩相关的损失函数。 ### 条件损失函数的优势 - **提高模型的针对性**:能够根据不同的条件选择合适的损失函数,使模型在不同的情况下都能得到更好的优化,提高模型在特定任务上的性能。 - **增加模型的灵活性**:可以适应更复杂的任务需求,处理多样化的数据和场景。 ### 条件损失函数的挑战 - **条件判断的准确性**:条件的判断需要合理的依据和准确的方法,否则可能会选择不恰当的损失函数,影响模型的训练效果。 - **损失函数的选择和组合**:需要根据具体任务和数据特点选择合适的损失函数,并合理组合使用,这需要一定的经验和实验。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值