FixedAffineComponent:类 LDA-like 的非相关转换,由标准的 weight matrix plus bias 组成(即Wx+b),通过标准的 stochastic gradient descent(非minibatch SGD?) 训练而来,使用 global learning rate

AffineComponentPreconditionedOnline:为 FixedAffineComponent 的一种提炼,训练过程中不仅使用global learning rate,还使用 matrix-valued learning rate(矩阵形式的学习率)来预处理梯度下降。参见 dnn2_preconditioning。

PnormComponent:为非线性,传统的神经网络模型中使用 TanhComponent

NormalizeComponent:用于稳定训练 p-norm 网络,它是固定的,非可训练,非线性的。它不是在个别 individual activations(即个别结点的激活) 上起作用,而是对单帧的整个 vector 起作用,重新使它们单位标准化。

SoftmaxComponent:为最终的非线性特征,便于输出标准概率

SpliceComponent: 定义了完成 feature-frame-splicing 的窗口尺寸

FixedAffineComponent:类 LDA-like 的非相关转换,由标准的 weight matrix plus bias 组成(即Wx+b),通过标准的 stochastic gradient descent(非minibatch SGD?) 训练而来,使用 global learning rate

AffineComponentPreconditionedOnline:为 FixedAffineComponent 的一种提炼,训练过程中不仅使用global learning rate,还使用 matrix-valued learning rate(矩阵形式的学习率)来预处理梯度下降。参见 dnn2_preconditioning。

PnormComponent:为非线性,传统的神经网络模型中使用 TanhComponent

NormalizeComponent:用于稳定训练 p-norm 网络,它是固定的,非可训练,非线性的。它不是在个别 individual activations(即个别结点的激活) 上起作用,而是对单帧的整个 vector 起作用,重新使它们单位标准化。

