神经网络模型

论文笔记 - 《Deep Learning》(Yann LeCun Yoshua Bengio & Geoffrey Hinton)经典

别等时光非礼了梦想. 提交于 2020-01-19 15:42:10
论文: LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. “Deep learning.” Nature 521.7553 (2015): 436-444. [pdf] (Three Giants’ Survey) 监督学习 机器学习最常见的形式,不管是否深入都是监督学习。 我们计算一个目标函数,它度量输出分数与期望的分数模式之间的误差(距离)。然后,机器修改其内部可调参数,以减少这种误差。这些可调参数通常称为权重,它们是实数,可以看做是定义机器输入输出函数的按钮。在一个典型的深度学习系统中,可能有数亿个这样的可调权重,以及数亿个用于训练机器的带标签的例子。 在实践中,大多数从业者使用一种称为随机梯度下降(SGD)的程序。这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,并相应地调整权重。从训练集到目标函数的平均值停止下降,对许多小样本重复这个过程,它们之所以被称为随机,是因为每个小样本集都给出了所有样本平均梯度的这里会有的噪声的估计。 传统方法是手工设计良好的特征提取器,这需要大量的工程技术和专业领域知识。但是如果通过使用通过学习过程而得到的良好的特征,那么这些都是可以避免的了。这就是深度学习的关键优势。 深度学习的体系结构是简单模块的多层栈,所有(或大部分)模块的目标是学习,还有许多计算机非线性输入输出的映射

神经网络为什么要归一化

柔情痞子 提交于 2020-01-19 06:56:10
用神经网络的小伙伴都知道,数据需要做归一化,但是为什么要做归一化,这个问题一直模梭两可,网上也没有较全的回答,小编花费了一段时间,作了一些研究,给大家仔细分析分析,为什么要做归一化: 1.数值问题。 无容置疑,归一化的确可以避免一些不必要的数值问题。输入变量的数量级未致于会引起数值问题吧,但其实要引起也并不是那么困难。因为tansig的非线性区间大约在[-1.7,1.7]。意味着要使神经元有效,tansig( w1*x1 + w2*x2 +b) 里的 w1*x1 +w2*x2 +b 数量级应该在 1 (1.7所在的数量级)左右。这时输入较大,就意味着权值必须较小,一个较大,一个较小,两者相乘,就引起数值问题了。 假如你的输入是421,你也许认为,这并不是一个太大的数,但因为有效权值大概会在1/421左右,例如0.00243,那么,在matlab里输入 421*0.00243 == 0.421*2.43 可以看到两者不相等了,说明已经引起数值问题了。 2.求解需要 我们建立了神经网络模型后,只要找到的解足够好,我们的网络就能够正确的预测了。在训练前我们将数据归一化,说明数据归是为了更方便的求解。 那么,究竟给求解带来了什么方便呢? 这个问题不能一概而论,不同的算法,在归一化中得到的好处各不相同。假若有一个很牛B的求解算法,那完全用不着归一化,不过目前大部算法,都比较需要归一化

图神经网络论文阅读(三) Inductive Representation Learning on Large Graphs,INPS2017

百般思念 提交于 2020-01-19 00:58:21
本文的三位作者均来自斯坦福大学计算机系,他们提出一个通用的归纳框架GraphSAGE(空域卷积)。该框架通过从节点的本地邻居中采样和聚集特征来生成嵌入,并且提出了三种不同的聚合邻居特征的方式,这使得卷积的操作更贴近于直观上的CNN。本模型也可以应用于半监督甚至是无监督的任务。 Model 至于Relative work中涉及到的图embedding方法(Node2vec、因子分解机等)就不过多介绍了,直接看模型的原理。按照论文的思路,首先介绍了模型的正向传播方法(假设模型已经被训练并且参数是固定的)。 Embedding generation algorithm 首先假定已经学习了K个聚合函数 以及权重矩阵 ,它用于用于在模型的不同层之间传递信息。算法1在每次迭代或搜索深度时,节点会聚合来自其本地邻居的信息,随着这个过程的迭代,节点会从图的更远处获得越来越多的信息。 Line1:每个结点最初的特征由input feature表示,在经过k次邻居特征聚合之后,变成 。 Line4:每个结点都聚合邻居的特征得到 。此处的邻居并不是所有的邻居结点,而是一个固定大小的采样。通过这个采样,降低了模型的时间复杂度,并且经过研究发现,K=2的时候效果是最好的。 Line5:当前结点的特征 与聚合得到的邻居特征 进行拼接,之后被fed到一个全连接层,输出第k次传播之后的特征 。 Line7

