深度神经网络

卷积神经网络

半腔热情 提交于 2019-12-02 15:46:03
转自:https://zhuanlan.zhihu.com/p/27908027 【1】导论 首先最需要明确的一点就是,卷积神经网络,也就是convolutional neural networks (简称CNN),现在已经被用来应用于各个领域,物体分割啦,风格转换啦,自动上色啦blahblah,但是!!CNN真正能做的,只是起到一个特征提取器的作用!所以这些应用,都是建立在CNN对图像进行特征提取的基础上进行的。 拿到一张图片,要对它进行识别,最简单的栗子是,这张图是什么? 比如,我现在要训练一个最简单的CNN,用来识别一张图片里的字母是X还是O。 我们人眼一看,很简单嘛,明显就是X啊,但是计算机不知道,它不明白什么是X。所以我们给这张图片加一个标签,也就是俗称的Label,Label=X,就告诉了计算机这张图代表的是X。它就记住了X的长相。 但是并不是所有的X都长这样呀。比如说... 这四个都是X,但它们和之前那张X明显不一样,计算机没见过它们,又都不认识了。 (这里可以扯出机器学习中听起来很高冷的名词 “ 欠拟合 ”) 不认识了怎么办,当然是回忆看看是不是见过差不多的呀。这时候CNN要做的,就是如何提取内容为X的图片的特征。 我们都知道,图片在计算机内部以像素值的方式被存储,也就是说两张X在计算机看来,其实是这样子的。 其中1代表白色,-1代表黑色。

卷积神经网络的卷积核大小、个数,卷积层数如何确定呢?

房东的猫 提交于 2019-12-01 00:00:48
卷积神经网络的卷积核大小、卷积层数、每层map个数都是如何确定下来的呢?看到有些答案是刚开始随机初始化卷积核大小,卷积层数和map个数是根据经验来设定的,但这个里面应该是有深层次原因吧,比如下面的手写字卷积神经网络结构图1,最后输出为什么是12个map,即输出12个特征?然后图2又是输出10个特征了? 在达到相同感受野的情况下,卷积核越小,所需要的参数和计算量越小。 具体来说。卷积核大小必须大于1才有提升感受野的作用,1排除了。而大小为偶数的卷积核即使对称地加padding也不能保证输入feature map尺寸和输出feature map尺寸不变(画个图算一下就可以发现),2排除了。所以一般都用3作为卷积核大小。 每一层卷积有多少channel数,以及一共有多少层卷积,这些暂时没有理论支撑,一般都是靠感觉去设置几组候选值,然后通过实验挑选出其中的最佳值。这也是现在深度卷积神经网络虽然效果拔群,但是一直为人诟病的原因之一。 多说几句,每一层卷积的channel数和网络的总卷积层数,构成了一个巨大的超参集合,这个超参集合里的最优组合,很可能比目前业界各种fancy的结构还要高效。只是我们一来没有理论去求解这个超参集合里的最优,二来没有足够的计算资源去穷举这个超参集合里的每一个组合,因此我们不知道这个超参集合里的最优组合是啥。 现在业界里提出的各种fancy结构中不少都是不断trial

学习优化:训练深度神经网络进行无线资源管理

社会主义新天地 提交于 2019-11-30 11:53:07
摘要:近几十年来,数值优化在解决诸如功率控制和波束成形器设计等无线资源管理问题中发挥了重要核心作用。然而,传统的优化算法通常需要相当多的迭代来进行收敛,这对实时处理提出了挑战。本文提出了一种新的基于深度学习的无线资源管理的方法。 主要思想是将资源分配算法的输入和输出视为未知的非线性映射,并使用DNN近似它 。如果可以通过中等大小的DNN准确有效地学习非线性映射,那么这种DNN几乎可以实时用于资源分配,因为通过DNN传递输入只需要少量的简单操作。、 引言: 几十年来,处理各种无线资源管理方面问题的各种基于优化的算法都在各自处理的方面取得非常大的成功,但是这些优化算法的本质都属于迭代算法类。即将一组给定的实时网络参数(如信道实现和信噪比要求)作为输入,进行多次迭代,输出“优化”资源分配策略。因此,这些算法所存在的最大挑战就是高实时地计算成本。 本文提出一种基于机器学习的无线资源管理方法,其关键思想是将给定资源优化算法视为一个“黑匣子”,并尝试通过DNN来学习其输入/输出关系。 DNN相对于经典迭代算法的关键优势是DNN具有高实时计算速率:DNN的运行阶段不涉及数值优化,而只涉及一些简单的操作,如矢量乘法、加法和简单的非线性变换。 主要贡献: 1)提出基于深度学习的方案,该方案弥合了机器学习和无线资源分配这些看似无关的领域(尤其是干扰网络功率控制)。 2)通过广泛的理论分析和数值实验

