深度学习中常见激活函数和损失函数(持续更新)

目录

一、激活函数(Activation Function)

1.1定义与功能

1.2常见的激活函数

1.2.1 ReLu

1.2.2 Leaky ReLU

1.2.3 PReLU(Parametric ReLU)

1.2.4 softmax

1.2.5 Sigmoid

1.2.6 Tanh(双曲正切函数)

1.2.7 Softsign

1.2.8 GELU (Gaussian Error Linear Units)

1.2.9 ELU函数(Exponential Linear Unit)

1.3总结

二:损失函数(Loss Function)

2.1定义与功能

2.2常见的损失函数

2.2.1 二分类交叉熵损失(BCELoss)

2.2.2 加权交叉熵损失(Weighted Cross-Entropy Loss)

2.2.3 Dice损失(Dice Loss) 

2.2.4 Focal Loss 

2.2.5 IOU损失(Intersection over Union Loss)

2.3总结


本文为作者日常学习中遇见的激活和损失函数,对函数进行统一总汇,方便大家和自己了解使用,初次涉及,有误的地方,请各位大佬指教。

同时本文将会持续更新学习中遇到的激活和损失函数

一、激活函数(Activation Function)

激活函数(Activation Function)是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。它们在神经网络中扮演着至关重要的角色,通过引入非线性因素,使得神经网络能够学习、理解和逼近复杂的非线性函数,从而应用于各种非线性模型。

1.1 定义与功能

定义:激活函数是一种将神经元的输入(通常是一个或多个加权和加上偏置项后的结果)映射到输出端的函数。这种映射是非线性的,它使得神经网络能够模拟复杂的数据模式和非线性关系。换句话说,激活函数为神经网络引入了必要的非线性特性,从而使得网络能够学习并解决复杂的问题。

功能:通过引入非线性、控制输出范围、影响梯度传播和提升网络性能等功能,使得神经网络能够学习并解决复杂的问题。

1.2 常见的激活函数

1.2.1 ReLu

特点:ReLU函数是目前最受欢迎的激活函数之一,特别是在深度学习中。

  其计算公式为:                                                    f(x) = max(0, x)             

f(x) = max(0, x) 
 当输入x大于0时,输出等于输入;当输入小于或等于0时,输出为0

优势:ReLU函数计算简单,能够快速收敛,并且在一定程度上缓解了梯度消失问题(因为当输入为正时,梯度恒为1)。

应用场景:ReLU广泛应用于卷积层中,特别是在图像分割任务中,因为它能够显著提高训练速度和模型性能。

1.2.2 Leaky ReLU

特点:作为ReLU的一个变体,Leaky ReLU允许负输入有一个小的梯度(如0.01),而不是直接将其置为0。

它的公式为                                                                   f(x) = max(αx, x)     

f(x) = max(αx, x) 
 当x<0时,函数值为f(x)=α x ,比如像f(x)=0.001x;当x>0时,函数值为 f(x)=x,其中α是一个很小的常数。

                                                                                      

优势:Leaky ReLU在一定程度上解决了ReLU可能导致的“死亡神经元”问题,即某些神经元可能永远不会激活。

应用场景:虽然不如ReLU常用,但在某些特定情况下,Leaky ReLU可能提供更好的性能。

1.2.3 PReLU(Parametric ReLU)

 特点:PReLU是Leaky ReLU的一个扩展,不同之处在于它允许负斜率α作为可学习的参数,而不是固定的。

公式见(1.2.2)

优势:通过学习α值,PReLU能够更灵活地适应不同的数据集和模型架构。

应用场景:PReLU在一些复杂的图像分割任务中表现出了较好的性能。

1.2.4 softmax

特点:Softmax函数通常用于多分类问题的输出层,它将多个类别的输出转换为概率分布。

其公式为

Zi 是输入向量中的第i个元素,e是自然对数的底数(约等于2.71828),n是输入向量的长度(即类别的数量)。通过指数运算和归一化处理,Softmax函数将每个xi转换为一个在0到1之间的概率值,使所有类别的概率之和为1。

优势:Softmax能够输出每个类别的概率,便于进行多分类决策。

应用场景:在图像分割任务中,特别是在全连接层或分类头部分,Softmax函数用于将特征图转换为最终的分割结果。

1.2.5 Sigmoid

特点:Sigmoid函数将输入值映射到(0, 1)区间

其公式为

优势:Sigmoid函数具有平滑的S形曲线,易于求导,且在二分类问题中表现出色。

应用场景:虽然Sigmoid在图像分割中的直接使用不如ReLU和Softmax普遍,但它可能在一些特定的二分类子任务中发挥作用。

1.2.6 Tanh(双曲正切函数)

特点:Tanh函数将输入值映射到(-1, 1)区间

其公式为

与Sigmoid函数类似,Tanh也是S形曲线,但输出范围更宽。

优势:Tanh函数的输出以0为中心,这有助于加速训练过程中的收敛。此外,其导数在输入接近0时较大,有助于缓解梯度消失问题(尽管不如ReLU有效)。

应用场景:虽然Tanh在图像分割中的直接使用不如ReLU普遍,但它可能在某些特定模型或任务中发挥作用。

1.2.7 Softsign

特点:Softsign函数是Tanh函数的一个平滑版本,Softsign的输出范围也是(-1, 1),但比Tanh更加平滑。

 其公式为                                           f(x) = x / (1 + |x|)

f(x) = x / (1 + |x|)

优势:Softsign函数具有更宽的敏感区间,可能在一定程度上缓解梯度消失问题。此外,它的输出也是以0为中心的。

