常见音频的损失函数

MSE

均方误差损失

$$ MSE=\frac{1}{n}\sum_{i=1}^n(y_i-\hat{y}_i)^2 $$

公式

  • n:表示样本的数量比如100张图片n就是100
  • i:第i个样本
  • $y_i$表示模型对滴i个样本的预测值
  • $y_i-\hat y_i$是单个样本的预测误差
  • $\sum$为求和
  • 1/n对总和求平均,因此也叫均方误差

最小二乘损失

最小二乘损失的核心思想是:通过最小化预测值与真实值之间差距的平方和,使得模型预测接近真实的情况。

二乘指的是平方,我们不直接计算差距(残差),而是计算差距的平方。

最小:我们的优化目标,让这个平方和达到最小。

最小二乘法就是最小化平方和的方法,其对应的损失函数就是最小二乘损失函数

最小二乘法是一种数学优化技术,它通过最小化误差的平方和,来找到一组数据的最佳拟合曲线(或直线)

为什么二乘就是平方呢?

想象一下,我们在三点图上画一条直线,试图让它尽可能地穿过靠近所有的数据点。

每个数据点与直线在垂直方向上的距离,就是该点的误差(也就残差)。点在直线上方,误差为正,点在直线下方,误差为负。

如果直接把所有误差相加,正负误差会相互抵消,这显然不合理。因此就将误差进行平方再相加。

这个所有误差的平方之和,就是我们要最小化的目标。线性化回归就是最小二乘法的使用例子之一。

对于单个样本,其损失是预测值$y_i$和真实值$\hat{y}_i$的平方

$$ L(y_i,\hat{y_i})=(y_i-\hat{y_i})^2 $$

数据集中,所有样本的损失的平均值,就是均方误差

$$ L(y_i,\hat{y_i})=(y_i-\hat{y_i})^2 $$

MAE

Mean absolute error

L1 loss这个名称来源于数学本质,即计算的是绝对差值的 L1范数。MAE这个名称更偏向于统计学意义,即平均绝对误差。

他的目的是衡量预测值和真实值之间的误差。计算绝对值的平均值

$$ \mathrm{MAE}=\frac{1}{n}\sum_{i=1}^n|y_i-\hat{y}_i| $$

L1指的是L1范数,也称为曼哈顿距离。L1范数是计算向量各元素绝对值之和。由于使用的是绝对值而不是平方,当预测值与真实值相差巨大时(离群点),MAE 的惩罚增长是线性的,而 MSE 的惩罚是平方增长的。因此,MAE 比 MSE 对离群点更具鲁棒性。在反向传播计算梯度时,MAE 的导数是常数(±1),这有利于稳定的训练,但可能在接近最优解时收敛变慢。它的单位与预测目标单位一致,易于理解和解释。例如,预测房价(万元),MAE 是 5,就表示平均预测偏差了 5 万元。

MSE损失的收敛目标是均值,而MAE的是中位数。

STFT多分辨率损失

多分辨率STFT loss通过在不同分辨率下计算短时傅里叶变换(STFT)佬捕捉音频信号的多尺度特征。核心思想是使用不同的STFT参数配置,在多个尺度上衡量生成音频与真实音频在频域上的差异。

STFT将时域上的音频信号转化为时频上的表示,即频谱图

  • 幅度谱:表示了每个频率成分在特定时间点上的能量强弱。这是我们人耳感知音量的主要依据。
  • 相位谱:表示了每个频率在充分太热定时间点上的起始位置。它对于音频的清晰度和时序至关重要。

I音频模型通常先生成目标的频谱图(尤其是幅度谱),然后再通过一个声码器(如Griffin-Lim或神经网络声码器)将频谱图转换回时域音频。因此,在频谱图层面设计良好的损失函数至关重要。

频谱收敛损失:

Magnitude-based Loss

幅度损失是主要用于处理频谱图或其他时频表示,核心思想是比较生成音频与目标音频在幅度谱上的差异。

在需要进度重建音频波形的任务中,它是核心的组成部分。但它不会单独使用

$$ L_{sc}(x,\tilde{x})=\frac{\||STFT(x)|-|STFT(\tilde{x})|\|_F}{\||STFT(x)|\|_F} $$

这个损失函数有一个更全局的视角,它关注的是生成频谱和目标频谱在形状上的一致性。

SC损失将频谱图视为一个高维向量,并计算这两个向量之间的“夹角”或“方向”差异。它本质上计算的是归一化后的生成频谱与目标频谱之间的差异

你可以把它想象成:我们不直接比较两个向量的长度(那是幅度损失关心的),而是比较它们的方向是否一致。如果方向一致,说明频谱的“轮廓”或“相对能量分布”是正确的。

对数幅度谱损失

这个损失函数直接比较生成音频和目标音频的幅度谱

在幅度谱上计算生成结果与真实结果之间的差异。由于人耳对声音强度的感知是对数性质的(例如,声音强度增加一倍,我们感知到的响度变化不是线性的),所以通常会在对数尺度下进行比较,这更符合人耳的听觉特性。

对数L1损失(更常用、更稳定):

$$L_{log-stft-L1}=\mathbb{E}\left[\left\|\log(|S_{target}|+\epsilon)-\log(|S_{generated}|+\epsilon)\right\|_1\right]$$

对数L2损失:

$$L_{log-stft-L2}=\mathbb{E}\left[\left\|\log(|S_{target}|+\epsilon)-\log(|S_{generated}|+\epsilon)\right\|_2^2\right]$$
其中$\|\cdot\|_{1\text{和}}\|\cdot\|_{2\text{分别表示 L1 范数和 L2 范数,}\mathbb{E}}$表示期望值(在批量数据上取平均)。

通常这俩个函数几乎总是同时使用

加权相加,构成一个复合函数。

对数幅度谱复杂纹理,像一个像素级的损失。频率幅度谱负责轮廓,像一个全局结构损失,确保整个频谱大致形状是正确的。

Feature Matching(FM)

FM最早出现在论文 Improved GAN Training中后来被MelGAN和HIFI-GAN作为核心稳定器继承

它的思想非常简单:不是值让判别器认为真和假。而是让生成器让fake的判别器中间层特征和real的判别器中间层特征尽量相同。

判别器有多个子判别器,每个sub-D有多层,每层有feature map

  • $D_k(x)$=判别器低k个字判别器的输出
  • $f_{k,l}$=低k个子判别器的l层 feature map

FM的Loss定义为

$$ L_{FM}(G, D) = \sum_k \sum_l \|f_{k,l}(x_{\text{real}}) - f_{k,l}(G(z))\|_1 $$

也就是取多个判别器MPD+MSD

对每个判别器每一层feature Map 做L1distance。最终加权求和。

feature matching的直觉是:GAN的对抗损失值关心:

  • 生成器能不能骗过判别器
  • 判别器能不能区分真假

但对抗损失不会告诉生成器怎么样更真实。

Feature Matching 做的事情:

判别器内部有层层抽象特征,例如:

  • 短期时域结构(similarity of waveform)
  • 周期性结构(pitch/周期)
  • 振幅动态(energy envelope)
  • 高频谐波
  • 多尺度卷积感受野捕捉的模式

FM 要求“fake 的特征必须和 real 的相似”。

**这本质上给生成器一个稳定的方向:
你要往真实特征靠近,而不是只要骗过判别器就行。**

Last modification:December 11, 2025
如果觉得我的文章对你有用,请随意赞赏