TE2E和GE2E损失函数区别

版权声明:原创作品,欢迎转发!转发附上链接 https://blog.csdn.net/qq_26369907/article/details/90760456

谷歌提出了两种损失函数TE2E(Tuple-based end-to-end)、GE2E(Generalized end-to-end).今天对这两种进行记录。

一、TE2E

  1. 在训练中分为2个阶段:登记和检验。每步训练中数据包含 x j x_{j∼} 和M个登记会话 x k m x_{km} (for m = 1…M), 可以用 { x j   , ( e k 1 , e k 2 . . . e k M ) x_{j~},(e_{k1},e_{k2}...e_{kM}) }表示,可以被喂入LSTM网络中,其中X表示特征, j,k表示说话者,j与k可能相等也可能不相等。
    积极者: 如果 x j x_{j∼} 和M个会话的说话者是同一个人时;
    消极者: 如果 x j x_{j∼} 和M个会话的说话者不是是同一个人时;

  2. L2正则化
    将 { x j , ( e k 1 , e k 2 . . . e k M ) x_{j∼},(e_{k1},e_{k2}...e_{kM}) } 正则化后,用e为向量,表示正则化后的向量{ e j , ( e k 1 , e k 2 , . . . e k M e_{j∼},(e_{k1},e_{k2},...e_{kM} },求元祖数据向量的质心:
    在这里插入图片描述
    c k = E m [ e k m ] = 1 M m = 1 M e k m c_k = \mathbb{E}_m[e_{km}] = \frac{1}{M} \sum_{m=1}^M e_{km}

  3. 然后用余弦相似函数求出质心和j说话者的角度。
    s = w c o s ( e j , c k ) + b s = w*cos(e_{j∼}, c_k) + b

  4. 最后TE2E的定义为:
    L T ( e j , c k ) = δ ( j , k ) σ ( s ) + ( 1 δ ( j , k ) ) ( 1 σ ( s ) ) [ 1 ] L_T(e_{j∼},c_k) = δ(j,k)\sigma(s) + (1- δ(j,k))(1-\sigma(s)) ---[1] 其中 σ = 1 1 + e x \sigma=\frac{1}{(1+e^{-x})} sigmoid激活函数, δ ( j , k ) \delta(j,k) 函数如下:
    δ ( j , k ) = { 1 , k = j 0 , k ! = j \delta(j,k) = \left\{ \begin{array}{ll} 1 ,&k=j\\ 0 ,& k !=j \end{array}\right.
    当k=j,是返回1, 否认为0.
    因此当j,k为同一个说话者时, δ ( j , k ) = 1 δ(j,k)=1 , 故 L T ( e j , c k ) L_T(e_{j∼}, c_k) 函数为: L T ( e j , c k ) = σ ( s ) L_T(e_{j∼},c_k) = \sigma(s)
    e j c k e_{j∼} 和 c_k 向量夹角为0,即同一向量,此时s值最大, σ ( s ) \sigma(s) 为最值, L T L_T 也为最值。

二、 GE2E

我们获取N×M个语句来构建一个batch。这些话语来自N个不同的说话者,每个说话者有M个话语。每个特征向量 x j i x_{ji} (1≤j≤N, 1≤i≤M)表示从说话者j的话语i中提取的特征。

  1. f ( x j i ; w ) f(x_{ji};w) 表示LSTM网络输出结果, e j i e_{ji} 为网络输出后的L2正则化的向量: e j i = f ( x j i ) f ( w j i ; w ) 2 e_{ji} = \frac{f(x_{ji})}{||f(w_{ji; w})||_2}
    其中 e j i e_{ji} 表示第j个说话者第i个话语的嵌入向量。
  2. 定义相似矩阵 S j i , k S_{ji,k} 为每个嵌入向量 e j i e_{ji} 与所有质心 c k c_k ((1 ≤j; k ≤ N, 和 1 ≤ i ≤ M))
    S j i , k = w c o s ( e j i , c k ) + b [ 2 ] \mathbf{S}_{ji,k} = w*cos(e_{ji},c_k) + b--[2] 其中w,b为自动学习的参数,w>0.

三、 两者的不同之处

TE2E的相似度(方程1)是一个标量值,它定义了嵌入向量 e j e_{j∼} 与单个元组质心 c k c_k 之间的相似度。GE2E建立了一个相似矩阵(方程2),定义了每个 e j i e_{ji} 和所有质心 c k c_k 之间的相似点。

最近学习了Triplet loss函数,提出的时间更早些,在这里补充下。

四、Triplet Loss

在这里插入图片描述

  1. triplet loss的优势在于细节区分,即当两个输入相似时,triplet loss能够更好地对细节进行建模,相当于加入了两个输入差异性差异的度量,学习到输入的更好表示,从而在上述两个任务中有出色的表现。当然,triplet loss的缺点在于其收敛速度慢,有时不收敛。

  2. triplet loss的目标是: -
    两个具有同样标签的样本,他们在新的编码空间里距离很近。
    两个具有不同标签的样本,他们在新的编码空间里距离很远。
    进一步,我们希望两个positive examples和一个negative example中,negative example与positive example的距离,大于positive examples之间的距离,或者大于某一个阈值:margin。

猜你喜欢

转载自blog.csdn.net/qq_26369907/article/details/90760456
te2