损失函数和代价函数一样吗
问题描述
损失函数和代价函数一样吗,在线求解答
- 精选答案
-
损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(最大化的不叫损失或代价函数)。
在slam中损失函数(Lossfunction residual)损失函数是你的误差函数,是观测数据与估计值的差,代价函数(Costfunction)代价函数类似于核函数?那什么是核函数?剔除外点比如在优化的时候,由于无匹配等原因,把原本不应该加到图中的边给加进去了,误差大的边梯度也大,意味着调整与它相关的变量会使目标函数下降更多。所以当误差很大时,二范数增长得太快,二核函数保证每条边的误差不会大得没边而掩盖掉其他的边。具体是将原先误差的二范数度量替换成一个增长没那么快的函数,同时保证光滑性(不然没法求导),使优化结果更加稳健,所以又叫鲁棒核函数。常见的Huber核函数。ceres中的核函数用来减小Outlier的影响,对应g2o中的edge->setRobustKernel()。深度学习的核函数:一般定义是将原始表达转换到一个隐式特征空间去,该空间具有更好的特征可分性质。在普通优化问题中,为了抑制outlier对结果影响太大,往往需要加一个核函数,来禁止或降低那些离散点对最终结果的影响。在机器学习中,(一层线性卷积结构+一层核函数)*N的特殊结构,能拟合任何函数的原因。但如果只有N层的线性结构,那最后的组合还是线性结构,就相当于以前的感知机(perceptron)。使得类似神经网络结构从线性变成非线性的,就是每一层后加的核函数/激活函数。从上边我们可以看出,核函数的作用,是将原始结果空间映射到一个新的输出空间,在这个映射过程中可以进行滤波,转换后的空间具有更好的特征可分性质。