损失函数使用Relu或Logsigmoid的直观区别

本文探讨了损失函数在模型训练中的作用,特别是通过比较线性整流函数(ReLU)和Logsigmoid两种激活函数。ReLU提供了一种非平滑的转换,而Logsigmoid则更平滑。尽管ReLU在某些情况下表现出色,但平滑的Logsigmoid在损失函数中可能带来更好的性能。内容包括了两种函数的数学表达式、图像展示以及在实际应用中的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。例如在统计学和机器学习中被用于模型的参数估计(parametric estimation),在宏观经济学中被用于风险管理(risk management)和决策 ,在控制理论中被应用于最优控制理论(optimal control theory)。

        Relu函数(百度):线性整流函数(Linear rectification function),又称修正线性单元,是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。百度给出的定义:

        Logsigmoid函数(PyTorch文档):

一、使用Relu时

        {\rm Relu}(x){\rm max}(x, 0)实际上是一样的,但是在模型训练时,这两者是有所差别的,不过目前我没有太多的证据。其中一种损失函数是这样使用{\rm Relu}(x){\rm max}(x, 0)的:

Loss = {\rm max}(x - \mu, 0) + {\rm max}(0, \mu - x')

        如果我们只考虑前一项,且\mu=0,即f(x)=max(x, 0),那么它的函数图像如下:

二、使用Logsigmoid

        Logsigmoid在使用时需要加两个负号,其中一种损失函数(和上面对应,功能上差不多)是这样的:

Loss = - {\rm log}\sigma(\mu - x) - {\rm log}\sigma(x' - \mu)

        如果我们只考虑前一项,且\mu=0,即f(x) = -{\rm log} \sigma(-x),那么它的函数图像如下:

        在这里,我再详细地把f(x) = -{\rm log} \sigma(-x)的函数写出来吧,它是这样的:

f(x) = -{\rm log} \sigma(-x) = -{\rm log}(\frac{1}{1+e^{-(-x)}}) = -{\rm log}(\frac{1}{1+e^{x}})

        其中

\sigma(x) = \frac{1}{1+e^{-x}}

        这样读者可以自行去研究这个函数图像。

三、两者比较

        将它们放在一起,我们能够得到下面的图像,可以发现它们确实很相似。不同的是,其中有一个很不平滑(Relu所起的作用),而另一个很平滑(Logsigmoid所起的作用)。一般来说,Loss中使用平滑的Logsigmoid在性能上使用不平滑的Relu要更好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞机火车巴雷特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值