反向传播

GAN/VAE地位难保? Flow在零样本识别任务上大显身手

ε祈祈猫儿з 提交于 2020-10-06 12:11:40
     作者 | 秦杰、沈钰明   编辑 | 陈大鑫   计算机视觉三大会议之一的ECCV 2020刚刚落下帷幕,本文主要介绍阿联酋起源人工智能研究院(IIAI)的科学家们在该会议上发表的一篇论文:《Invertible Zero-Shot Recognition Flows》。   该工作首次提出了一种基于生成流(Generative Flow)模型的零样本学习方法,并在多个数据库上取得了目前最好的识别结果。      论文链接: https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123610596.pdf   1   零样本学习简介   众所周知,在当今计算机视觉领域,深度学习可谓“一统天下”,在诸多视觉任务中都取得了目前最好的(检测、识别、分割等)结果。而数据可谓是深度学习算法的“Buff”,算法的好坏往往取决于是否有充足且多样性的标注好的训练数据。   举例而言,我们要识别下图中的三种动物,那么首先我们需要标注大量老虎、兔子和斑马的图片,然后基于这些有标签的图片训练深度学习模型,最后将未知类别的图片输入训练好的模型中,才能够准确识别出图片中包含的动物类别。   然而,在实际应用场景中,我们往往会遇到以下“尴尬”情况:当我们在训练深度学习模型时,能“看见”的是标注好的大量老虎和兔子的图片

VAE变分自编码器Keras实现

时间秒杀一切 提交于 2020-10-05 04:50:24
介绍   变分自编码器(variational autoencoder, VAE)是一种生成模型,训练模型分为编码器和解码器两部分。   编码器将输入样本映射为某个低维分布,这个低维分布通常是不同维度之间相互独立的多元高斯分布,因此编码器的输出为这个高斯分布的均值与对数方差(因为方差总是大于0,为了将它映射到$(-\infty,\infty)$,所以加了对数)。在编码器的分布中抽样后,解码器做的事是将从这个低维抽样重新解码,生成与输入样本相似的数据。数据可以是图像、文字、音频等。   VAE模型的结构不难理解,关键在于它的 损失函数 的定义。我们要让解码器的输出与编码器的输入尽量相似,这个损失可以由这二者之间的二元交叉熵(binary crossentropy)来定义。但是仅由这个作为最终的目标函数是不够的。在这样的目标函数下,不断的梯度下降,会使编码器在不同输入下的输出均值之间差别越来越大,而输出方差则会不断地趋向于0,也就是对数方差趋向于负无穷。因为只有这样才会使从生成分布获取的抽样更加明确,从而让解码器能生成与输入数据更接近的数据,以使损失变得更小。但是这就与生成器的初衷有悖了,生成器的初衷实际上是为了生成更多“全新”的数据,而不是为了生成与输入数据“更像”的数据。所以,我们还要再给目标函数加上编码器生成分布的“正则化损失”:生成分布与标准正态分布之间的KL散度(相对熵)

神经网络中的批标准化

ぃ、小莉子 提交于 2020-10-04 08:20:13
作者|Emrick Sinitambirivoutin 编译|VK 来源|Towards Data Science 训练学习系统的一个主要假设是在整个训练过程中输入的分布保持不变。对于简单地将输入数据映射到某些适当输出的线性模型,这种条件总是满足的,但在处理由多层叠加而成的神经网络时,情况就不一样了。 在这样的体系结构中,每一层的输入都受到前面所有层的参数的影响(随着网络变得更深,对网络参数的小变化会被放大)。因此,在一层内的反向传播步骤中所做的一个小的变化可以产生另一层的输入的一个巨大的变化,并在最后改变特征映射分布。在训练过程中,每一层都需要不断地适应前一层得到的新分布,这就减慢了收敛速度。 批标准化克服了这一问题,同时通过减少训练过程中内层的协方差移位(由于训练过程中网络参数的变化而导致的网络激活分布的变化) 本文将讨论以下内容 批标准化如何减少内部协方差移位,如何改进神经网络的训练。 如何在PyTorch中实现批标准化层。 一些简单的实验显示了使用批标准化的优点。 减少内部协方差移位 减少消除神经网络内部协方差移位的不良影响的一种方法是对层输入进行归一化。这个操作不仅使输入具有相同的分布,而且还使每个输入都白化(白化是对原始数据x实现一种变换,变换成x_Whitened,使x_Whitened的协方差矩阵的为单位阵。)。该方法是由一些研究提出的,这些研究表明

暴力方法将成过去?UC伯克利等新研究返璞归真,探索网络的本质

