【Dual-Path-RNN-Pytorch源码分析】loss函数:SI-SNR

本文详细介绍了DPRNN(深度递归神经网络)所使用的损失函数——尺度不变信噪比(SI-SNR)。SI-SNR是一种衡量信号纯净度的指标,不受信号尺度变化影响。公式中,s^表示估计信号,s是纯净信号,通过计算两者之间的相关性和L2范数来评估。在源码实现中,信号先减去均值以消除平均影响。该损失函数用于训练过程中计算训练误差。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DPRNN使用的loss函数是 SI-SNR

SI-SNR 是scale-invariant source-to-noise ratio的缩写,中文翻译为尺度不变的信噪比,意思是不受信号变化影响的信噪比

公式

公式如下:
{ s t a r g e t = ⟨ s ^ , s ⟩ s ∣ ∣ s ∣ ∣ 2 e n o i s e = s ^ − s t a r g e t S I S N R = 10 l o g 10 ∣ ∣ s t a r g e t ∣ ∣ 2 ∣ ∣ e n o i s e ∣ ∣ 2 \begin{cases} s_{target} = \cfrac {\lang{\hat s,s}\rangle s} {||s||^2} \\ e_{noise} = \hat s - s_{target} \\ SISNR = 10 log_{10} \cfrac {||s_{target}||^2} {||e_{noise}||^2} \end{cases} starget=s2s^,ssenoise=s^stargetSISNR=10log10enoise2starget2

其中 s ^ \hat s s^是评估信号, s s s是纯净信号;
⟨ s ^ , s ⟩ \lang{\hat s,s}\rangle s^,s是元素乘积再求和运算
∣ ∣ s ∣ ∣ 2 ||s||^2 s2是L2norm(2范数),它相当于 ⟨ s , s ⟩ \lang{s,s}\rangle s,s

2范数公式如下 ∣ ∣ x ∣ ∣ 2 = ∑ 0 n x i 2 ||x||_2= \sqrt{ \displaystyle\sum_0^nx_i^2} x2=0nxi2 ,简单地理解它为二维空间所有点到圆心的距离

SNR是纯净信号与噪音的声强的比,而SISNR是通过正则化消减信号变化导致的影响。

在DPRNN源码中,信号s同样做了“特殊处理”,先是将s减去平均值,然后再套用公式计算。

源码如下

def sisnr(x, s, eps=1e-8):
    """
    calculate training loss
    input:
          x: separated signal, N x S tensor
          s: reference signal, N x S tensor
    Return:
          sisnr: N tensor
    """

    def l2norm(mat, keepdim=False):
        return torch.norm(mat, dim=-1, keepdim=keepdim)

    if x.shape != s.shape:
        raise RuntimeError(
            "Dimention mismatch when calculate si-snr, {} vs {}".format(
                x.shape, s.shape))
    x_zm = x - torch.mean(x, dim=-1, keepdim=True)
    s_zm = s - torch.mean(s, dim=-1, keepdim=True)
    t = torch.sum(
        x_zm * s_zm, dim=-1,
        keepdim=True) * s_zm / (l2norm(s_zm, keepdim=True)**2 + eps)
    return 20 * torch.log10(eps + l2norm(t) / (l2norm(x_zm - t) + eps))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值