LHUC介绍

Reading time ~1 minute

语音识别领域《Learning Hidden Unit Contributions for Unsupervised Acoustic Model Adaptation》中提出了一种方法LHUC,我们来看下它的实现:

LEARNING HIDDEN UNIT CONTRIBUTIONS (LHUC)

一个neural network可以被看成是一个关于adaptive basis functions的集合。在关于target function \(f^*\)的family的特定猜想下,neural network可以看成是一个universal approximator。也就是说,在给定关于input随机变量\(x \in R^d\)的一些vector的情况下,存在一个nueral network \(f_n(x): R^d \rightarrow R\)的形式:

\[f_n(x) = \sum\limits_{k=1}^n r_k \phi(w_k^T x + b_k)\]

…(1)

它可以逼近\(f^*\),具有一个特别小的error \(\epsilon\),对应于这样的mean square error的一个distance measure(提供n是足够大的):

\[|| f^*(x) - f_n(x) ||_2 \leq \epsilon\]

…(2)

在(1)中的\(\phi: R -> R\)是一个element-wise non-linear operation,在一个仿射变换(n affine transformation)后使用,这会形成一个adaptive basis function,参数为:一个biases set \(b_k \in R\)和一个weight vectors \(w_k \in R^{d_x}\)。target approximation接着会被构建成一个关于basis functions的linear combination,每个都通过\(r_k \in R\)进行加权。该公式可以扩展到m维的mappings上:\(f_n^m(x): R^d \rightarrow R^m\),可以通过将(1)中的模型拼接m次得到。当考虑更深的模型(嵌套)时,该特性会保持true。

DNN训练会导致hidden units学习一个关于target function的联合表征(joint representation),会变得专业化和互补。对basis function学到的组合的泛化(Generalisation),当应用于unseen test data,会持续逼近target function。该解释启发了使用UHUC的思想用于test-set adaptation。

在LHUC中,network的basis functions,之前使用大量训练数据估计得到,会固定住。Adaptation会涉及到修改hidden unts的组合(combnation)以便最小化基于adaptation data的adaptation loss。图1展示了对于一个回归问题的该方法,其中adaptation会通过对basis functions进行重组合来执行,它只会更改等式(1)中的r参数。

LHUC的关键思想是,显式参数化每个hdden unit(每个在max-pooling之后的FC和convolutional layers中)的幅度(amplitudes),使用一个speaker-dependent ampltude function。假设:

  • \(L_j^{l,s}\):表示在layer l中的第j个hidden unit activation(basis)
  • \(r_j^{l,s} \in R\):表示第s个speaker-dependent amplitude function:
\[h_j^{l,s} = \epsilon(r_j^{l,s}) \odot \phi_j(w_j^{lT} x + b_j^l)\]

…(3)

幅度使用一个函数:\(\epsilon : R \rightarrow R^+\)——通常是一个范围在(0,2)以内的sigmoid 【13】,但也可以使用一个identity function。

  • \(w_j^l\)是相应的weight矩阵\(W^l\)的第j列
  • \(b_j^l\)表示bias
  • \(\phi\)是hidden unit activation function(除非声明,否则是sigmoid)
  • \(\odot\)表示是一个Hadamard product
  • \(\epsilon\)限制了hidden unit amplitude scaling的范围(对比图1),直接影响adaptation transform capacity——当适配潜在的noisy unsupervised targets时,我们希望有这样的能力。

LHUC adaptation会通过设置speaker-specific amplitude参数\(r_j^{l,s}\),并对由adaptation data提供的targets使用gradient descent来进行。

直接学习hidden unit amplitudes的思想在[55]中提出,接着由[12]应用到supervised speaker adaptation中。【13】中该方法会被扩展到unspervised adaptation上,non-sigmoid non-linearities,大的vocabulary speech recognition。等等

IV. SPEAKER ADAPTIVE TRAINING LHUC (SAT-LHUC)

当LHUC被应用到一个test-only adaptation中时,它会假设:在训练数据上估计的speaker-independent basis function的集合,会提供一个良好的起点,可以进一步对adaptation data的底层数据分布进行调参。然而,你可以生成一个counter-example,其中该假设会失败:图2的top plot展示了example training data会从两个竞争的分布\(f_1(a)\)和f_1(b)中均匀抽取出,其中:在平均模型(图2底部)中的结果basis的线性重组合,提供了一个对adaptation data的较差近似。

这启发了:使用speaker adaptive training(SAT)与LHUC进行组合,其中:hidden units会被训练用来捕获好的average representations以及speaker-specific representations,通过为每个training speaker估计speaker-specific hidden unit amplitudes。在给定来自所在分布的数据点的先验知识后,这在图3中会被可视化,我们会估计一个并行的LHUC transforms(每个分布一个)的集合,同时有一个额外的transform会负责建模平均属性(average properties)。图3的top展示了在图2中的相同实验,但有了三个LHUC transforms——你可以看到:以给定LHUC transform下,该场景中的4-hidden-unit MLP可以捕获每个底层分布以及平均表现。同时,生成的basis function(图3 bottom)会是一个对于adaptation更好的starting point(图3 middle)。