【学习笔记】BP神经网络

不羁岁月 提交于 2020-01-19 00:06:07
转自 huaweizte123 的CSDN博客 链接 https://blog.csdn.net/huaweizte123/article/details/78803045 第一步、向前传播得到预测数据:向前传播的过程,即数据从输入层输入,经过隐含层,输出层的计算得到预测值,预测值为输出层的输出结果。网络层的输出即,该层中所有节点(神经元)的输出值的集合。我们以图一的神经网络结构为例,分析向前传播过程。 1.得到隐含层的输出y 1, y 2 ,y 3 : 2.获取到第二层的隐含层输出y 4 ,y 5 ,输入的数据也就是第一层隐含层的输出数据y 1, y 2 ,y 3 。 3、通过输出层,得到最后的预测值y。 第二步、反向传播更新权重:根据样本的真实类标,计算模型预测的结果与真实类标的误差。然后将该误差反向传播到各个隐含层。计算出各层的误差,再根据各层的误差,更新权重。 1.计算输出层的误差:其中z为该样本的类标 2计算第二层隐含层的误差 3.计算第一次隐含层的误差: 4、更新权重:新的权值=原权值+学习速率×该节点的误差×激励函数的导函数的值(f(e)的倒数)×与该节点相连的输入值 4.1更新输入层与第一层隐含层之间的权值: 4.2更新第一层隐含层与第二层隐含层之间的权值 4.3更新第二层隐含层与输出层之间的权值 以上就是反向传播的过程。误差从输出层反向的传到输入层

什么是机器学习

走远了吗. 提交于 2020-01-18 20:28:32
原文链接: https://www.cnblogs.com/lsgsanxiao/p/6955502.html 机器学习入门好文,强烈推荐(转) 转自 飞鸟各投林 史上最强----机器学习经典总结---入门必读----心血总结-----回味无穷 让我们从机器学习谈起 导读:在本篇文章中,将对 机器学习 做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。当然,本文也面对一般读者,不会对阅读有相关的前提要求。 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一: 图1 机器学习界的执牛耳者与互联网界的大鳄的联姻 这幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工 智能 实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘请,足见他们的重要性。而他们的研究方向,则全部都是机器学习的子类-- 深度学习 。 下图是图二: 图2

基于神经网络的实体识别和关系抽取联合学习

喜夏-厌秋 提交于 2020-01-18 02:05:19
基于神经网络的实体识别和关系抽取联合学习 联合学习( Joint Learning )一词并不是一个最近才出现的术语,在自然语言处理领域,很早就有研究者使用基于传统机器学习的联合模型( Joint Model )来对一些有着密切联系的自然语言处理任务进行联合学习。例如实体识别和实体标准化联合学习,分词和词性标注联合学习等等。最近,研究者们在基于神经网络方法上进行实体识别和关系抽取联合学习,我阅读了一些相关工作,在此和大家一起分享学习。(本文中引用了一些论文作者 Suncong Zheng 的 PPT 报告) 1 引言 本文关注的任务是从无结构的文本中抽取实体以及实体之间的关系(实体 1- 关系 - 实体 2 ,三元组),这里的关系是我们预定义好的关系类型。例如下图, 目前有两大类方法,一种是使用流水线的方法( Pipelined Method )进行抽取:输入一个句子,首先进行命名实体识别,然后对识别出来的实体进行两两组合,再进行关系分类,最后把存在实体关系的三元组作为输入。流水线的方法存在的缺点有: 1 )错误传播,实体识别模块的错误会影响到下面的关系分类性能; 2 )忽视了两个子任务之间存在的关系,例如图中的例子,如果存在 Country-President 关系,那么我们可以知道前一个实体必然属于 Location 类型,后一个实体属于 Person 类型

什么限制了你的神经网络执行的速度

