Introduction
目标函数 是 深度学习之心,是 模型训练 的 发动机 。
目标函数 (object function) = 损失函数 (loss function) = 代价函数 (cost function)
其中,模型loss 统称为 non-decay loss ,正则loss 称为 decay loss 。
作用:
计算 预测结果 与 真实标记 之间的 误差,并通过 误差反向传播 算法,指挥 着 模型参数 哗啦啦地 刷新 。
目标函数 类型
主要分为 分类任务目标函数 和 回归任务目标函数。此外往往会加上 附加任务目标函数 (为了 防止过拟合/求得稀疏解 而加入的 正则项 )。
分类任务
假设某分类任务共 N N N 个训练样本,针对网络最后分类层的第 i i i 个样本的输入特征为 x i x_{i} xi ,其对应的真实标记为 y i ∈ { 1 , 2 , . . . , C } y_{i}\in\{1, 2, ..., C\} yi∈{1,2,...,C} ,另 h = ( h 1 , h 2 , . . . , h C ) T h={(h_{1}, h_{2}, ..., h_{C})}^{T} h=(h1,h2,...,hC)T 为网络的最终输出,即样本 i i i 的预测结果,其中 C C C 为分类任务类别数。
y
i
y_{i}
yi:分类正确时为1,错误时为0;
h
y
i
h_{y_{i}}
hyi:分类正确的那一个
h
j
h_{j}
hj,可能为负值。
Softmax损失函数
Softmax损失函数(softmax function),又名 交叉熵损失函数 (CE) 。
该函数 是重要的 深度学习目标函数,也是 Sigmoid函数 的一种 推广。可转换为交叉熵误差 (CE) 。
C E ( y ^ ) = − 1 N ∑ k = 1 N [ I { y = y ′ } log ( p t ) ] CE(\hat{y}) = - \frac{1}{N} \sum_{k=1}^N [I \{y=y'\} \log(p_t)] CE(y^)=−N1k=1∑N[I{y=y′}log(pt)]
只对gt所对应的单类 计算loss。
是 最常用 的分类任务目标函数。
合页损失函数
合页损失函数,hinge loss,主要被运用于SVM中。
L = 1 N ∑ i = 1 N max { 0 , 1 − h y i } L={\frac{1}{N}}{\sum_{i=1}^N}\max\{0, 1-h_{y_{i}}\} L=N1i=1∑Nmax{0,1−hyi}
max { 0 , 1 − h y i } \max\{0, 1-h_{y_{i}}\} max{0,1−hyi}:保证了每个单样本的损失值不为负。
效果略逊于交叉熵损失函数。
坡道损失函数
坡道损失函数,ramp loss function。
亮点是 增强了 抗噪能力 。
坡道损失函数 和 Tukey’s biweight 损失函数 并称 鲁棒损失函数 。
大间隔交叉熵损失函数
引入了SVM的思想,即在 要求 分类正确 之外,还 额外要求 分开的类 需保持较大间隔 。
较难训练。
但在 分类性能 方面 优于 交叉熵损失函数 和 合页损失函数。
中心损失函数
在 大间隔交叉熵损失函数 的 基础上,更进一步要求 减小类内差异 。
Focal Loss损失函数
对Softmax损失函数进行“类别平衡”约束。
回归任务
预测误差,即 残差 ,用于 衡量 模型预测值 与 真实标记 的 靠近程度 。
假设回归问题中,对应第 i i i 个输入特征 x i x_{i} xi 的真实标记为 y i = ( y 1 , y 2 , . . . , y M ) T y^{i} = (y_{1}, y_{2}, ..., y_{M})^{T} yi=(y1,y2,...,yM)T , M M M 为标记向量总维度,则 l t i l_{t}^{i} lti 即表示样本 i i i 上网络回归预测值 ( y ^ i ) (\hat{y}^{i}) (y^i) 与其真实标记在第 t t t 维的预测误差 (亦称 残差) :
l t i = y t i − y ^ t i l_{t}^{i} = y^{i}_{t} - \hat{y}^{i}_{t} lti=yti−y^ti
L1损失函数 | L2损失函数 | |
---|---|---|
回归精度 | 少数情况下略优,大部分情况下差不多 | |
收敛速度 | 略快 | |
运用程度 | 较常用 | 最常用 |
L1损失函数
L = 1 N ∑ i = 1 N ∑ t = 1 M ∣ l t i ∣ L={\frac{1}{N}} {\sum_{i=1}^N} {\sum_{t=1}^M} \vert l_{t}^{i} \vert L=N1i=1∑Nt=1∑M∣lti∣
Detection中常用的是 Smooth L1 。
L2损失函数
L = 1 N ∑ i = 1 N ∑ t = 1 M ( l t i ) 2 L={\frac{1}{N}} {\sum_{i=1}^N} {\sum_{t=1}^M} ( l_{t}^{i} ) ^{2} L=N1i=1∑Nt=1∑M(lti)2
Tukey’s biweight 损失函数
可克服 离群点样本 和 噪声样本 所带来的 干扰,鲁棒性 强。
其他任务
某些 无法被 简单划归为 分类 或 回归 的任务,需要设计其他的目标函数。
Summary
分类任务 | 回归任务 | |
---|---|---|
真实标记 | 二值向量 | 实数向量 |
[1] 深度学习: 分类 目标函数 (交叉熵误差(CE) -> 焦点损失(FL))