Kaldi的nnet2 Component
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的更多相关文章
- kaldi的TIMIT实例三
============================================================================ MMI + SGMM2 Training &a ...
- Dan版本的nnet2
除了chain,nnet1, nnet2, nnet3训练时调整转移模型,chain模型使用类似与MMI的训练准则 Dan's setup does not uses pre-training. Da ...
- Xvector in Kaldi nnet3
Xvector nnet Training of Xvector nnet Xvector nnet in Kaldi Statistics Extraction Layer in Kaldi ...
- Kaldi nnet3的fastlstm与标准LSTM
标准LSTM: 与标准LSTM相比,Kaldi的fastlstm对相同或类似的矩阵运算进行了合并. # Component specific to 'projected ...
- [转]kaldi 神经网络
转自:http://blog.csdn.net/xmdxcsj/article/details/54695506 overview type author CPU/GPU feature nnet1 ...
- Kaldi中的L2正则化
steps/nnet3/train_dnn.py --l2-regularize-factor 影响模型参数的l2正则化强度的因子.要进行l2正则化,主要方法是在配置文件中使用'l2-regulari ...
- Kaldi语料的两种切分/组织方式及其处理
text中每一个文本段由一个音频索引(indexed by utterance) 使用该方式的egs:librispeech.timit.thchs30.atc_en.atc_cn 语料的组织形式为: ...
- Kaldi单音素模型 训练部分
在Kaldi中,单音素GMM的训练用的是Viterbi training,而不是Baum-Welch training.因此就不是用HMM Baum-Welch那几个公式去更新参数,也就不用计算前向概 ...
- kaldi 三个脚本cmd.sh path.sh run.sh
参考 kaldi 的全部资料_v0.4 cmd.sh 脚本为: 可以很清楚的看到有 3 个分类分别对应 a,b,c.a 和 b 都是集群上去运行这个样子, c 就是我们需要的.我们在虚拟机上运行的 ...
随机推荐
- webpack中babel配置 --- runtime-transform和babel-pollfill
webpack - babel配置 babel是一个javascript编译器,是前端开发中的一个利器.它突破了浏览器实现es标准的限制,使我们在开发中可以使用最新的javascript语法. 通过构 ...
- Apache Ant 项目构建
项目构建:通过构建工具对多个项目进行统一批量的编译和运行,比如,对多个Jmeter脚本批量运行 1.Ant是什么? Ant是 构建工具,Apache Ant是一个将软件编译.测试.部署等步骤联系在一起 ...
- Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践
转: Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践 阿里加多 0.1 2018.03.23 17:19* 字数 492 阅读 2613评论 2喜欢 1 一.前 ...
- 安装SDL遇到的问题
版本:SDL-1.2.15 转自,遇到的问题与此一样:http://blog.csdn.net/huierlc/article/details/50165237 问题1:make时出现 fatal e ...
- JS学习笔记Day2
一.程序的三大结构 顺序结构:从上到下,从左到右依次执行每一条语句 选择结构:根据条件判断选择要执行的语句,出口只有一个 循环结构:满足一定条件,重复执行一段代码 二.选择结构 1.三元运算符:? : ...
- oracle出现无法响应新的请求,报ora-12516错误
oracle的会话数超出了限制,一般都是由于多次connect建立多个连接会话引起. 解决办法: (oracle登录后台,1)sqlplus /nolog 2)conn / as sysdba) ...
- python: 基本知识(二)
1.set() set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. x = set('hello’) y = set('world') x ---- ...
- python自动化开发-[第六天]-常用模块、面向对象
今日概要: 1.常用模块 - os模块 - random模块 - shutil模块 - hashlib模块 - pickle/json模块 - shelve模块 - configparser模块 - ...
- CatBoost算法和调参
欢迎关注博主主页,学习python视频资源 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?co ...
- python爬虫之Cookie
由于http协议是无状态协议(假如登录成功,当访问该网站的其他网页时,登录状态消失),此时,需要将会话信息保存起来,通过cookie或者session的方式 cookie 将所有的回话信息保存在客户端 ...