末鹿安然 提交于 2020-01-17 23:43:44
这周拜读了大神Forrest Iandola的一篇博客,大开眼界,忍不住翻译过来,供大家分享。原文链接如下: https://medium.com/analytics-vidhya/not-all-tops-are-created-equal-e1911ffb4a82 摘要 限制了DNN在计算平台上的执行速度的六个常见原因。 1)内存访问过多 2)没有足够的并行 3)等待输入数据加载 4)糟糕的I/O ,内存和计算机制的重叠机制(overlap) 5)在专用的平台上没有使用专用的操作(不是所有的TOPs都是一样的,不同产品在某些运算上做了特殊优化) 6)未优化代码 深度学习处理器公司经常高调宣称他们的产品有惊人的处理速度。他们通常使用的度量标准有 TOPS(Tera Operations per Second), TMACS(Tera Multiply-Accumulate Instructions per Second)。这些指标的意义在哪,这些指标是否真的有用? 首先,看一下这些指标在深度学习中是怎么用的? 让我们思考一下,一个卷积层有尺寸为3x3x100的过滤器和100个输出通道。 1)假设这个卷基层的input grid 的尺寸是50x50x100. 所以,一次前向操作需要3 3 100 100 50*50 = 225,000,000 MACs, 相当于450,000

提升对抗神经网络GAN的表现的方法(GAN — Ways to improve GAN performance)

∥☆過路亽.° 提交于 2020-01-16 01:35:38
最近一直在琢磨 Generative Adversarial Imitation Learning 这篇文章的内容和实现,也自己实现了几个GAN,但是效果都不是很理想,因此找到了一篇专门讲提升GAN表现的文章,用几个小时的时间把这篇文章翻译一下。 原文链接: GAN — Ways to improve GAN performance 相较于其他的神经网络,GAN在下面几个方面遇到的问题更为严重: (1)不收敛:模型永不收敛,甚至,模型及其不稳定(unstable) (2)模式坍塌(mode collapse):生成器只生成有限的几种模式。 (3)训练速度慢:会遇到梯度消失的问题。 这篇文章主要讲提升GAN表现的方法,重点放在以下几个方面: (1)为一个更好的优化目标改变cost function (2)为cost function添加额外的惩罚 (3)避免overconfidence和overfitting (4)优化模型的更好方法 (5)添加标签 特征匹配 生成器为了欺骗识别器而去生成最好的照片。在生成器和识别器在不断尝试去战胜他们的对手的时候,这“最好的”照片是在不断改变的。然而,有的时候这个优化过程可能会变得太贪心,这个对抗的过程变成了永不停息的猫捉老鼠的游戏。在这种情况下,不收敛和模式坍塌的问题便出现了。 特征匹配改变了生成器的cost function

卷积神经网络CNN的原理一基本概念

会有一股神秘感。 提交于 2020-01-15 22:52:08
卷积神经网络CNN的原理(一)---基本概念 什么是卷积神经网络呢?这个的确是比较难搞懂的概念,特别是一听到神经网络,大家脑海中第一个就会想到复杂的生物学,让人不寒而栗,那么复杂啊.卷积神经网络是做什么用的呢?它到底是一个什么东东呢? 卷积神经网络的灵感源一种生物进程,其中神经元之间的联结模式和动物视觉皮层组织非常相似。所以发明者把它叫做卷积神经网络.只是做了类比,没有生物学知识的同学不要怕,只要有良好的数学基础(这个也不是很容易喔). 下面看看各方神圣对CNN的概念的定义吧: 科学的说法: 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。 通俗的说法: 简单说,卷积神经网络是一种类似于人工神经网络的深度学习模型或多层感知机,常用于分析和处理视觉数据。 个人理解: 卷积神经网络是一种能够有效对数据进行分类的神经网络算法,它的特点是简单,高效. 卷积神经网络为什么那么火?它的优点是什么呢?试用场景又是什么呢? 卷积神经网络包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络常应用于序列类的数据处理;二维卷积神经网络常应用于图像类文本的识别

A Taxonomy of Deep Convolutional Neural Nets for Computer Vision

霸气de小男生 提交于 2020-01-14 20:01:03
A Taxonomy of Deep Convolutional Neural Nets for Computer Vision 基本信息 摘要 1. Introduction 2. Introduction to Convolutional Neural Networks 2.1. Building Blocks of CNNs 2.1.1. Why Convolutions? 2.1.2. Max-Pooling 2.1.3. Non-Linearity 2.2. Depth 2.3. Learning Algorithm 2.3.1. Gradient-Based Optimization 2.3.2. Dropout 2.4. Tricks to Increase Performance 2.5. Putting It All Together: AlexNet 2.6. Using Pre-Trained CNNs 2.6.1. Fine-Tuning 2.6.2. CNN Activations as Features 2.7. Improving AlexNet 3. CNN Flavors 3.1. Region-Based CNNs 3.2. Fully Convolutional Networks 3.3. Multi-Modal Networks 3.4.