zz先睹为快:神经网络顶会ICLR 2019论文热点分析

喜你入骨 提交于 2019-11-28 16:42:28
先睹为快:神经网络顶会ICLR 2019论文热点分析 - lqfarmer的文章 - 知乎 https://zhuanlan.zhihu.com/p/53011934 作者:lqfarmer 链接:https://zhuanlan.zhihu.com/p/53011934 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 ICLR-2019(International Conference on Learning Representations 2019),将于2019年5月9日在美国路易斯安那州的新奥尔良举行,这也是2019年最新的一个国际性的AI顶会。目前,ICLR-2019的最新接受的论文已经Release出来了,本文对本届会议接受的论文进行整理,按照统计方法,抽取出了其中集中程度最高的27个主题,并抽样了每个主题下的一些最新论文,提供给需要的朋友周末充电。 ICLR-2019接受全部论文地址 https:// openreview.net/group? id=ICLR.cc/2019/Conference#accepted-oral-papers 主题热点 Deep reinforcement learning Generative adversarial networks Deep learning Deep neural Network

使用 TensorFlow 实现神经网络

心已入冬 提交于 2019-11-28 16:21:03
介绍   一直关注 数据科学 、 机器学习 的同学,一定会经常看到或听到关于 深度学习 和 神经网络 相关信息。如果你对 深度学习 感兴趣,但却还没有实际动手操作过,你可以从这里得到实践。   在本文中,我将介绍 TensorFlow , 帮你了解 神经网络 的实际作用,并使用 TensorFlow 来解决现实生活中的问题。 读这篇文章前,需要知道 神经网络 的基础知识和一些熟悉编程理念,文章中的代码是使用 Pyhton 编写的,所以还需要了解一些 Python 的基本语法,才能更有利对于文章的理解。 目录 什么时候应用神经网络? 通常神经网络能解决的问题 了解图像数据和主流的库来解决问题 什么是 TensorFlow? TensorFlow 一个 典型 的 “ 流 ” 在 TensorFlow 中实现 MLP TensorFlow 的限制 TensorFlow 与其他库 从这里去哪里? 什么时候用神经网络?    神经网络 已经在相当一段时间成为机器学习中的焦点。 对于 神经网络 和 深度学习 上这里有更详细的解释 点击阅读 。 其 “更深” 的功能在许多领域都有取得巨大的突破,如图像识别,语音和自然语言处理等。   主要的问题在于如何用好 神经网络 ?现在,每天都会有许多新发现,这个领域就像一个金矿,为了成为这个 “淘金热” 的一部分,必须记住几件事: 首先, 神经网络

【深度学习】卷积神经网络CNN基本原理

╄→гoц情女王★ 提交于 2019-11-28 15:21:06
为什么要用卷积神经网络? 传统神经网络的劣势 我们知道,图像是由一个个像素点构成,每个像素点有三个通道,分别代表RGB颜色,那么,如果一个图像的尺寸是(28,28,1),即代表这个图像的是一个长宽均为28,channel为1的图像(channel也叫depth,此处1代表灰色图像)。如果使用全连接的网络结构,即网络中的神经与与相邻层上的每个神经元均连接,那就意味着我们的网络有28 * 28 =784个神经元,hidden层采用了15个神经元,那么简单计算一下,我们需要的参数个数(w和b)就有:784*15*10+15+10=117625个,这个参数太多了,随便进行一次反向传播计算量都是巨大的,从计算资源和调参的角度都不建议用传统的神经网络。 卷积神经网络是什么? 三个基本层 卷积层(Convolutional Layer) 我们用传统的三层神经网络需要大量的参数,原因在于每个神经元都和相邻层的神经元相连接,但是思考一下,这种连接方式是必须的吗?全连接层的方式对于图像数据来说似乎显得不这么友好,因为图像本身具有“二维空间特征”,通俗点说就是局部特性。譬如我们看一张猫的图片,可能看到猫的眼镜或者嘴巴就知道这是张猫片,而不需要说每个部分都看完了才知道,啊,原来这个是猫啊。所以如果我们可以用某种方式对一张图片的某个典型特征识别,那么这张图片的类别也就知道了。这个时候就产生了卷积的概念

怎么选取训练神经网络时的Batch size?