应用场景:与Tanh类似,Softsign在图像分割中的直接使用也不如ReLU普遍,但可能在某些特定情况下有所应用。

1.2.8 GELU (Gaussian Error Linear Units)

特点:GELU是一种基于高斯误差函数的激活函数,相较于 ReLU 等激活函数,GELU 更加平滑,有助于提高训练过程的收敛速度和性能。

其公式为

优势:GELU以其独特的平滑性、非线性、自适应门控机制以及缓解梯度消失问题等优势 

应用场景: 除了NLP和计算机视觉,GELU还可以应用于其他需要深度学习模型的领域,如语音识别、推荐系统等。

1.2.9 ELU函数(Exponential Linear Unit)

特点:在负值区域有一个小的负斜率,使得输出的平均值接近于零,有助于加速学习过程。同时解决了“Dead ReLU”问题。

其公式为:

优势:避免“死亡神经元”:与ReLU函数不同,ELU在负值区域有输出,这避免了ReLU在负值区域导致的“死亡神经元”问题,即神经元输出恒为零的情况。零均值中心化:ELU的输出值更接近于零均值,这有助于加速神经网络的训练过程,因为它减少了偏置偏移的影响,使正常梯度更接近于单位自然梯度。缓解梯度消失问题:ELU函数在负值区域的平滑处理有助于缓解梯度消失问题,因为它允许在负值区域也能传递梯度。提高模型鲁棒性和学习能力:ELU函数能够提升模型的鲁棒性和学习能力,从而提高模型在复杂任务上的表现。

应用场景:ELU函数以其独特的优势在深度学习的多个领域得到了广泛应用(例如:卷积神经网络(CNN)循环神经网络(RNN)、生成对抗网络(GAN)、强化学习),并且随着深度学习的发展,ELU函数将继续发挥重要作用。

1.3 总结

激活函数的核心功能是引入非线性。在神经网络中,如果仅使用线性变换,那么无论网络有多少层,其输出都将是输入的线性组合,这极大地限制了网络的表达能力。通过引入非线性激活函数,神经网络能够模拟复杂的非线性关系,从而解决各种实际问题。控制输出范围不同的激活函数会将神经元的输出限制在不同的范围内。影响梯度传播激活函数的导数(或梯度)在神经网络的反向传播算法中起着关键作用。它决定了网络参数(如权重和偏置)的更新方向和幅度。不同的激活函数具有不同的导数特性,这会影响梯度的传播和网络的训练效果。加速训练过程有助于保持梯度的稳定性,避免梯度消失问题。提高网络性能通过选择合适的激活函数,可以显著提高神经网络的性能。不同的激活函数适用于不同的任务和数据集。

二:损失函数(Loss Function)

损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在机器学习和深度学习中,损失函数扮演着至关重要的角色,它用于评估模型的预测值与真实值之间的差异,并通过最小化这个差异来优化模型参数。简单的理解就是每一个样本经过模型后会得到一个预测值,然后得到的预测值和真实值的差值就成为损失(当然损失值越小证明模型越是成功),我们知道有许多不同种类的损失函数,这些函数本质上就是计算预测值和真实值的差距的一类型函数

2.1 定义与功能

定义:损失函数是评估模型预测性能的一种数学函数,其输出值表示了模型预测的不准确性或“损失”。

功能:通过最小化损失函数的值,可以调整模型的参数,使得模型的预测结果更加接近真实值,从而提高模型的性能。

2.2 常见的损失函数

2.2.1 二分类交叉熵损失(BCELoss)

二分类交叉熵损失专门用于二值分割(如显著性分割) 多分类交叉熵损失:用于语义分割 交叉熵损失广泛用于图像分割,但在处理类别不平衡(如前景和背景像素数量差异大)时可能效果不佳,导致模型偏向主流类别。

交叉熵损失广泛用于图像分割,但在处理类别不平衡(如前景和背景像素数量差异大)时可能效果不佳,导致模型偏向主流类别。

2.2.2 加权交叉熵损失(Weighted Cross-Entropy Loss)

在交叉熵损失的基础上,为每个类别添加一个权重参数,以应对样本不平衡问题。通过设置不同的权重,可以减少假阴性或假阳性,提高模型性能。 

2.2.3 Dice损失(Dice Loss) 

Dice系数是一种度量集合相似度的函数,通常用于计算两个样本之间的像素相似度。Dice Loss通过计算预测图和真实图之间的Dice系数,并将其转换为损失函数,适用于处理类别极度不平衡的情况。Dice Loss能够考虑整体结构,减少主流像素对损失函数的影响。

2.2.4 Focal Loss 

Focal Loss是为了解决目标检测中的类别不平衡问题而提出的,也可以应用于图像分割。它通过引入调制因子,降低易分样本的损失,使模型更关注难分样本。Focal Loss在平衡交叉熵损失函数的基础上,增加一个调节因子降低易分类样本权重,聚焦于困难样本的训练,其定义如下:

2.2.5 IOU损失(Intersection over Union Loss)

IOU损失函数又称Jaccard指数,通过计算预测图和真实图之间的重叠率来衡量损失。其公式为

其中A和B分别是预测图和真实图的像素集合。IOU损失常用于辅助其他损失函数,以提高模型对整体结构和小目标的分割能力。

2.3 总结

损失函数是机器学习和深度学习中不可或缺的一部分,它通过量化模型预测值与真实值之间的差异来指导模型的优化过程。不同的任务和数据特性需要选择不同类型的损失函数以达到最佳性能。在实际应用中,可以根据具体需求和数据特性来灵活选择和调整损失函数。

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值