帅比萌擦擦* 提交于 2020-10-04 00:19:51
         深度卷积神经网络的训练很难,方法很多,有没有可能从中提炼出一条指导性原则呢?加州大学的研究者抛弃暴力搜索方法,试图回归网络最核心简洁的性质。研究作者之一、加州大学伯克利分校马毅教授表示:这应该是真正按原理设计而得到的深度网络。   初始化、归一化和残差连接(skip connection)被认为是训练深度卷积神经网络(ConvNet)并获得最优性能的三大必备技术。   最近,来自加州大学伯克利分校和圣迭戈分校的研究者发布一项研究, 提出不使用归一化和残差连接的深度 ConvNet 在标准图像识别基准上也能实现优异的性能 。其实现方式是:在初始化和训练期间,令卷积核具备近似保距性(near isometric);使用 ReLU 激活函数的变体,实现保距性。      论文地址:https://arxiv.org/pdf/2006.16992.pdf   GitHub 地址:https://github.com/HaozhiQi/ISONet   研究人员进行了大量实验,结果表明此类近似保距网络与残差连接结合后,在 ImageNet 数据集上的性能与 ResNet 相当,在 COCO 数据集上的性能甚至超过 ResNet。而前者甚至都没有应用归一化。   该研究作者之一计算机视觉学者、加州大学伯克利分校马毅教授表示:   这应该是真正按原理设计而得到的深度网络……

C++从零实现神经网络(收藏版:两万字长文)

ε祈祈猫儿з 提交于 2020-10-02 06:32:12
点击上方 “ AI算法与图像处理 ”,选择加"星标"或“置顶” 重磅干货,第一时间送达 来源:CVPy 长文预警: 共 22727字 建议:收藏后找合适时间阅读。 一、Net类的设计与神经网络初始化 闲言少叙,直接开始 既然是要用C++来实现,那么我们自然而然的想到设计一个神经网络类来表示神经网络,这里我称之为Net类。由于这个类名太过普遍,很有可能跟其他人写的程序冲突,所以我的所有程序都包含在namespace liu中,由此不难想到我姓刘。在之前的博客反向传播算法资源整理中,我列举了几个比较不错的资源。对于理论不熟悉而且学习精神的同学可以出门左转去看看这篇文章的资源。这里假设读者对于神经网络的基本理论有一定的了解。 神经网络的要素 在真正开始coding之前还是有必要交代一下神经网络基础,其实也就是设计类和写程序的思路。简而言之,神经网络的包含几大要素: 神经元节点 层(layer) 权值(weights) 偏置项(bias) 神经网络的两大计算过程分别是前向传播和反向传播过程。每层的前向传播分别包含加权求和(卷积?)的线性运算和激活函数的非线性运算。反向传播主要是用BP算法更新权值。虽然里面还有很多细节,但是对于作为第一篇的本文来说,以上内容足够了。 Net类的设计 Net类——基于Mat 神经网络中的计算几乎都可以用矩阵计算的形式表示

Jürgen Schmidhuber发文纪念10年前的研究,网友:转折点非AlexNet?

感情迁移 提交于 2020-10-01 23:50:33
Jürgen Schmidhuber 每次发博客都会引起一阵「腥风血雨」,这次似乎也不例外。 最近,这位机器学习大牛发布博客,纪念 10 年前发表在 Neural Computation 期刊上的一篇论文《Deep Big Simple Neural Nets Excel on Handwritten Digit Recognition》,这篇文章主要介绍通过在 GPU 上执行梯度下降来训练深度多层感知机。 论文地址: https://www. catalyzex.com/paper/arx iv:1003.0358 在博客开头,Jürgen 这样评价该论文: 令人惊讶的是,这个简单但深层的监督式神经网络在机器学习基准数据集 MNIST 上的性能超过所有之前的方法。也就是说,在计算成本相当于今天 100 倍的 2010 年,我们提出的前馈神经网络和更早提出的循环神经网络就在当时的重要问题上打败了所有竞争算法。2010 年代,这一深度学习改革迅速从欧洲向美洲和亚洲扩展。 博客的具体内容如下: 仅仅在十年前,很多人认为深度神经网络在不进行无监督预训练的情况下无法学习。事实上,2007 年 Geoffrey Hinton 在《The Next Generation of Neural Networks》讲座中表示「明智的人不会建议

贝叶斯神经网络最新综述

假如想象 提交于 2020-10-01 12:52:00
©PaperWeekly 原创 · 作者|尹娟 学校|北京理工大学博士生 研究方向|随机过程、复杂网络 论文标题: Bayesian Neural Networks: An Introduction and Survey 论文链接: https://arxiv.org/abs/2006.12024 引言 下一代神经网络的演化方向是什么?最近两年在北京举行的智源大会都谈到了这个问题,可能性的一个答案是贝叶斯神经网络,因为它可以对已有的知识进行推断。逻辑推理作用就是可以对已有的知识进行延伸扩展。 举个例子,如果询问训练完善的 AI 模型的一个问题,“在乌克兰,新西兰,新加坡,阿尔及利亚这四个国家里,哪一个国家位于中国的最西边”,这个问题的难点就在于那个“最”字,如果是传统的 AI 模型可能会蒙圈,因为乌克兰和阿尔及利亚都是在中国的西边,因为现有的训练的知识并不足以告诉它哪个是最西边,经过 BNN(贝叶斯神经网络)训练的模型可能会从经纬度,气温等其他信息进行推断得出一个阿尔及利亚在中国的最西边这个答案。 BNN 的最新进展值得每个 AI 研究者紧密关注, 本文就是一篇新鲜出炉的关于 BNN 的综述 ,为了方便读者的阅读,我按照自己的节奏和想法重新梳理了一下这篇文章。 神经网络 先回顾一下传统神经网络,论文限于篇幅的原因有一些重要的细节没有展开