SoftmaxComponent:为最终的非线性特征,便于输出标准概率

  • SigmoidComponent
    • dim
  • TanhComponent
    • dim
  • PowerComponent
    • power
    • dim
    • input-dim
  • SoftmaxComponent
    • 与目标训练集无关
    • dim
  • LogSoftmaxComponent
    • dim
  • RectifiedLinearComponent
    • dim
  • NormalizeComponent
    • 归一化层,对输入进行归一化。网络训练过程中,输入特征是一个mini-batch,即包含多个特征向量的矩阵。归一化层会对这个mini-batch进行归一化。该组员只有一个参数,与目标训练集无关
    • 用于稳定训练 p-norm 网络,它是固定的,非可训练,非线性的。它不是在个别 individual activations(即个别结点的激活) 上起作用,而是对单帧的整个 vector 起作用,重新使它们单位标准化。
    • dim
      • 输入特征维度
  • SoftHingeComponent
    • dim
  • PnormComponent
    • 该组员只有3个参数,输入输出位数依赖于上下层,参数p是固定的,与目标训练集无关
    • 为非线性,传统的神经网络模型中使用 TanhComponent
    • output-dim
      • 输出维数一般是输入维数是十分之一,如:

        pnorm_input_dim=3000

        pnorm_output_dim=300

    • input-dim
    • p
  • MaxoutComponent
    • output-dim
    • input-dim
  • ScaleComponent
    • dim
    • scale
  • AffineComponent
    • learning-rate // optional.
    • 如果指定了matrix,则从matrix中读取仿射变换
      • matrix
      • input-dim // optional.必须与matrix匹配
      • output-dim // optional.必须与matrix匹配
    • 如果没有指定matrix,则新建一个仿射变换
      • param-stddev
        • parameter standard deviation,权值的标准差
        • 将参数的标注差限制在一个范围内,防止参数变化过大,该方法有利于防止over-fitting
      • bias-stddev
        • bias standard deviation,偏置的标准差
        • 将偏置的标准差限制在一个范围内,防止偏置变化过大,该方法有利于防止over-fitting
      • input-dim
      • output-dim
  • AffineComponentPreconditioned
    • learning-rate // optional.
    • alpha //Precondition
    • max-change //Precondition
    • 如果指定了matrix,则从matrix中读取仿射变换
      • matrix
      • input-dim // optional.必须与matrix匹配
      • output-dim // optional.必须与matrix匹配
    • 如果没有指定matrix,则新建一个仿射变换
      • param-stddev
        • parameter standard deviation,权值的标准差
        • 将参数的标注差限制在一个范围内,防止参数变化过大,该方法有利于防止over-fitting
      • bias-stddev
        • bias standard deviation,偏置的标准差
        • 将偏置的标准差限制在一个范围内,防止偏置变化过大,该方法有利于防止over-fitting
      • input-dim
      • output-dim
  • AffineComponentPreconditionedOnline
    • 全连接层的权重参数层,在kaldi的表示中,一层网络被拆分成权重层和后面的非线性变换层,其中权重层保存了网络的连接参数W,这些参数是可以改变的,而后面的非线性变换层(如下面的SoftmaxComponent)是固定的。
    • 为 FixedAffineComponent 的一种提炼,训练过程中不仅使用global learning rate,还使用 matrix-valued learning rate(矩阵形式的学习率)来预处理梯度下降。参见 dnn2_preconditioning
    • learning-rate // optional.
    • num-samples-history
    • alpha //Precondition
    • max-change-per-sample //Precondition
    • rank-in //Online
    • rank-out //Online
    • update-period //Online
    • 如果指定了matrix,则从matrix中读取仿射变换
      • matrix
      • input-dim // optional.必须与matrix匹配
      • output-dim // optional.必须与matrix匹配
    • 如果没有指定matrix,则新建一个仿射变换
      • param-stddev
        • parameter standard deviation,权值的标准差
        • 将参数的标注差限制在一个范围内,防止参数变化过大,该方法有利于防止over-fitting
      • bias-stddev
        • bias standard deviation,偏置的标准差
        • 将偏置的标准差限制在一个范围内,防止偏置变化过大,该方法有利于防止over-fitting
      • input-dim
      • output-dim
  • SumGroupComponent
    • sizes
  • BlockAffineComponent
    • learning-rate // optional.
    • input-dim
    • output-dim
    • num-blocks
    • param-stddev
      • parameter standard deviation,权值的标准差
      • 将参数的标注差限制在一个范围内,防止参数变化过大,该方法有利于防止over-fitting
    • bias-stddev
      • bias standard deviation,偏置的标准差
      • 将偏置的标准差限制在一个范围内,防止偏置变化过大,该方法有利于防止over-fitting
  • BlockAffineComponentPreconditioned
    • learning-rate // optional.
    • alpha //Precondition
    • input-dim
    • output-dim
    • num-blocks
    • param-stddev
      • parameter standard deviation,权值的标准差
      • 将参数的标注差限制在一个范围内,防止参数变化过大,该方法有利于防止over-fitting
    • bias-stddev
      • bias standard deviation,偏置的标准差
      • 将偏置的标准差限制在一个范围内,防止偏置变化过大,该方法有利于防止over-fitting
  • PermuteComponent
    • dim
  • DctComponent
    • dim
    • dct-dim
    • reorder
    • dct-keep-dim
  • FixedLinearComponent
    • matrix
  • FixedAffineComponent
    • 类 LDA-like 的非相关转换,由标准的 weight matrix plus bias 组成(即Wx+b),通过标准的 stochastic gradient descent(非minibatch SGD?) 训练而来,使用 global learning rate
    • matrix
  • FixedScaleComponent
    • 固定激活重调组员
    • 该组员位于SoftmaxComponent之前,维数与SoftmaxComponent相同,都是Senone的个数,该组员的参数是一个先验概率向量,其中第i个元素是第i个Senone在所有对齐($alidir/ali.*.gz)中出现的概率(Senone i出现次数/所有Senone所有出现次数)
    • scales,先验概率参数,需要从对齐($alidir/ali.*.gz)和模型($alidir/final.mdl)中获取
  • FixedBiasComponent
    • bias
  • SpliceComponent
    • 对输入特征进行左右展开,目的是为了让网络能够获取到帧间特征的关联性。例如我要识别当前帧是哪个triphone,我可以将当前帧之前5帧和当前帧以后5帧一起构成一个由11个帧组成的特征作为网络输入。
    • 定义了完成 feature-frame-splicing 的窗口尺寸
    • input-dim
    • context
    • left-context
    • right-context
    • const-component-dim = 0
  • SpliceMaxComponent
    • dim
    • context
    • left-context
    • right-context
  • DropoutComponent
    • dim
    • dropout-proportion
    • dropout-scale
  • AdditiveNoiseComponent
    • dim
    • stddev
  • Convolutional1dComponent
    • learning-rate
    • appended-conv
    • patch-dim
      • 卷积核的大小(维度)
    • patch-step = 1
      • 卷积核的每次步进大小,若大于patch-dim,则卷积运算没有重叠部分。
    • patch-stride
      • 卷积层会将输入向量特征转换成二维矩阵(类似于图像)进行卷积,该值确定了二维矩阵的行数,同时,卷积核也受该值的影响。
      • 以kaldi提供核心代码为例:
      • 第一个卷积层输入是一个36*3*11的一维特征向量,令该值等于fbank不包含差分特征的维度(即36),则输入特征向量可转换成一个36*33的特征矩阵,再利用卷积核(7*33)进行卷积。
      • 第二个卷积层的输入是池化层的输出,令该值等于输入的维度,则转换成的特征矩阵仍然是原来的向量。
    • 如果指定了matrix,则从matrix中读取仿射变换
      • matrix
      • input-dim
        • optional.必须与matrix匹配
      • output-dim
        • optional.必须与matrix匹配
    • 如果没有指定matrix,则新建一个仿射变换
      • param-stddev
        • parameter standard deviation,权值的标准差
        • 将参数的标注差限制在一个范围内,防止参数变化过大,该方法有利于防止over-fitting
      • bias-stddev
        • bias standard deviation,偏置的标准差
        • 将偏置的标准差限制在一个范围内,防止偏置变化过大,该方法有利于防止over-fitting
      • input-dim
      • output-dim
    • // propagation function
    • /*
    • In Convolution1dComponent, filter is defined $num-filters x $filter-dim,
    • and bias vector B is defined by length $num-filters. The propatation is
    • Y = X o A' + B
    • where "o" is executing matrix-matrix convolution, which consists of a group
    • of vector-matrix convolutions.
    • For instance, the convolution of X(t) and the i-th filter A(i) is
    • Y(t,i) = X(t) o A'(i) + B(i)
    • The convolution used here is valid convolution. Meaning that the
    • output of M o N is of dim |M| - |N| + 1, assuming M is not shorter then N.
    • By default, input is arranged by
    • x (time), y (channel), z(frequency)
    • and output is arranged by
    • x (time), y (frequency), z(channel).
    • When appending convolutional1dcomponent, appended_conv_ should be
    • set ture for the appended convolutional1dcomponent.
    • */
  • MaxpoolingComponent
    • 池化层Component,该层会对卷积的特征进行最大化池化,即在一个范围内(池化面积)从同一个卷积核的输出选取最大的一个作为下一层的输入,池化核不重叠。池化的好处除了能够降维以外,更重要的一点是能够去除输入特征中的一些扰动。
    • input-dim
    • output-dim
    • pool-size
      • 池化面积
    • pool-stride
      • 池化范围,此处与卷积层相同,会将向量转换成矩阵进行处理。
    • /*
    • Input and output of maxpooling component is arranged as
    • x (time), y (frequency), z (channel)
    • for efficient pooling.
    • */

