神经网络
文章平均质量分 66
xmdxcsj
毕业于中科院声学所,在BAT从事语音技术研究多年。微信公众号:谈谈语音技术,关注后跟踪最新博文。
展开
-
深度学习框架对比
常用的深度学习框架有theano、caffe、torch7、dl4j,查阅了一些资料,了解了各自的一些特点caffe:c++,工程性能好,相比theano容易调试,模块集成度高,不易实现神经网络的个性化需求(比如修改loss function),主要是CNN,其他网络的集成不太好theano:基于python,方便修改神经网络结构,适合研究,学习曲线比较陡峭,symbol compile调原创 2015-10-06 22:03:05 · 1485 阅读 · 0 评论 -
CTC学习笔记(四) 解码-WFST
类似于HCLG的wfst结构,EESEN: END-TO-END SPEECH RECOGNITION USING DEEP RNN MODELS AND WFST-BASED DECODING文章提出了TLG的网络结构GrammarLexicon有两种形式,可以基于characters和phonemes。 Token对应于传统的state,前后添加blank,而且状态存在自旋 网络S=T∘mi原创 2016-07-04 22:19:16 · 10364 阅读 · 1 评论 -
lstm(一) 演化之路
递归神经网络引入了时序的反馈机制,在语音、音乐等时序信号的分析上有重要的意义。 Hochreiter(应该是Schmidhuber的弟子)在1991年分析了bptt带来的梯度爆炸和消失问题,给学习算法带来了梯度 震荡和学习困难等问题; Hochreater和Schmidhuber在1997年提出了LSTM的网络结构,引入CEC单元解决bptt的梯度爆炸和消失问题; Felix Gers(Sc原创 2016-09-13 16:14:28 · 15609 阅读 · 1 评论 -
lstm(二) 前后向公式
lstm包含forget gate以及peephole前向后向参考[1]《Supervised Sequence Labelling with Recurrent Neural Networks》 Alex Graves chapter4 [2]http://blog.csdn.net/u010754290/article/details/47167979原创 2016-09-13 22:26:08 · 1659 阅读 · 0 评论 -
神经网络-pnorm
发展历史1.bagging算法Leo Breiman[1]在1994年提出了bagging算法,给定一个大小为 n的训练集D,Bagging算法从中均匀、有放回地选出 m个大小为 n’的子集DiD_{i},作为新的训练集。在这m个训练集上使用分类、回归等算法,则可得到m个模型,再通过取平均值、取多数票等方法,即可得到Bagging的结果。2.dropoutHinton[2]在2012年提出了drop原创 2016-12-02 21:12:08 · 4030 阅读 · 0 评论 -
神经网络-LFR model
CLDNN[1]不同的网络结构有不同的优势 - CNN擅长减少频率偏移 - LSTM擅长对时序信号进行建模 - DNN可以对特征做更高阶的抽象,更容易进行分类 CLDNN依次将CNN/LSTM/DNN进行串联组合成一个新的网络,相当于依次进行频域变化/时域关联/特征抽象,相比于单一的LSTM网络,可以获得性能的提升。delay constraint[2]对ctc模型来讲,在数据帧和输出l原创 2016-12-02 21:14:27 · 3410 阅读 · 0 评论 -
CTC学习笔记(五) eesen训练源码
essen源码参考https://github.com/yajiemiao/eesen,这里简单说一下涉及到训练前后向的核心算法源码实现。 以单句训练为准(多句并行类似),用到的变量 变量 含义 phones_num 最后一层输出节点个数,对应于|phones|+1 labels_num 一句话对应的标注扩展blank以后的个数,比如”123”扩展为”b1b2b3b” f原创 2016-11-24 20:58:58 · 6140 阅读 · 0 评论 -
lstm(三) 模型压缩lstmp
lstmp结构对于传统的lstm而言 it=δ(Wixxt+Wimmt−1+Wicct−1+bi)i_t=\delta(W_{ix}x_t+W_{im}m_{t-1}+W_{ic}c_{t-1}+b_i) ft=δ(Wfxxt+Wfmmt−1+Wfcct−1+bi)f_t=\delta(W_{fx}x_t+W_{fm}m_{t-1}+W_{fc}c_{t-1}+b_i) ct=ft⊙ct−1+原创 2016-11-24 21:05:19 · 8326 阅读 · 4 评论 -
神经网络-CNN结构和语音识别应用
一、基本结构入门介绍:https://ujjwalkarn.me/2016/08/11/intuitive-explanation-convnets/ 参考deep learning. Ian Goodfellow的chapter9 cross-correlation: S(i,j)=(I∗K)(i,j)=∑M∑NI(i+m,j+n)K(m,n)S(i,j)=(I*K)(i,j)=\sum_M原创 2017-01-23 21:46:23 · 22801 阅读 · 9 评论 -
生成对抗网络GAN(一) 简介和变种
基本概念[1]目标函数零和游戏(zero-sum game) 纳什均衡 minimax算法 GAN借鉴了零和游戏的思想,引入生成网络和辨别网络,让两个网络互相博弈,当辨别网络不能辨别数据来自于真实分布还是生成网络的时候,此时的生成网络可以当做一个数据分布到另一个数据分布的转化器。 假设生成网络GG,辨别网络DD,noise数据zz,noise分布pz(z)p_z(z),data数据xx,da原创 2017-11-12 16:57:56 · 4175 阅读 · 0 评论 -
CTC学习笔记(三) 解码
解码是对于输入序列x找出概率最大的输出序列l,而不是概率最大的一条输出路径,因为输出路径和输出序列是多对一关系。 l∗=argmax{p(l|x)}l^*=argmax \{p(l|x)\}best path decoding最优路径找出每一帧输出的最大概率组成的输出序列即为最后的解码结果,这种方式会引入问题。 对于上图,这种方法解码出来的结果是blank,但是A的概率反而更高。constr原创 2016-07-02 00:43:50 · 17732 阅读 · 3 评论 -
CTC学习笔记(二) 训练和公式推导
整体思路训练流程和传统的神经网络类似,构建loss function,然后根据BP算法进行训练,不同之处在于传统的神经网络的训练准则是针对每帧数据,即每帧数据的训练误差最小,而CTC的训练准则是基于序列(比如语音识别的一整句话)的,比如最大化p(z|x)p(z|x),序列化的概率求解比较复杂,因为一个输出序列可以对应很多的路径,所有引入前后向算法来简化计算。前期准备输入 xx,长度为T输出集合原创 2016-06-26 18:57:46 · 42849 阅读 · 11 评论 -
CTC学习笔记(一) 简介
背景Connectionist temporal classification简称CTC,翻译不太清楚,可以理解为基于神经网络的时序类分类。其中classification比较好理解,表示分类问题;temporal可以理解为时序类问题,比如语音识别的一帧数据,很难给出一个label,但是几十帧数据就容易判断出对应的发音label,这个词也给出CTC最核心的意义;connectionist可以理解为神原创 2016-06-26 18:49:34 · 33133 阅读 · 6 评论 -
神经网络-overfitting(一)
一、过拟合简单说一下过拟合1问题。(一)、现象在监督学习中overfit的表现为,随着训练的进行,训练集上面的表现(比如loss function或者accuracy)一直变好,但是在测试集上面的表现却是先变好然后会出现拐点,表现变差。 上图中的红线表示测试集的误差,蓝线表示训练集的误差。(二)、原因一般是由于模型比较复杂、参数太多,而训练数据相对有限,随着训练的进行,导致训练出的模型过度拟合原创 2015-12-13 21:30:36 · 3990 阅读 · 0 评论 -
神经网络-overfitting(二)
一、概况(一)、范数由于正则化的定义需要使用到范数(norm)的概念,这里简单介绍一下范数的概念1。1.物理意义范数是对函数、向量和矩阵定义的一种度量形式,可以用来测量两个函数、向量或者矩阵之间的距离。2.数学定义想要成为范数,需要满足一下三个性质:非负性 ∀X∈Rn,有∥w∥≥0,当且仅当X=0时,∥w∥=0\forall X\in R^n,有\lVert w \rVert\geq0,当且仅当原创 2015-12-13 21:32:16 · 1876 阅读 · 0 评论 -
神经网络-激活函数
一、种类常见的神经网络激活函数包括sigmoid、softmax、relu、tanh等,具体函数形式和特点可以参考1 接下来简单说一下各类激活函数的特点。(一)、sigmoid输出值范围在0-1之间,非线性导数值简单,y′=y(1−y)y'=y(1-y)当值很大或者很小的时候,导数值趋近于0,从而加重gradient vanish,收敛速度慢(二)、softmax输出值在0-1之间,可方原创 2015-12-13 22:38:49 · 2441 阅读 · 0 评论 -
神经网络-损失函数
先上结论:cross entropy相比于quadratic cost function,具有收敛速度快,更容易获得全局最优的特点。 对于损失函数的收敛特性,我们期望是当误差越大的时候,收敛(学习)速度应该越快。一、quadratic cost function(一)、定义平方和损失函数定义 C=(y−a)22C=\frac{(y-a)^2}{2} 其中yy是期望输出,aa是实际输出(二)、收原创 2015-12-07 20:17:17 · 19590 阅读 · 5 评论 -
RNN(一) overview
想学习神经网络,由于最近有语义理解和断句的工作需求,正好以RNN为切入点,开始神经网络方面的学习。一些RNN学习的资源:https://en.wikipedia.org/wiki/Recurrent_neural_networkhttp://www.zhihu.com/question/29411132神经网络基础Neural Networks神经网络中的神原创 2015-10-05 00:15:15 · 1583 阅读 · 0 评论 -
RNN(三) 在SLU中的应用
LU的主要任务是提取语义或者fillingslots,传统的解决SLU的方法包括生成模型(HMM/CFG)或者判别模型(CRF),最近RNN也开始用于SLU。SLU的语义解析包括三个方面任务:domain detection, intent determination, and slot filling,例子如下:对于slot filling来讲,输入是句子,输出是slot序列。W原创 2015-10-05 20:40:19 · 2637 阅读 · 0 评论 -
RNN(二) 前向和BPTT
RNN(二) 前向和BPTT标签(空格分隔): RNN BPTTbasic definitionTo simply notation, the RNN here only contains one input layer, one hidden layer and one putput layer. Notations are listed below: neural layer node原创 2015-11-28 23:26:12 · 4972 阅读 · 0 评论 -
生成对抗网络GAN(二) 语音相关
生成对抗网络GAN(二) 语音相关@(gan)多任务对抗学习[1] 为了获得对噪音的鲁棒性,引入多任务学习,分为三个网络: - 输入网络(绿色),用作特征提取器 - senone输出网络(红色),用作senone分类 - domain输出网络(蓝色),domain这里指噪音的类型,总共17种噪声为了增加对噪音的鲁棒性,增加了GRL层(gradient reversal layer),网络在反原创 2017-11-12 16:59:33 · 12010 阅读 · 5 评论