Xavier神经网络参数初始化方法

末鹿安然 提交于 2020-09-30 06:52:55
转自: https://zhuanlan.zhihu.com/p/68487857 之前我们学习了使用RBM对深度置信网络进行逐层训练初始化,或用类似的方法对多层深度神经网络进行预训练(pretraining),以求最终收敛的结果接近最优且加快收敛速度,同时还能避免 梯度消失 (gradient vanishing)和 梯度爆炸 (gradient explosion)的问题。今天介绍一个更加方便快速的初始化方法,来 近似 达到相同的目的。 一、梯度消失与梯度爆炸 这是一个深度学习领域遇到的老问题了,即使是现在,任何一个新提出的模型,无论是MLP、CNN、还是RNN,随着深度的加深,这两个问题变得尤为严重。 梯度消失是指在深度学习训练的过程中,梯度随着链式求导逐层传递逐层减小,最后趋近于0,导致对某些层的训练失效; 梯度爆炸与梯度消失相反,梯度随着链式求导逐层传递逐层增大,最后趋于无穷,导致某些层无法收敛; 二、Xavier方法 接下来的推导基于假设: 激活函数在0周围的导数接近1(比如tanh); 偏置项b初始化为0,期望为0 参数初始化期望均为0 显然,在初始化参数的时候不能全部初始化为0,这样无论是什么输入,输出都是0,梯度在反向传播的过程中也会变成0,无法训练。同理如果把模型的值设为单一值,也会造成模型容量的减小(反向传播的过程中W的每一行都是相同的)。

hslogic_模式识别人工神经网络BP算法

孤者浪人 提交于 2020-09-28 14:00:56
识别活动是人类的基本活动,人们希望机器能代替人类进行识别工作。因此模式识别的理论和方法引起了人们极大的兴趣并进行了长期的研究,现已发展成一门多学科交叉的学科。针对不同的对象和不同的目的,可以用不同的模式识别理论、方法。而人工神经网络能较好地模拟人的形象思维,而且由于具有大规模并行协同处理能力、较强的容错能力和联想能力以及较强的学习能力,所以将神经网络方法运用到模式识别中去解决识别问题己成为国内外科技工作者广泛关注的热点。 本文首先对模式识别、神经网络的发展概况以及应用神经网络来进行模式识别的历史渊源等方面作了较为详细的介绍,然后分析了模式识别的一些基本概念、方法,指出了其困难和要求,同时给出了神经网络进行模式识别的方法,并比较它与传统方法的异同,说明了神经网络方法进行模式识别的特点与优越性;然后给出了本文核心即BP神经网络模式分类的实现思想。运用上述研究成果,借助于MATLAB,用BP算法完成了神经网络结构设计。进行的测试表明其运行稳定、字符识别率较高,表明了本文研发成果的有效性。 神经网络的研究是以人脑为基础的一门智能科学的研究与探索,实际上,40年代初,就有人认识到这一领域研究的重要性。可以说,它的研究与当今串行计算机的研究是同步进行的。但是,由于当时分子生物学发展的限制,人脑的机理还未真正弄清楚,从而影响这一研究领域的进展:另一方面,由于VLSI技术日新月异的进步

为什么深度神经网络这么难训练?| 赠书

谁都会走 提交于 2020-09-28 01:44:24
导读:本文内容节选自 《深入浅出神经网络与深度学习》 一书,由 Michael Nielsen 所著,他是实验媒体研究工作室的联合创始人,曾是 YC Research 的 Research Fellow。。 本书深入了讲解神经网络和深度学习技术,侧重于阐释深度学习的核心概念。作者以技术原理为导向,辅以贯穿全书的 MNIST 手写数字识别项目示例,介绍神经网络架构、反向传播算法、过拟合解决方案、卷积神经网络等内容,以及如何利用这些知识改进深度学习项目。学完本书后,读者将能够通过编写 Python 代码来解决复杂的模式识别问题。 了解关于深度学习的更多干货知识, 关注CSDN并评论分享你对本文的学习心得或深度学习的见解 ,我们将从中选出5 条优质评论 ,各送出 《深入浅出神经网络与深度学习 》 一本。活动截止时间为 9 月6日 晚8点 。 假设你是工程师,接到一项任务:从头开始设计计算机。某天,你正在工作室设计逻辑电路,例如构建与门、或门等。这时,老板带着坏消息进来了:客户刚刚提了一个奇怪的设计需求——整个计算机的电路深度限于两层,如图5-1所示。 你惊呆了,跟老板说道:“他们疯了吧! ” 老板说:“我也觉得他们疯了,但是客户至上,只能设法满足他们。 ” 实际上,客户提出的需求并不过分。假设你能使用某种特殊的逻辑对任意多的输入执行AND运算