末鹿安然 提交于 2019-11-28 13:11:45
怎么选取训练神经网络时的Batch size? - 知乎 https://www.zhihu.com/question/61607442 深度学习中的batch的大小对学习效果有何影响? - 知乎 https://www.zhihu.com/question/32673260 训练神经网络时如何确定batch size? - 夕小瑶的文章 - 知乎 https://zhuanlan.zhihu.com/p/27763696 如何理解深度学习分布式训练中的large batch size与learning rate的关系? - 谭旭的回答 - 知乎 https://www.zhihu.com/question/64134994/answer/216895968 如何理解深度学习分布式训练中的large batch size与learning rate的关系? - 龙鹏-言有三的回答 - 知乎 https://www.zhihu.com/question/64134994/answer/675171937 来源: https://www.cnblogs.com/lzida9223/p/10972744.html

全卷积神经网络图像分割(U-net)-keras实现

故事扮演 提交于 2019-11-28 10:36:44
最近在研究全卷积神经网络在图像分割方面的应用,因为自己是做医学图像处理方面的工作,所以就把一个基于FCN(全卷积神经网络)的神经网络用 keras 实现了,并且用了一个医学图像的数据集进行了图像分割。 全卷积神经网络 大名鼎鼎的FCN就不多做介绍了,这里有一篇很好的博文 http://www.cnblogs.com/gujianhan/p/6030639.html。 不过还是建议把论文读一下,这样才能加深理解。 医学图像分割框架 医学图像分割主要有两种框架,一个是基于CNN的,另一个就是基于FCN的。 基于CNN 的框架 这个想法也很简单,就是对图像的每一个像素点进行分类,在每一个像素点上取一个patch,当做一幅图像,输入神经网络进行训练,举个例子: 这是一篇发表在NIPS上的论文 Ciresan D, Giusti A, Gambardella L M, et al. Deep neural networks segment neuronal membranes in electron microscopy images[C]//Advances in neural information processing systems. 2012: 2843-2851. 这是一个二分类问题,把图像中所有label为0的点作为负样本,所有label为1的点作为正样本。

经典卷积神经网络 之 ZFNet

柔情痞子 提交于 2019-11-28 08:18:04
ZFNet 时间: 2013年 出处: Matthew D.Zeiler 和 Rob Fergus (纽约大学)2013年撰写的论文: Visualizing and Understanding Convolutional Networks 目的: AlexNet的提出使得大型卷积网络开始变得流行起来,但是人们对于CNN网络究竟为什么能表现这么好,以及怎么样能变得更好尚不清楚,因此为了针对上述两个问题,提出了一个新颖的可视化技术,“理解”中间的特征层和最后的分类器层,并且找到改进神经网络的结构的方法 做法: 使用反卷积(Deconvnet),可视化特征图(feature map) 通过Deconvnet技术,可视化Alex-net,并指出了Alex-net的一些不足,最后修改网络结构,使得分类结果提升 与AlexNet相比,前面的层使用了更小的卷积核和更小的步长,保留了更多特征 成就: ZFNet是2013年ILSVRC的冠军 贡献: CNN领域可视化理解的开山之作,作者通过可视化解释了为什么CNN有非常好的性能、如何提高CNN性能,然后进行调整网络,提高了精度 论文主要贡献如下: 特征可视化 使用反卷积,可视化feature map 通过feature map可以看出,特征分层次体系结构 前面的层学习的是物理轮廓、边缘、颜色、纹理等特征,后面的层学习的是和类别相关的抽象特征

卷积神经网络cnn的实现

走远了吗. 提交于 2019-11-28 06:17:26
卷积神经网络 代码: https://github.com/TimVerion/cat 卷积层 卷积层:通过在原始图像上平移来提取特征,每一个特征就是一个特征映射 原理:基于人脑的图片识别过程,我们可以认为图像的空间联系也是局部的像素联系比较紧密,而较远的像素相关性比较弱,所以每个神经元没有必要对全局图像进行感知,只要对局部进行感知,而在更高层次对局部的信息进行综合操作得出全局信息;即局部感知。 卷积分的知识 过程: 作用: 局部感知:在进行计算的时候,将图片划分为一个个的区域进行计算/考虑; 参数共享机制:假设每个神经元连接数据窗的权重是固定的 滑动窗口重叠:降低窗口与窗口之间的边缘不平滑的特性。 不同的过滤器产生不同的效果: 真实做了什么? 一步有一步的浓缩,产生更加靠谱更加准确的特征 一张图片卷积后高和宽如何变化? # 卷积函数def conv_fun(cache): x, w, b = cache["a"], cache["w"], cache["b"] pad, stride = cache["pad"], cache["stride"] N, C, H, W = x.shape F, C, HH, WW = w.shape # numpy提供的可以填充0的api,constant代表用一样的值填充前两维不填,后两维各自填充pad行 x_padded = np.pad(x