Kaldi的nnet2 Component的更多相关文章

  1. kaldi的TIMIT实例三

    ============================================================================ MMI + SGMM2 Training &a ...

  2. Dan版本的nnet2

    除了chain,nnet1, nnet2, nnet3训练时调整转移模型,chain模型使用类似与MMI的训练准则 Dan's setup does not uses pre-training. Da ...

  3. Xvector in Kaldi nnet3

    Xvector nnet Training of Xvector nnet Xvector nnet in Kaldi     Statistics Extraction Layer in Kaldi ...

  4. Kaldi nnet3的fastlstm与标准LSTM

    标准LSTM:             与标准LSTM相比,Kaldi的fastlstm对相同或类似的矩阵运算进行了合并.     # Component specific to 'projected ...

  5. [转]kaldi 神经网络

    转自:http://blog.csdn.net/xmdxcsj/article/details/54695506 overview type author CPU/GPU feature nnet1 ...

  6. Kaldi中的L2正则化

    steps/nnet3/train_dnn.py --l2-regularize-factor 影响模型参数的l2正则化强度的因子.要进行l2正则化,主要方法是在配置文件中使用'l2-regulari ...

  7. Kaldi语料的两种切分/组织方式及其处理

    text中每一个文本段由一个音频索引(indexed by utterance) 使用该方式的egs:librispeech.timit.thchs30.atc_en.atc_cn 语料的组织形式为: ...

  8. Kaldi单音素模型 训练部分

    在Kaldi中,单音素GMM的训练用的是Viterbi training,而不是Baum-Welch training.因此就不是用HMM Baum-Welch那几个公式去更新参数,也就不用计算前向概 ...

  9. kaldi 三个脚本cmd.sh path.sh run.sh

    参考   kaldi 的全部资料_v0.4 cmd.sh 脚本为: 可以很清楚的看到有 3 个分类分别对应 a,b,c.a 和 b 都是集群上去运行这个样子, c 就是我们需要的.我们在虚拟机上运行的 ...

