TE2E和GE2E损失函数区别

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

一、TE2E

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

  2. L2正则化
    将 { x j ∼ , ( e k 1 , e k 2 . . . e k M ) x_{j∼},(e_{k1},e_{k2}...e_{kM}) xj,(ek1,ek2...ekM)} 正则化后,用e为向量,表示正则化后的向量{ e j ∼ , ( e k 1 , e k 2 , . . . e k M e_{j∼},(e_{k1},e_{k2},...e_{kM} ej,(ek1,ek2,...ekM},求元祖数据向量的质心:
    在这里插入图片描述
    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} ck=Em[ekm]=M1m=1Mekm

  3. 然后用余弦相似函数求出质心和j说话者的角度。
    s = w ∗ c o s ( e j ∼ , c k ) + b s = w*cos(e_{j∼}, c_k) + b s=wcos(ej,ck)+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] LT(ej,ck)=δ(j,k)σ(s)+(1δ(j,k))(1σ(s))[1] 其中 σ = 1 ( 1 + e − x ) \sigma=\frac{1}{(1+e^{-x})} σ=1+ex1 sigmoid激活函数, δ ( j , k ) \delta(j,k) δ(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. δ(j,k)={1,0,k=jk!=j
    当k=j,是返回1, 否认为0.
    因此当j,k为同一个说话者时, δ ( j , k ) = 1 δ(j,k)=1 δ(j,k)=1, 故 L T ( e j ∼ , c k ) L_T(e_{j∼}, c_k) LT(ej,ck)函数为: L T ( e j ∼ , c k ) = σ ( s ) L_T(e_{j∼},c_k) = \sigma(s) LT(ej,ck)=σ(s)
    e j ∼ 和 c k e_{j∼} 和 c_k ejck向量夹角为0,即同一向量,此时s值最大, σ ( s ) \sigma(s) σ(s)为最值, L T L_T LT也为最值。

二、 GE2E

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

  1. f ( x j i ; w ) f(x_{ji};w) f(xji;w)表示LSTM网络输出结果, e j i e_{ji} eji为网络输出后的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} eji=f(wji;w)2f(xji)
    其中 e j i e_{ji} eji表示第j个说话者第i个话语的嵌入向量。
  2. 定义相似矩阵 S j i , k S_{ji,k} Sji,k为每个嵌入向量 e j i e_{ji} eji与所有质心 c k c_k ck ((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] Sji,k=wcos(eji,ck)+b[2] 其中w,b为自动学习的参数,w>0.

三、 两者的不同之处

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

最近学习了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。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值