神经网络模型

大牛的《深度学习》笔记,Deep Learning速成教程

限于喜欢 提交于 2020-01-31 11:04:15
本文由Zouxy责编,全面介绍了深度学习的发展历史及其在各个领域的应用,并解释了深度学习的基本思想,深度与浅度学习的区别和深度学习与神经网络之间的关系。 深度学习 , 即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支。从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别、图像分类、文本理解等众多领域的算法设计思路,渐渐形成了一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。那么,深度学习有多深?学了究竟有几分?本文将带你领略深度学习高端范儿背后的方法与过程。 一、概述 二、背景 三、人脑视觉机理 四、关于特征 4.1、特征表示的粒度 4.2、初级(浅层)特征表示 4.3、结构性特征表示 4.4、需要有多少个特征? 五、Deep Learning的基本思想 六、浅层学习(Shallow Learning)和深度学习(Deep Learning) 七、Deep learning与Neural Network 八、Deep learning训练过程 8.1、传统神经网络的训练方法 8.2、deep learning训练过程 九、Deep Learning的常用模型或者方法 9.1、AutoEncoder自动编码器 9.2、Sparse Coding稀疏编码 9

卷积神经网络结构及其实现

喜你入骨 提交于 2020-01-31 04:35:30
卷积神经网络结构(CNN Convolutional neural network) 输入层 将每个像素代表一个特征节点输入到网络中 卷积层 卷积运算的主要目的是使原信号特征增强,并降低噪音 步长 表示卷积核在图片上移动的格数 步长大于一,是降维的一张方法 卷积后图片的尺寸,步长为S,原始图片尺寸为[N1,N1],卷积核大小为[N2,N2] [(N1-N2)/S+1,(N1-N2)/S+1] 方法 0填充 通过对5 5的灰度图添加边缘,使3 3的卷积层转化为5*5的卷积层 多通道卷积 通过不同的卷积提取不同的特征 将这些特征图相同位置上的值相加,生成一张特征图 加偏置,生成最终特征图 降采样层 降低网络训练参数及模型的过拟合程度 可以通过池化进行降采样,但池化不是唯一的降采样 池化 计算图像一个区域上的某个特定特征的平均值或最大值 均值池化 对池化区域内的像素点取均值 对背景信息更加敏感 最大池化 对池化区域内的像素点取最大值 对纹理特征信息更加敏感 全连接层 对生成的特征进行加权 softmax层 获得当前样例属于不同类别的概率 在Tensorflow中的实现 卷积函数 tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu,name) input 需要做卷积的输入数据,这是一个4维的张量[batch,in

万能的图神经网络解释器 GNNExplainer

左心房为你撑大大i 提交于 2020-01-31 02:45:13
GNNExplainer: Generating Explanations for Graph Neural Networks 作者信息: 纪厚业,北京邮电大学博士生,主要关注异质图神经网络及其应用. 知乎专栏对公式支持较好 , 见 https://zhuanlan.zhihu.com/c_1158788280744173568 个人公众号 图与推荐 本文由斯坦福Jure组发表在NeurIPS2019上. 一作Rex Ying也是著名的GraphSAGE的作者. 代码和数据 https://github.com/RexYing/gnn-model-explainer Introduction 图神经网络(Graph Neural Network), 作为深度学习领域最热门的方向之一,相关论文在各大顶会层出不穷. 但是,图神经网络的解释性问题没有得到较多的关注.图神经网络的解释性是非常有必要的:(1) 提升了GNN的可信程度. (2) 在一些注重公平性,隐私性和安全性的决策应用,可以提升决策的透明度. (3)可以更好的理解图本身的特性. 虽然一些基于Attention机制的模型(如Graph Attention Network)可以一定程度上对GNN进行解释. 但是,作者认为它们有两个问题: (1)GAT可以学习节点之间关系的权重

Investigating Neural Network based Query-by-Example Keyword Spotting Approach for Personalized Wake-

最后都变了- 提交于 2020-01-30 18:57:39
Investigating Neural Network based Query-by-Example Keyword Spotting Approach for Personalized Wake-up Word Detection in Mandarin Chinese 基于神经网络的示例查询关键词识别方法在普通话个性化唤醒词检测中的研究 Abstract 我们使用示例查询关键字查找(QbyE-KWS)方法来解决针对占地空间小,计算成本低的设备应用的个性化唤醒单词检测问题。 QbyE-KWS将关键字作为模板,并通过DTW在音频流中匹配模板,以查看是否包含关键字。在本文中,我们使用神经网络作为声学模型来提取DNN / LSTM音素的后验特征和LSTM嵌入特征。具体来说,我们研究了LSTM嵌入特征提取器,用于普通话中不同的建模单元,从音素到单词。我们还研究了两种流行的DTW方法的性能:S-DTW和SLN-DTW。 SLN-DTW无需在S-DTW方法中使用分段过程,就可以准确有效地搜索长音频流中的关键字。我们的研究表明,与S-DTW方法相比,DNN音素后验加SLN-DTW方法实现了最高的计算效率和最新性能,相对丢失率降低了78%。字级LSTM嵌入功能显示出比其他嵌入单元更高的性能。 索引词:关键字发现,唤醒词检测,DTW,示例查询,DNN,LSTM 1. Introduction

激活函数

拥有回忆 提交于 2020-01-30 04:24:33
目录 为什么需要激活函数 激活函数 常见的激活函数 Sigmoid Tanh ReLU Leaky ReLU ELU Maxout Softmax 结论 如何选择合适的激活函数 为什么需要激活函数 神经网络单个神经元的基本结构由线性输出 Z 和非线性输出 A 两部分组成。如下图所示: 其中,f(x) 即为线性输出 Z,g(x) 即为非线性输出,g() 表示激活函数。通俗来说,激活函数一般是非线性函数,其作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。 举个简单的例子,二分类问题,如果不使用激活函数,例如使用简单的逻辑回归,只能作简单的线性划分,如下图所示: 如果使用激活函数,则可以实现非线性划分,如下图所示: 可见,激活函数能够帮助我们引入非线性因素,使得神经网络能够更好地解决更加复杂的问题。 有个问题,为什么激活函数一般都是非线性的,而不能是线性的呢?从反面来说,如果所有的激活函数都是线性的,则激活函数 g(z)=z,即 a=z。那么,以两层神经网络为例,最终的输出为: 经过推导我们发现网络输出仍是 X 的线性组合。这表明,使用神经网络与直接使用线性模型的效果并没有什么两样。即便是包含多层隐藏层的神经网络,如果使用线性函数作为激活函数,最终的输出仍然是线性模型。这样的话神经网络就没有任何作用了。因此,隐藏层的激活函数必须要是非线性的。

《Sequence Models》课堂笔记

拜拜、爱过 提交于 2020-01-29 16:37:01
Lesson 5 Sequence Models 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第五门课程的课程笔记。 参考了其他人的笔记继续归纳的。 符号定义 假如我们想要建立一个能够自动识别句中人名地名等位置的序列模型,也就是一个命名实体识别问题,这常用于搜索引擎。命名实体识别系统可以用来查找不同类型的文本中的人名、公司名、时间、地点、国家名和货币名等等。 我们输入语句 "Harry Potter and Herminoe Granger invented a new spell." 作为输入数据 \(x\) ,我们想要这个序列模型输出 \(y\) ,使得输入的每个单词都对应一个输出值,同时这个 \(y\) 能够表明输入的单词是否是人名的一部分。技术上来说,还有更加复杂的输出形式,它不仅能够表明输入词是否是人名的一部分,它还能够告诉你这个人名在这个句子里从哪里开始到哪里结束。 以简单的输出形式为例。这个输入数据是 9 个单词组成的序列,所以最终我们会有 9 个特征集合来表示这 9 个单词,并按序列中的位置进行索引, \(x^{<1>},x^{<2>}\) 直到 \(x^{<9>}\) 来索引不同的位置。 输出数据也是一样,用 \(y^{<1>},y^{<2>}\) 到 \(y^{<9>}\) 来表示输出数据。同时使用 \(T_x\) 来表示输入序列的长度,

『cs231n』卷积神经网络的可视化与进一步理解

拈花ヽ惹草 提交于 2020-01-29 15:45:58
cs231n的第18课理解起来很吃力,听后又查了一些资料才算是勉强弄懂,所以这里贴一篇博文(根据自己理解有所修改)和原论文的翻译加深加深理解,其中原论文翻译比博文更容易理解,但是太长,而博文是业者而非学者所著,看着也更舒服一点。 另,本文涉及了反向传播的backpropagation算法,知乎上有个回答很不错,备份到文章里了,为支持原作者,这里给出知乎 原文连接 可视化理解卷积神经网络 这张PPT是本节课的核心,下面我来说说这张图。 可视化神经网络的思想就是构建一个逆向的卷积神经网络,但是不包括训练过程,使用原网络各个层的feature map当作输入,逆向生成像素级图片(各个层对应的具体逆操作实现方法下面的文献中有介绍),目的是研究每一层中每一个神经元对应的(或者说学习到的)特征到底是什么样的。 我们首先获取某一层的feature map,然后将除了想要研究的那个神经元之外所有神经元置零,作为返卷积网络的输入(a图所示),经过逆向重构后,得到的图片就反映了这个神经元学习到的特征。 Relu层的逆处理得到了特殊关注,向前传播中,小于零的神经元直接置零(b1),如果按照计算梯度的反向传播算法( backpropagation )的话那么应该在向前传播时置零的位置仍然置零(b2),而原论文按照deconvent的方法,相当于把Relu对称化,直接对反向的特征图进行了标准的Relu

深度学习笔记(五)——神经网络和深度学习(深层神经网络)

大兔子大兔子 提交于 2020-01-29 03:31:32
1.深层神经网络 深层神经网络其实就是包含更多的隐藏层神经网络。下图分别列举了逻辑回归、1个隐藏层的神经网络、2个隐藏层的神经网络和5个隐藏层的神经网络它们的模型结构。 命名规则上,一般只参考隐藏层个数和输出层。例如,上图中的逻辑回归又叫1 layer NN,1个隐藏层的神经网络叫做2 layer NN,2个隐藏层的神经网络叫做3 layer NN,以此类推。如果是L-layer NN,则包含了L-1个隐藏层,最后的L层是输出层。 2.深层网络中的前向传播 对于第 层 ,其正向传播过程的 和 可以表示为(此处是m个样本向量化的形式): 也就是X。向量化也就是将所有训练样本写成列向量,从左到右叠起来。对上式采用for循环计算每层的激活函数等,并且层间计算无法避免使用for循环进行计算。 3.核对矩阵的维数 对于单个训练样本,输入x的维度是 ,神经网络的参数 和 的维度分别是: 其中, 和 分别是第 层和第 层的神经元个数。 ,表示输入层特征个数。 反向传播过程中, 和 的维度分别与 和 相同。 正向传播过程中, 和 的维度均为 ,且 和 的维度分别与 和 相同。 对于m个样本,输入矩阵X的维度是 。需要注意的是 和 的维度与只有单个样本是相同的。但在运算 中,由于python的广播性质且 的每一列都是一样的, 会被当作 矩阵进行运算。 和 的维度分别与 和 相同。 和 的维度均为

Google神经网络的对抗训练已获得专利,BERT到底关注的什么?...#20200115

大兔子大兔子 提交于 2020-01-28 13:37:23
写在前面 本系列文章分享笔者每天学习的一些圈内前沿有趣事件和开源工作,分享转需。 欢迎关注公众号AISphere。 目录简介 Google神经网络的对抗训练已获得专利 BERT到底关注的什么?斯坦福对BERT Attention的分析 开源界新项目发布-Cortex v0.12:面向开发人员的机器学习基础架构 Google神经网络的对抗训练已获得专利 最近Christian Szegedy和Ian Goodfellow为神经网络的对抗训练申请了专利(美国专利10521718) 此事件在reddit上发起了热烈的讨论: 提问者问此事件是否会让使用了神经网络对抗训练的公司和学术界更依赖google,但目前没有一个明确说法。 有一些客观评论我还是比较喜欢的,比如网友ReginaldIII的一个评论: 就像每次发生这种情况以及每次将其发布到此子目录一样,这毫无意义。 每次都在评论中来回争论是好/坏,道德/不道德,意图良好等,但最终只是人们的主观意见。 然后,我们每次继续使线程保持相同的状态,因为它不会对我们所做的工作或将继续进行的工作产生任何影响。 我不喜欢它(指专利制度),但是我理解为什么其他人认为它是必要的。专利制度及其相关的法律和知识产权已被滥用,通过多年的游说兴趣和金钱来雕刻。大多数人都在防御性地为这些概念申请专利,以应对专利制度中的重大缺陷。 以及rhiyo的:

深层神经网络小结

风格不统一 提交于 2020-01-27 17:53:48
设计神经网络结构时的两个总体原则——非线性结构和多层结构:深度学习基本上就是深层神经网络的代名词,非线性结构和多层结构是解决复杂问题的必要方法,线性模型和浅层模型具有固有局限性。 对于损失函数:神经网络是一个优化问题,而损失函数刻画了神经网络需要优化的目标。分类问题和回归问题有各自常用的损失函数,实践中又是也需要自己设计更加贴近实际问题需求的损失函数。不同损失函数对神经网络参数优化结果的影响不同。 关于神经网络的优化:优化神经网络时最常用的是梯度下降算法和反向传播算法,随机梯度下降和使用batch的随机梯度下降算法也需要掌握,并需懂得使用TensorFlow优化神经网络计算框架。 关于神经网络优化过程中可能会遇到的问题:1.通过指数衰减的方式来设置学习率,既可以加快训练初期的训练速度,同时在训练后期又不会出现损失函数在极小值周围徘徊往返的情况;2.通过正则化可以解决过拟合问题,当损失函数仅仅取决于在训练数据上的拟合程度时,神经网络模型有可能只是“记忆”了所有的训练数据,而无法很好地对未知数据做出判断,正则化通过在损失函数中加入对模型复杂程度的隐私,可以有效避免过拟合问题;3.使用滑动平均模型可以让最后得到的模型在未知数据上更加健壮。 来源: CSDN 作者: xuesuoziluoshu 链接: https://blog.csdn.net/xuesuoziluoshu