历史文档

使用自定义损失函数训练DNN网络

由qxiao创建,最终由qxiao 被浏览 14 用户

为什么要用自定义损失函数

  1. 能够适应特定任务: 如在金融领域中,可以设计自定义损失函数来考虑不同的风险偏好、成本约束或者特定的投资目标。
  2. 提升模型性能: 自定义损失函数可以通过对模型输出和目标之间的差异进行更精确的度量,从而提高模型的性能。通常情况下,使用常见的损失函数如均方误差(MSE)或交叉熵(Cross Entropy)可能无法充分考虑到任务的具体特点,而自定义损失函数可以更好地捕捉到问题的本质。
  3. 考虑不平衡数据:在某些任务中,数据可能存在类别不平衡的情况,即某些类别的样本数量远远多于其他类别。此时,使用自定义损失函数可以对不同类别的样本进行加权或调整,以更好地平衡模型的训练过程,提高对少数类别的预测能力。

极大似然估计

本章我们以似然函数作为优化函数对神经网络进行优化. 对神经网络权重采用极大似然估计时, 我们只需要对似然函数取负对数, 如此操作即可将似然函数转化为损失函数. 在此之前, 我们简单了解一下什么是极大似然估计.

假设你现在手上有一枚硬币, 你想通过丢硬币的方式去估计硬币正面朝上的概率为多少, 这里我们的待估参数为硬币正面朝上的概率θ. 这里先给出一些符号表示:

{w:100}{w:100}{w:100}现在你投掷了两次硬币, 第一次为正, 第二次为反, 所以概率可表示如下:

{w:100}{w:100}极大似然估计的思想是, 你此刻所见的事情发生的概率最大. 你此刻观察到两次硬币结果是一正一反, 所以一正一反的两个结果发生概率要最大, 所以当θ取为0.5时, 这一概率最大, 所以参数θ的极大似然估计为0.5.

这里就存在一个问题, 如果我两次投掷结果都为正面, 那么极大似然估计结果就是1了, 这就暴露了一个问题, 小样本量下极大似然估计容易失效. 大样本下极大似然估计是真实值的相合估计. 所以大样本下极大似然估计的效果会好很多.

极大似然估计下的DNN网络

https://bigquant.com/codeshare/f0bd321d-9444-4580-9aed-b286db6eeb2e

\

标签

函数
{link}