神经网络模型

kaldi脚本学习——am-nnet-simple

最后都变了- 提交于 2019-12-03 04:06:14
Nnet3中的AmNnetSimple类是一个标准的声学模型类,该类通过调用Nnet类进行神经网络操作。 类的私有成员:1)Vector<BaseFloat> priors_; 2)int32 left_context; 3)int32 right_context; 4)神经网络类 Nnet nnet_ 5)const AmNnetSimple &operator=() 类的公有接口:包括对神经网络的一些基本操作 1)读写操作 2)获取神经网络的输出节点数 3)设置网络的的比例缩放, 4)设置或者获取网络的Priors 5)获取网络的信息 6)获取网络的输入维数,Ivector维数,左右连接帧的个数 7)设置网络的左右帧数,left_context_和right_context_ 来源: CSDN 作者: abcd_12 链接: https://blog.csdn.net/abcd_12/article/details/81044764

Batch Normalization

心已入冬 提交于 2019-12-03 02:36:43
Batch Normalization作为最近一年来DL的重要成果,已经广泛被证明其有效性和重要性。虽然有些细节处理还解释不清其理论原因,但是实践证明好用才是真的好,别忘了DL从Hinton对深层网络做Pre-Train开始就是一个经验领先于理论分析的偏经验的一门学问。 本文是对论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》的导读(看看看, 这是通过减少内部协变量移位加速神经网络训练)。 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢?BatchNorm就是在深度神经网络训练过程中使得每一层神经网络的输入保持相同分布的(相同分布是怎样的?是什么的相同分布?参数吗?)。 接下来一步一步的理解什么是BN。 为什么深度神经网络随着网络深度加深,训练起来越困难,收敛越来越慢?这是个在DL领域很接近本质的好问题。很多论文都是解决这个问题的,比如ReLU激活函数,再比如Residual Network,BN本质上也是解释并从某个不同的角度来解决这个问题的(这个解释还是很妙的)。

经典卷积神经网络——AlexNet

时光总嘲笑我的痴心妄想 提交于 2019-12-03 01:57:52
一.网络结构   AlexNet由5层卷积层和3层全连接层组成。   论文中是把网络放在两个GPU上进行,为了方便我们仅考虑一个GPU的情况。   上图中的输入是 224 × 224 224×224,不过经过计算 ( 224 − 11 ) / 4 = 54.75 (224−11)/4=54.75并不是论文中的 55 × 55 55×55,而使用 227 × 227 227×227作为输入,   卷积层C1:处理流程为:卷积、ReLU、LRN、池化、     卷积:输入为227x227x3,使用96个11x11x3的卷积核,步长为4x4,得到FeatureMap为55x55x96     池化:3x3最大池化,步长为2,得到27x27x96的FeatureMap   卷积层C2: 处理流程为:卷积、ReLU、LRN、池化     卷积:输入为27x27x96,使用256个5x5x96的卷积核(padding = 2),步长为1x1,得到FeatureMap为27*27*256     池化:3x3最大池化,步长为2,得到13x13x26的FeatureMap   卷积层C3: 处理流程为:卷积、ReLU     卷积: 输入为13x13x256,使用384个3x3x256的卷积核(padding = 1),,步长为1x1,得到13x13x384的FeatureMap   卷积层C4:

深度学习阅读清单

匿名 (未验证) 提交于 2019-12-03 00:38:01
图书 深度学习 ,Yoshua Bengio,Ian Goodfellow,Aaron Courville,MIT Press,准备中。 评论文章 代表性学习:评论与新视角 ,Yoshua Bengio,Aaron Courville,Pascal Vincent,Arxiv,2012。 专题或评论文章 学习人工智能的深层架构 (基础和机器学习趋势,2009)。 深度机器学习 - 人工智能研究的新前沿 - Itamar Arel,Derek C. Rose和Thomas P. Karnowski 的 调查报告 。 格雷夫斯,答(2012年)。 用递归神经网络进行监督序列标记 (第385卷)。 斯普林格。 Schmidhuber,J.(2014)。 神经网络的深度学习:概述。 75页,850+参考文献, http: //arxiv.org/abs/1404.7828,PDF&LATEX 源代码和 http://www.idsia.ch/~juergen/ deep-learning-overview.html 下的完整公共BIBTEX文件 。 LeCun,Yann,Yoshua Bengio和Geoffrey Hinton。 自然 521,没有。 7553(2015):436-444。 强化学习 Mnih,Volodymyr,Koray Kavukcuoglu,David