图2和图3中的示例可以通过对每个function的训练数据样本数目进行rebalance来打破对称来解决,这会导致在平均模型中更少的trivial并且更多adaptable的basis functions。然而,我们会在后续展示实验,在高维语音数据上呈现相似的效果,SAT-LHUC训练允许构建更可调节的标准语音模型,通过适配可以对指定speakers进行更好的裁减。

SAT-LHUC 的Test-only adaptation与LHUC相同:每个test speaker都会插入speaker-dependent LHUC参数集合 \(\theta_{LHUC}^s=\lbrace r_j^{l,s} \rbrace\),他们的值可以从无监督adaptation data进行最优化。我们也会使用一个LUHC变换\(\theta_{LHUC}^s\)的集合,其中:\(s = 1 \cdots S\),对于training speakers,它会与speaker-independent参数\(\theta_{SI} = \lbrace W^l, b^l \rbrace\)一起联合优化。这是一个额外的speaker-independent LHUC变换,表示为\(\theta_{LUHC}^0\),这会允许模型以speakerindependent的方式被使用,例如:为了生成first pass adaptation targets。关于hidden units with speaker-dependent LHUC标量的的联合学习过程是很重要的,它会产生一个更加可调的标准语音模型,可以更好的适应在测试时未见过的speakers,正如我们如图3所示,会在下面展示adaptation任务。

为了执行SAT-LHUC的 training,我们会使用negative log likelihood,并最大化在给定t时刻observation vector \(x_t\)下获得正确context-dependent tied-state \(c_t\)后验概率:

\[L_{SAT}(\theta_{SI}, \theta_{SD}) = - \sum\limits_{t \in D} log P(c_t | x_t^s; \theta_{SI}; \theta_{LHUC}^{m_t})\]

…(4)

其中:s表示第s个speaker,\(m_t \in \lbrace 0, s \rbrace\)会从基于一个Bernoulli分布的\(\theta_{SD} \lbrace \theta_{LHUC}^0, \cdots, \theta_{LHUC}^S \rbrace\)选择SI或DS LHUC变换:

\[k_t \sim Bernoulli(\gamma) \\ m_t = ...\]

…(5)(6)

其中:\(\gamma\)是一个超参数,它表示给定样本的概率,被看成是\(SI\)。SI/SD会在speaker、utterance或frame level上被执行。我们会进一步研究:在VI-B上的该方面。SAT-LHUC模型结构如图4所述,对于不同的speakers来说,注意forward和backward passes的alternative routes。

\(\partial{L_{SAT}}/\partial{h_j^{l,s}}\)表示第l层第j个unit的error BP。为了通过transform进行BP,我们需要将transform自身进行element-wise乘法,如下:

\[\frac{\partial{L_{SAT}}}{\partial \phi_j^l} = \frac{\partial {L_{SAT}}}{\partial h_j^{l,s}} \odot \epsilon (r_j^{l,s})\]

…(7)

为了获得对\(r_j^{l,s}\)的gradient:

\[\partial(L_{SAT}){\partial r_j^{l,s}} = \frac{\partial L_{SAT}}{\partial h_j^{l,s}} \odot \frac{\partial \epsilon(r_j^{l,s})}{\partial r_j^{l,s}} \odot \phi_j^l\]

…(8)

当执行mini-batch SAT training时,你需要显式说明这样的事实:不同data-points会通过不同的transforms进行流动:因为这会产生对于第s个speaker对于\(r_j^{l,s}\)产生的梯度,是属于speaker s的partial gradients的sum:

\[\frac{\partial L_{SAT}}{\partial r_j^{l,s}} = \sum\limits_{t, m_t=s} \frac{\partial L_{SAT}}{\partial h_j^{l,s}} \odot \frac{\partial epsilon(r_j^{l,s})}{\partial r_j^{l,s}} \odot \phi_j^l\]

…(9)

或者对于在给定mini-batch中第s个speaker没有data-points被选中时为0。在本paper中所有adaptation方法需要first-pass decoding来获取adaptation targets,对于unseen test speakers会估计fMLLR变换,或者来执行DNN speaker-dependent参数更新。

#

Netflix关于cosine相似度的讨论

Netflix团队发了篇paper《Is Cosine-Similarity of Embeddings Really About Similarity?》,对cosine相似度做了相应的研究。# 摘要余弦相似度(cosine similarity)是指两个向量间夹角的余弦...… Continue reading

Meta AdaTT介绍

Published on January 02, 2024

SATrans介绍

Published on December 02, 2023