在机器视觉领域的深度神经网络中有一个概念叫做感受野,用来表示网络内部的不同位置的神经元对原图像的感受范围的大小.神经元之所以无法对原始图像的所有信息进行感知,是因为在这些网络结构中普遍使用卷积层和pooling层,在层与层之间均为局部相连(通过sliding filter).神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着他可能蕴含更为全局.语义层次更高的特征:而值越小则表示其所包含的特征越趋向于局部和细节.因此感受野的值可以大致用来判断每一层的抽象层次. 那么这个感受野要如何计…
Receptive field 可中译为“感受野”,是卷积神经网络中非常重要的概念之一. 我个人最早看到这个词的描述是在 2012 年 Krizhevsky 的 paper 中就有提到过,当时是各种不明白的,事实上各种网络教学课程也都并没有仔细的讲清楚“感受野”是怎么一回事,有什么用等等.直到我某天看了 UiO 的博士生 Dang Ha The Hien写了一篇非常流传甚广的博文:A guide to receptive field arithmetic for Convolutional Ne…
Receptive Field Block Net for Accurate and Fast Object Detection 作者:Songtao Liu, Di Huang*, and Yunhong Wang Beijing Advanced Innovation Center for Big Data and Brain Computing Beihang University, Beijing 100191, China fliusongtao, dhuang, yhwangg@bu…
1. 阅读论文:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解感受野 定义:receptive field, or field of view (感受野) A unit in convolutional networks only depends on a region of the input. This region in the input is the recepti…
Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 Abstract摘要 We study characteristics of receptive fields of units in deep convolutional networks. The receptive field size is a crucial issue in many vis…
CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic segmentation, object detection,instance segmentation,super resolution 甚至 optical flow 都能看的其身影.还真是,无所不能. 虽然 CNN 的应用可以说是遍地开花,但是细究起来,可以看到 CNN 的基本模型还是万变不离其宗…
论文:Receptive Field Block Net for Accurate and Fast Object Detection 发表时间:2018 发表作者:(Beihang University)Songtao Liu, Di Huang, Yunhong Wang 发表刊物/会议:ECCV 论文链接:论文链接 一些检测论文会依赖很深的 CNN 网络来提升效果,但此类网络会牺牲运行速度.在 RFB 论文中,作者由视觉感受野(Receptive Fields)出发提出了感受野 RFB 模…
一.前述 本文讲述池化层和经典神经网络中的架构模型. 二.池化Pooling 1.目标 降采样subsample,shrink(浓缩),减少计算负荷,减少内存使用,参数数量减少(也可防止过拟合)减少输入图片大小(降低了图片的质量)也使得神经网络可以经受一点图片平移,不受位置的影响(池化后相当于把图片上的点平移了)正如卷积神经网络一样,在池化层中的每个神经元被连接到上面一层输出的神经元,只对应一小块感受野的区域.我们必须定义大小,步长,padding类型池化神经元没有权重值,它只是聚合输入根据取最…
Receptive Field Block Net for Accurate and Fast Object Detection 简介 本文在SSD基础上提出了RFB Module,利用神经科学的先验知识来解释这种效果提升.本质上是设计一种新的结构来提升感受野,并表明了人类视网膜的感受野有一个特点,离视线中心越远,其感受野是越大的,越靠近视线中间,感受野越小.基于此,本文提出的RFB Module就是来模拟人类这种视觉特点的. RFB Module 结构如下图所示. 为什么要用空洞卷积呢? 首先…
Sparse Interactions, Receptive Field and Parameter Sharing是整个CNN深度网络的核心部分,我们用本文来具体分析其原理. 首先我们考虑Feedforward Neural Network,L层的输出矩阵,等于L层的输入矩阵与L层的权重矩阵做矩阵乘法,而后进行非线性变换.也就是说,L层的每一个输出数据,与L层的每一个输入数据都有关系.若输入数据是m维,输出数据是n维,则存在m*n个权重项来表征输入与输出间的关系.所以,Forward-prop…
感知野的概念尤为重要,对于理解和诊断CNN网络是否工作,其中一个神经元的感知野之外的图像并不会对神经元的值产生影响,所以去确保这个神经元覆盖的所有相关的图像区域是十分重要的:需要对输出图像的单个像素进行预测的任务,使每一个输出像素具有一个比较大的感知野是十分重要的,在做预测试时,每一个关键的信息就不会被遗漏. 增大感知野的方法: 理论上可以通过搭建更多的层的网络实现感知域的线性增加,靠着卷积过滤器的增加: 也可以使用下采样的方法,池化,增加感知域,目前通常都结合了这两种技术: 堆叠不同层的con…
一.前述 调优对于模型训练速度,准确率方面至关重要,所以本文对神经网络中的调优做一个总结. 二.神经网络超参数调优 1.适当调整隐藏层数对于许多问题,你可以开始只用一个隐藏层,就可以获得不错的结果,比如对于复杂的问题我们可以在隐藏层上使用足够多的神经元就行了, 很长一段时间人们满足了就没有去探索深度神经网络, 但是深度神经网络有更高的参数效率,神经元个数可以指数倍减少,并且训练起来也更快!(因为每个隐藏层上面神经元个数减少了可以完成相同的功能,则连接的参数就少了) 就好像直接画一个森林会很慢,但…
假设一个三层的神经网络结构图如下: 对于一个单独的训练样本x其二次代价函数可以写成: C = 1/2|| y - aL||2 = 1/2∑j(yj - ajL)2 ajL=σ(zjL) zjl = ∑kωjklakl-1 + bjl 代价函数C是ajL的函数,ajL又是zjL的函数,zjL又是ωjkL的函数,同时又是akL-1的函数...... 证明四个基本方程(BP1-BP4),所有这些都是多元微积分的链式法则的推论 δjL = (∂C/∂ajL)σ'(zjL)                …
原文地址:https://blog.csdn.net/Uwr44UOuQcNsUQb60zk2/article/details/81074408 前言        很多人不明白为什么要在神经网络.逻辑回归中要在样本X的最前面加一个1,使得 X=[x1,x2,…,xn] 变成 X=[1,x1,x2,…,xn] .因此可能会犯各种错误,比如漏了这个1,或者错误的将这个1加到W·X的结果上,导致模型出各种bug甚至无法收敛.究其原因,还是没有理解这个偏置项的作用啦.        在文章<逻辑回归>…
交叉熵的作用 通过神经网络解决多分类问题时,最常用的一种方式就是在最后一层设置n个输出节点,无论在浅层神经网络还是在CNN中都是如此,比如,在AlexNet中最后的输出层有1000个节点: 而即便是ResNet取消了全连接层,也会在最后有一个1000个节点的输出层: 一般情况下,最后一个输出层的节点个数与分类任务的目标数相等.假设最后的节点数为N,那么对于每一个样例,神经网络可以得到一个N维的数组作为输出结果,数组中每一个维度会对应一个类别.在最理想的情况下,如果一个样本属于k,那么这个类别所对…
1.什么是超参数 所谓超参数,就是机器学习模型里面的框架参数.比如聚类方法里面类的个数,或者话题模型里面话题的个数等等,都称为超参数.它们跟训练过程中学习的参数(权重)是不一样的,通常是手工设定的,经过不断试错来调整,或者对一系列穷举出来的参数组合一通枚举(叫做网格搜索).深度学习和神经网络模型,有很多这样的参数需要学习. 2.一些启发式规则 在实际应用中,当你使用神经网络去解决问题时,很难找到好的超参数.假设我们现在正在处理MINIST数据库的问题,并且对超参数是如何使用的一无所知.假设我们大…
反向传播和梯度下降这两个词,第一眼看上去似懂非懂,不明觉厉.这两个概念是整个神经网络中的重要组成部分,是和误差函数/损失函数的概念分不开的. 神经网络训练的最基本的思想就是:先“蒙”一个结果,我们叫预测结果a,看看这个预测结果和事先标记好的训练集中的真实结果y之间的差距,然后调整策略,再试一次,这一次就不是“蒙”了,而是有依据地向正确的方向靠近.如此反复多次,一直到预测结果和真实结果之间相差无几,亦即|a-y|->0,就结束训练. 在神经网络训练中,我们把“蒙”叫做初始化,可以随机,也可以根据以…
在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷积层输出的特征向量,同时改善结果(不易出现过拟合).为什么可以通过降低维度呢? 因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用.因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)来代 表这个区域的特征. 1.  一般池化(General Pooling) 池化作用于图像中…
batch 深度学习的优化算法,说白了就是梯度下降.每次的参数更新有两种方式. 第一种,遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度.这种方法每更新一次参数都要把数据集里的所有样本都看一遍,计算量开销大,计算速度慢,不支持在线学习,这称为Batch gradient descent,批梯度下降. 另一种,每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降,stochastic gradient descent.这个方法速度比较快,但是收敛性能不太好,可能…
所谓激活函数,就是在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端.常见的激活函数包括Sigmoid.TanHyperbolic(tanh).ReLu. softplus以及softmax函数.这些函数有一个共同的特点那就是他们都是非线性的函数.那么我们为什么要在神经网络中引入非线性的激活函数呢?引用https://www.zhihu.com/question/29021768的解释就是: 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输…
批标准化(Bactch Normalization,BN)是为了克服神经网络加深导致难以训练而诞生的,随着神经网络深度加深,训练起来就会越来越困难,收敛速度回很慢,常常会导致梯度弥散问题(Vanishing Gradient Problem). 统计机器学习中有一个经典的假设:Source Domain 和 Target Domain的数据分布是一致的.也就是说,训练数据和测试数据是满足相同分布的.这是通过训练数据获得的模型能够在测试集上获得好的效果的一个基本保障. Convariate Shi…
激活函数是人工神经网络的一个极其重要的特征.它决定一个神经元是否应该被激活,激活代表神经元接收的信息与给定的信息有关. 激活函数对输入信息进行非线性变换. 然后将变换后的输出信息作为输入信息传给下一层神经元. 激活函数的作用 当我们不用激活函数时,权重和偏差只会进行线性变换.线性方程很简单,但解决复杂问题的能力有限.没有激活函数的神经网络实质上只是一个线性回归模型.激活函数对输入进行非线性变换,使其能够学习和执行更复杂的任务.我们希望我们的神经网络能够处理复杂任务,如语言翻译和图像分类等.线性变…
最近这段时间系统性的学习了 BP 算法后写下了这篇学习笔记,因为能力有限,若有明显错误,还请指正. 什么是梯度下降和链式求导法则 假设我们有一个函数 J(w),如下图所示. 梯度下降示意图 现在,我们要求当 w 等于什么的时候,J(w) 能够取到最小值.从图中我们知道最小值在初始位置的左边,也就意味着如果想要使 J(w) 最小,w的值需要减小.而初始位置的切线的斜率a > 0(也即该位置对应的导数大于0),w = w – a 就能够让 w 的值减小,循环求导更新w直到 J(w) 取得最小值.如果…
本文转载自:https://www.cnblogs.com/charlotte77/p/5629865.html 一文弄懂神经网络中的反向传播法——BackPropagation   最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进行补充,但是补充的又是错的,难怪觉得有问题.反向传播法其实是神经网络的基础了,但是很多人在学的时候总是会遇到一些问题…
一.变量定义 此文是我学习BFTT算法的笔记,参考了雷明<机器学习与应用>中的BFTT算法推导,将该本书若干个推导串联起来,下列所有公式都是结合书和资料,手动在PPT上码的,很费时间,但是也加深了自己的理解. 二.几个预备知识 (1) 乘法⊙为向量对应元素相乘 (2) 复合函数求导: a.  假设有函数,假设有f(y),如果把x看成常数,y看成W的函数,则有: b.  如果将将W看成常数,y将看成x的函数,则有:     c. 如果有向量到向量的映射: 对于函数 f(y), 有 三.完整的算法…
Softmax回归模型是logistic回归模型在多分类问题上的推广,适用于多分类问题中,且类别之间互斥的场合. Softmax将多个神经元的输出,映射到(0,1)区间内,可以看成是当前输出是属于各个分类的概率,从而来进行多分类. 假设有一个数组V,Vi表示V中的第i个元素,那么Vi元素的softmax值就是: 例如 V = [9,6,3,1] , 经过Softmax函数输出 V_Softmax = [0.950027342724 0.0472990762635 0.00235488234367…
目录 写在前面 问题定义 一个例子 F(2, 3) 1D winograd 1D to 2D,F(2, 3) to F(2x2, 3x3) 卷积神经网络中的Winograd 总结 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 随便翻一翻流行的推理框架(加速器),如NCNN.NNPACK等,可以看到,对于卷积层,大家不约而同地采用了Winograd快速卷积算法,该算法出自CVPR 2016的一篇 paper:Fast Algorithms for Convolu…
1 什么是激活函数? 激活函数,并不是去激活什么,而是指如何把“激活的神经元的特征”通过函数把特征保留并映射出来(保留特征,去除一些数据中是的冗余),这是神经网络能解决非线性问题关键. 目前知道的激活函数有如下几个:sigmoid,tanh,ReLu,softmax. simoid函数也称S曲线:f(x)=11+e−x tanh:f(x)=tanh(x) ReLU:f(x)=max(x,0) softmax:f(x)=log(1+exp(x)) 2 神经网络中为什么要使用激活函数? 激活函数是用…
1.什么是bias? 偏置单元(bias unit),在有些资料里也称为偏置项(bias term)或者截距项(intercept term),它其实就是函数的截距,与线性方程 y=wx+b 中的 b 的意义是一致的.在 y=wx+b中,b表示函数在y轴上的截距,控制着函数偏离原点的距离,其实在神经网络中的偏置单元也是类似的作用. 因此,神经网络的参数也可以表示为:(W, b),其中W表示参数矩阵,b表示偏置项或截距项. 2.bias的计算方式? 神经网络结构中对偏置单元的计算处理方式有两种, …
本文作者Key,博客园主页:https://home.cnblogs.com/u/key1994/ 本内容为个人原创作品,转载请注明出处或联系:zhengzha16@163.com 在进行神经网络训练时,batch_size是一个必须进行设置的参数.以前在用BP神经网络进行预测时,由于模型结构很简单,所以对的batch_size值的设置没太在意.最近在做YOLO这样的深度网络,模型结构本身比较复杂,且训练样本量较大,在训练时损失函数降得较慢.看网上有些文章说可以改变batch_size的值来提升…