用简单神经网络准确识别颜色

匿名 (未验证) 提交于 2019-12-03 00:29:01
Matlab神经网络工具箱具有比较强大的训练功能,之前写过一篇关于神经网络就一些简单的数据进行训练并进行预测的文章。 简单神经网络 最近因为需要,拓展出来了关于颜色识别的功能。原理很简单,就是把图片RGB的三通道值所谓输入,把目标颜色作为输出,构建神经网络进行学习,从而比较准确的识别颜色。 首先是 训练模块代码: (手打注释,难免有纰漏,还望指正) clc clear %读入原始图像 original =imread('E:\Matlab\deleted\eight.jpg'); %读入输出图像 label =imread('E:\Matlab\deleted\eight_color.jpg'); %图像尺寸参数,imgwidth*imghight 对应像素值 imgwidth =1280; imghight =480; %将三个通道的值进行分离 sqrs =original(:,:,1); sqjdcs =original(:,:,2); sqglmj =original(:,:,3); %调整三个通道的数据格式,变为 一行*n列 sqrs =reshape(sqrs,1,imgwidth*imghight); sqjdcs =reshape(sqjdcs,1,imgwidth*imghight); sqglmj =reshape(sqglmj,1,imgwidth

卷积神经网络理解

匿名 (未验证) 提交于 2019-12-03 00:28:02
本文转载自这篇文章 为什么要用神经网络? 对于一个分类任务,在用机器学习算法来做时,首先要明确feature和label,然后把这个数据”灌”到算法里去训练,最后保存模型,再来预测分类的准确性。但是这就有个问题,即我们需要实现确定好特征,每一个特征即为一个维度, 特征维度过少,我们可能无法精确的分类出来,即我们所说的欠拟合,如果特征维度过多,可能会导致我们在分类过程中过于注重某个特征导致分类错误,即过拟合。 这就导致我们在特征工程上需要花很多时间和精力,才能使模型训练得到一个好的效果。 然而神经网络的出现使我们不需要做大量的特征工程,譬如提前设计好特征的内容或者说特征的数量等等,我们可以直接把数据灌进去,让它自己训练,自我“修正”,即可得到一个较好的效果。 前面说了很多优点,这里就不多说了,简单说说缺点吧。我们试想一下如果加深我们的网络层,每一个网络层增加神经元的数量,那么参数的个数将是M*N(m为网络层数,N为每层神经元个数),所需的参数会非常多,参数一多,模型就复杂了,越是复杂的模型就越不好调参,也越容易过拟合。此外我们从神经网络的反向传播的过程来看,梯度在反向传播时,不断的迭代会导致梯度越来越小,即 梯度消失的情况,梯度一旦趋于0,那么权值就无法更新,这个神经元相当于是不起作用了,也就很难导致收敛。 尤其是在图像领域,用最基本的神经网络,是不太合适的。 三个基本层 卷积层

常见的卷积神经网络

匿名 (未验证) 提交于 2019-12-03 00:27:02
1.LeNet 点击见详细描述 1994年由卷积网络之父提出 LeNet网络除去输入输出层总共有六层网络,卷积核都是5*5的,stride=1,池化都是平均池化: conv->pool->conv->pool->conv(fc)->fc 2.AlexNet 2012年,Imagenet比赛冠军。是神经网络在低谷期的第一次发声,极大程度推动了深度学习的发展。 AlexNet的结构及参数如上图所示,是8层网络结构(忽略激活,池化,LRN,和dropout层),有5个卷积层和3个全连接层,第一卷积层使用大的卷积核,大小为11*11,步长为4,第二卷积层使用5*5的卷积核大小,步长为1,剩余卷积层都是3*3的大小,步长为1。激活函数使用ReLu(虽然不是他发明,但是他将其发扬光大),池化层使用重叠的最大池化,大小为3*3,步长为2。在全连接层增加了dropout,第一次将其实用化。 (1)relu激活函数在层数较深时效果比sigmoid好 (2)drop out 降低过拟合,效果好,这算是一个trick吧 (3)步长设置比池化核小,增加特征丰富性 (4)多个LRN就提高0.1%,真是可有可无,好像现在用的也比较少。 (5)由于当时显卡性能在现在看来十分辣鸡,不能满足神经网络训练要求,于是结构被分成两个并行部分 (6)数据集扩增,防止过拟合。 3.VGGNet

卷积神经网络的网络结构――GoogLeNet

匿名 (未验证) 提交于 2019-12-03 00:26:01
《Going deeper with convolutions》 2014,Google,GoogLeNet(向早期的LeNet致敬),Inception V1 Google Inception Net首次出现在ILSVRC 2014的比赛中(和VGGNet同年),就以较大的优势取得了第一名。它最大的特点是控制了计算量和参数量的同时,获得了非常好的分类性能―top5的错误率6.67%。Inception V1有22层深,比AlexNet的8层或者VGGNet的19层还要更深,但其计算量和参数量仅为AlexNet的1/12,却可以达到远胜于AlexNet的准确率。 (1)Inception V1降低参数量的目的有两点,第一,参数越多模型越庞大,需要供模型学习的数据量就越大,而目前高质量的数据非常昂贵;第二参数越多,耗费的计算资源也会更大。 (2)Inception V1参数少但效果好的原因除了模型层数更深、表达能力更强外,还有两点:一是去除了最后的全连接层,用全局池化层(即将图片尺寸变为1*1)来取代它。全连接层几乎占据了AlexNet或VGGNet中90%的参数量,而且会引起过拟合,去除全连接层后模型训练更快并且减轻了过拟合。二是Inception V1中精心设计的Inception Module提高了参数的利用效率。 1.动机和思考: 一般来说

卷积神经网络系列之softmax,softmax loss和cross entropy

匿名 (未验证) 提交于 2019-12-03 00:22:01
全连接层到损失层 间的计算 先理清下 从全连接层到损失层 之间的计算。 这张图的等号左边部分就是全连接层做的事,W是 全连接层的参数 ,我们也称为权值, X是全连接层的输入,也就是特征 。 从图上可以看出特征X是N*1的向量,这是怎么得到的呢? ,假设全连接层前面连接的是一个卷积层,这个卷积层的输出是100个特征(也就是我们常说的feature map的channel为100),每个特征的大小是4*4, 那么在将这些特征输入给全连接层之前会将这些特征flat成N*1的向量(这个时候N就是100*4*4=1600) 。 解释完X,再来看W,W是全连接层的参数,是个T*N的矩阵,这个N和X的N对应, T表示类别数,比如你是7分类,那么T就是7。我们所说的训练一个网络,对于全连接层而言就是寻找最合适的W矩阵。 向量 (也就是图中的logits[T*1]),这个向量里面的每个数都没有大小限制的, 也就是从负无穷大到正无穷大 。 一般会在全连接层后面接一个softmax层 , 这个softmax的输入是T*1的向量,输出也是T*1的向量(也就是图中的prob[T*1],这个向量的每个值表示这个样本属于每个类的概率),只不过输出的向量的每个值的大小范围为0到1。 softmax的输出向量是就是概率,该样本属于各个类的概率! softmax计算

BP神经网络+PID控制simulink仿真

匿名 (未验证) 提交于 2019-12-03 00:22:01
点击打开链接 点击打开链接 点击打开链接 )早已经做过类似的工作了,并且总结出许多经验和错误,但鉴于在论坛中许多错误没有一个完整的回答,信息都是零零散散,于是我打算把我做的一整套流程记录下来,以免日后忘记,同时也希望可以帮助到一些人。 链接1 里面是我最早看到的资料,前辈1在MATLAB中文论坛中发布自己搭建的工程文件及其所遇到的问题,后面楼主说是解决了问题,但是没有上传(这个可以谅解),另外里面有许多热心网友的回答是非常有用的(这些回答对我自己后面解决相关问题,成功实现Simulink仿真是非常关键的,在这里非常感谢论坛中的各位前辈 )。 链接2 这个确实是可以用的,只不过对MATLAB版本有限制。开始我下载之后用我的MATLAB2016b打开工程,点击run后就报错, The block 'BPPID/Subsystem/Unit Delay1' does not permit continuous sample time (0 or [0,0]) for the parameter 'SampleTime'. 里面分了两大派,一部分人说亲测有效,大赞跟帖;一部分人也像我一样运行报错,此时我疑惑了。于是猜测可能是MATLAB版本问题,于是在另一台电脑上的MATLAB2014b版本运行,果然得到楼主那一条漂亮的曲线(虽然我的工作就是点击一下run,但是还是很开心 )