随机推荐

  1. A1076. Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  2. 【CF242E】Xor Segment

    题目大意:给定一个长度为 N 的序列,支持两种询问,即:区间异或,区间求和. 题解:加深了对线段树的理解. 对于线段树维护的变量一定是易于 modify 的,对于查询的答案只需用维护的东西进行组合而成 ...

  3. [luogu3391][文艺平衡树]

    题目链接 思路 splay区间操作的裸题. 假如要对l-r这段区间操作,那么就先把l-1伸展到根节点,然后把r +1伸展为根的儿子.这样r + 1的左儿子就是要操作的区间了.只要在上面打上标记,以后每 ...

  4. 浅谈 WebDriver如何应对不同浏览器

    selenium2 基于对象的测试,在selenium2中一共支持以下浏览器: Firefox(FirefoxDriver) IE(InternetExplorerDriver) Chrome(Chr ...

  5. Fiddler安装证书

    1.打开Fiddler,点击工具栏中的Tools——>Fiddler Options…       2.切换到 HTTPS 选项卡,勾选 Capture HTTPS CONNECTs,勾选 De ...

  6. mysql中CONCAT值为空的问题解决办法

    在mysql中concat函数有一个特点就是有一个值为null那么不管第二个字符有多少内容都返回为空了,这个特性让我们在实例应用中可能觉得不方便,但实现就是这样我们需要使用其它办法来解决. 天在做op ...

  7. TensorFlow install

    $sudo pip install virtualenv Create a virtual environment (recommended) Create a new virtual environ ...

  8. Ajax和Json的介绍(一)

    Ajax简介: 优点: 1.Ajax是一种网页开发技术,异步JavaScript和XML;(这样叫的原因是是因为ajax传递数据是用json格式的,而json和xml又类似,都是以键值对,josn是& ...

  9. Hibernate的入门(概念1):

    什么是持久化类? 持久化类的编写规则? 区分自然主键和代理主键? 主键生成策略?

  10. java十进制转三十六进制

    import java.util.HashMap; public class Ten2Thirty { private static final String X36 = "01234567 ...