常用损失函数

均方误差损失

\[J\left( {W,b,a,y} \right) = \frac{1}{2}{\left\| {y - a} \right\|^2}\]

回归问题中,输出层一般用恒等函数,损失函数使用均方误差损失。

 

交叉熵损失

二分类:\[J\left( {W,b,a,y} \right) =  - \left[ {y\ln a + \left( {1 - y} \right)\ln \left( {1 - a} \right)} \right]\]

多分类:\[J\left( {W,b,a,y} \right) =  - \sum\limits_k {{y_k}\ln {a_k}} \]

如果使用sigmoid激活函数,则交叉熵损失函数一般肯定比均方差损失函数好(能把sigmoid的导数给消去)。

 

指数损失

\[J = \exp \left( { - {y_i}f\left( {{x_i}} \right)} \right)\]

 

0-1损失

当样本被正确分类时,损失为0;当样本被错误分类时,损失为1。

 

感知机损失

当样本被正确分类时,损失为0;当样本被错误分类时,损失为-y(wx+b)。

 

合页损失函数

当样本被正确分类且函数间隔大于1时,合页损失才是0,否则损失是1-y(wx+b)。

相比之下,合页损失函数不仅要正确分类,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。

 

 InfoNCEloss

\[ \mathcal{L}_{i,j} = -\log\frac{\exp\left(\frac{\text{sim}(z_i, z_j)}{\tau}\right)}{\sum_{k=1}^{K}\exp\left(\frac{\text{sim}(z_i, z_k)}{\tau}\right)} \]

其中:
  • \(\text{sim}(z_i, z_j)\):样本 \(z_i\) 和 \(z_j\) 的相似度函数,通常使用余弦相似度:\(\text{sim}(z_i, z_j) = \frac{z_i \cdot z_j}{\|z_i\| \|z_j\|}\)
  • \(\tau\):温度参数(Temperature),控制相似度分布的平滑度
    • \(\tau\) 越小,分布越集中,模型更关注困难负样本
    • \(\tau\) 越大,分布越平滑,模型对所有负样本一视同仁
  • \(z_k\):包含 1 个正样本和 \(K-1\) 个负样本

 

Focal Loss

假设样本真实标签为 \(y \in \{0, 1\}\),模型预测为正类的概率为 p(\(p \in [0, 1]\)),定义:\(p_t = \begin{cases} p & \text{当 } y=1 \\ 1-p & \text{当 } y=0 \end{cases}\)
标准交叉熵损失(Binary Cross-Entropy, BCE):\(\text{BCE}(p_t) = -\log(p_t)\)
Focal Loss 表达式:\(\text{Focal Loss}(p_t) = -\alpha_t (1-p_t)^\gamma \log(p_t)\)
其中:
  • \(\alpha_t\) 为类别平衡因子(可设置为与类别频率成反比);
  • \(\gamma\) 为聚焦参数(\(\gamma \geq 0\)),控制易分类样本的权重衰减速度
    • 当 \(\gamma = 0\) 时,Focal Loss 退化为标准交叉熵
    • \(\gamma\) 增大时,\((1-p_t)^\gamma\) 对高概率样本(易分类)的惩罚权重降低,模型更关注 \(p_t\) 较小的难分类样本
posted @ 2019-06-24 17:39  AI_Engineer  阅读(478)  评论(0)    收藏  举报