卷积神经网络

VGG梳理

亡梦爱人 提交于 2019-12-05 05:30:55
创新点(小卷积核、小池化核、层数更深、全连接变卷积) 对AlexNet改进,在第一个卷积层中使用了更小的卷积核和卷积stride 多尺度(训练和测试时,采用图片的不同尺度(当然是按各向同性缩放的最小边划定标准)) 层数深 测试阶段,将三个全连接变为三个卷积层,以适应任何大小的图片输入(最后那里是score map求平均) 不同层次的网络结构 从上图可以看出,依旧延续了AlexNet的5-3结构(5个卷积快,3个全连接,其中最后一个是输出) 实验结果 LRN无用 加深网络,可以提高精度 多尺度输入(训练)可以提高精度 多尺度测试也可以提高精度(多尺度训练、多尺度测试合称尺度抖动) 融合dense evaluation和multi-scale evaluation效果好 dense evaluation表示不进行224×224的裁剪,直接放入网络,全连接改为卷积 感受野的大小 卷积神经网络特征图上的像素点映射回原图上的大小 两个问题 Q1:为什么使用3×3的卷积核 (1)减小参数量,若生成相同大小的特征图,三个3×3的卷积相当于一个7×7的卷积: 3×(C×3×3×C)=27C 2 C×7×7×C = 49C 2 (2)激活层增加,增加非线性 Q2:1×1卷积核的作用 (1)一种为决策增加非线性因素的方式 (2)调整网络的维度扩维或者缩小维度 来源: https://www

吴恩达《深度学习》第四门课(1)卷积神经网络

99封情书 提交于 2019-12-05 04:57:55
1.1计算机视觉 (1)计算机视觉的应用包括图像分类、目标检测、图像分割、风格迁移等,下图展示了风格迁移案例: (2)图像的特征量非常之大,比如一个3通道的1000*1000的照片,其特征为3*1000*1000达到300万,如果第一个隐藏层有1000个单元那么W[1]有20亿个参数,计算量不仅大,而且由于图像样本相对于特征实在是太少,导致很容易过拟合,所以需要其他的方式来连接,即卷积。 1.2边缘检测示例 (1)卷积运算是输入图像与过滤器(也叫核)进行的运算,得到输出图像。卷积核与图像对应的位置相乘求和得到一个新值,如下图所示: 输出中第一个绿色框的值为: (2)每个不同的核可以检测到不同的边缘特性,如下面的核就可以检测到图像的垂直特性,即输入图像中的边缘会在输出图像中用白色显示出来,非边缘部分显示为黑色或灰色。同理还有其他水平边缘检测等各种核(过滤器)。 1.3更多边缘检测的内容 (1)除了上面提到的卷积核,还有其他许多卷积核,把上面3*3的卷积核看成9个参数,然后不是通过人工的确定,而是通过神经网络来学习这些参数,这就是卷积神经网络。 1.4Padding (1)边缘不填充会有两个缺点:第一是随着不断卷积,图像会变得越来越小,有时你可不想让它变小;第二是最角落的点只被使用了一次,这意味着在下传的过程中丢掉了图像边缘位置的信息。如下图所示(角落的绿色点只被计算了一次

卷积神经网络(四)人脸识别和风格转换

断了今生、忘了曾经 提交于 2019-12-04 23:22:21
人脸识别 1、One-shot learning(一次学习): 仅仅通过一张图片来完成人脸识别,即只能通过一个样本来学习. similarity函数: d(img1,img2) = degree of difference between images 识别任务(verification): if d(img1,img2) ≤ τ:“same”; else: “different” 2、Siamese网络: 将图片通过卷积神经网络转为128个编码,称为“encoding of x (i) ”,记为f(x (i) ). d(x (1) ,x (2) ) = || f(x (1) ) - f(x (2) ) || 2 . 3、Triplet loss(三元组损失): (1)背景: 每组数据是三张图片,比对结果分别是“Positive”和“Negative” 希望的结果:|| f(A) - f(P) || 2 ≤ || f(A) - f(N) || 2 即 d(A, P) ≤ d(A, N), 即 || f(A) - f(P) || 2 - || f(A) - f(N) || 2 ≤ 0. 避免 f(A) = f(P) = f(N) 的情况,需要对上式进行改进: || f(A) - f(P) || 2 - || f(A) - f(N) || 2 + α ≤ 0, 即 || f(A) -

卷积神经网络-目标探测-笔记

亡梦爱人 提交于 2019-12-04 20:38:36
目标探测介绍: 直接思路:回归问题 利用神经网络进行目标识别,同样的目标变为坐标值 直接思路:局部识别问题 在很多位置尝试识别,能够完成识别的地方就是目标位置 问题:怎样找到这些候选位置?   不同scale的sliding windows?     遍历所有位置     候选区域产生   更有效的方法是什么?     直接计算候选区域 小结 目标探测任务 转化为回归,分类问题 分类思想目标探测:候选区域产生 传统方法—DPM https://blog.csdn.net/qq_14845119/article/details/52625426 基本思想:提取图像特征,制作出激励模版,在原始图像滑动计算,得到激励效果,根据激励分布确定目标位置 拓展:目标可能会变形,各个部分单独考虑 DPM—Deformable Parts Model 产生多个模版,整体模版以及不同局部模版 不同模版同输入图片“卷积”产生特征图 特征图组合形成融合特征 对融合特征进行传统分类,回归,得到目标位置 优点:   方法直观简单,运算速度快,适应动物体变形,至2012年,最好方法 缺点:   性能一般,激励特征人为设计,工作量大,大幅度旋转无法适应,稳定性差 神经网络分类:R-CNN系列方法 https://blog.csdn.net/v1_vivian/article/details/78599229

CNN卷积汇总

非 Y 不嫁゛ 提交于 2019-12-04 18:00:57
1,卷积作用:减少参数(卷积核参数共享),卷积过程中不断对上一个输出进行抽象,由局部特征归纳为全局特征(不同卷积层可视化可以观察到这点) 2,卷积核 早期卷积核由人工总结,如图像处理中有: 深度神经网络中,卷积核则由网络训练过程中学习获得。 3, 神经网络中的卷积类型 Group convolution:分组卷积。对通道channel进行分组后分别卷积。减少参数。 比如输入和输出通道都为64,卷积核大小为3*3,则原始参数量为64*3*3*64=36864,通道分组为8组,每组输入输出都为32,参数量为8*8*3*3*8=4608。为原来的1/8。 Depthwise convolution : 卷积核深度为1,只对相应通道的空间部分卷积 Pointwise convolution:卷积核大小为1*1,只对通道部分卷积 Depthwise Separable convolution:上面2者结合即为此。先对每个通道的空间部分卷积,再对各个通道卷积,分离了空间与channel。减少参数。 比如,输入通道为16,输出通道为32,使用卷积核大小3*3,如果直接卷积,则我们需要32个卷积核,每个参数为3*3*16,总参数为32*3*3*16=4608。分开操作时,第一步,我们每个卷积核只一个输入通道进行卷积,即 对空间部分卷积 ,需要16个卷积核,每个3*3*1,共144个参数;第二步,

Graph-GraphSage

末鹿安然 提交于 2019-12-04 16:10:02
MPNN很好地概括了空域卷积的过程,但定义在这个框架下的所有模型都有一个共同的缺陷: 1. 卷积操作针对的对象是 整张图 ,也就意味着要将所有结点放入内存/显存中,才能进行卷积操作。但对实际场景中的大规模图而言,整个图上的卷积操作并不现实。 GraphSage [2]提出的动机之一就是解决这个问题。从该方法的名字我们也能看出,区别于传统的全图卷积, GraphSage 利用 采样 (Sample)部分结点的方式进行学习。当然,即使不需要整张图同时卷积,GraphSage仍然需要聚合邻居结点的信息,即论文中定义的 aggregate 的操作。这种操作类似于MPNN中的 消息传递 过程。 2. 之前的方法是固有的直推式得到node embeddeding,不能泛化,无法有效适应动态图中新增节点的特性, 往往需要从头训练或至少局部重训练。 3 缺乏权值共享(Deepwalk, LINE, node2vec)。节点的embedding直接是一个N*d的矩阵, 互相之间没有共享学习参数。 4.输入维度固定为|V|。无论是基于skip-gram的浅层模型还是基于autoencoder的深层模型,输入的维度都是点集的大小。训练过程依赖点集信息的固定网络结构限制了模型泛化到动态图的能力,无法为新加入节点生成embedding。 GraphSage 的模型

卷积神经网络(二)深度卷积网络:实例探究

半城伤御伤魂 提交于 2019-12-04 14:08:46
1、经典网络: (1)LeNet-5:识别手写数字 (2)AlexNet: (3)VGG-16: 2、Residual networks(ResNets 残差网络): (1)Residual block(残差块): 多个残差块构成一个残差网络: (2)残差网络的优势: 理论上,随着神经网络的深入,训练误差会越来越小,但实际上,层数越多训练的难度越大,因此层数过多误差也会增大. 但残差网络适用于深层的神经网络,误差随着层数的增多而减小. (3)为什么残差网络性能更好? 3、网络中的网络和1*1卷积: (1)作用: 对于二维效果不佳,仅仅是矩阵乘数字: 对于三维,实现了多个通道乘积再求和的功能: (2)应用:压缩 n C 使用32个1*1卷积,将192通道压缩为32通道. 4、Inception网络: (1)作用:决定过滤器的大小. (2)Inception块: 将各个可能使用的过滤器合并,让系统自行学习并选择合适的过滤器. 以28*28*32块为例,说明 computational cost 问题: 乘法计算次数:28*28*32*5*5*192 ≈ 120 Million 而使用了1*1卷积压缩后:中间的层成为“bottleneck layer”,即瓶颈层. 乘法计算次数:2*28*16*192 + 28*28*32*5*5*16 ≈ 2.4 Million + 10.0

卷积神经网络-目标分类简述

泄露秘密 提交于 2019-12-04 14:04:11
目标分类基本框架 1. 数据准备 数据来源 --现有数据集的子集;网络采集;现有数据人工标注 http://deeplearning.net/datasets/ 数据扩充 -- https://blog.csdn.net/zhelong3205/article/details/81810743 作用----增加训练的数据量,提高模型的泛化能力,增加噪声数据,提升模型的鲁棒性 数据增强可以分为两类,一类是离线增强,一类是在线增强 离线增强 : 直接对数据集进行处理,数据的数目会变成增强因子 x 原数据集的数目 ,这种方法常常用于数据集很小的时候 在线增强 : 这种增强的方法用于,获得 batch 数据之后,然后对这个 batch 的数据进行增强,如旋转、平移、翻折等相应的变化,由于有些数据集不能接受线性级别的增长,这种方法长用于大的数据集,很多机器学习框架已经支持了这种数据增强方式,并且可以使用 GPU 优化计算。 常用的数据扩充技术: 翻转 :增强因子 2 或 3 数据翻转是一种常用的数据增强方法,这种方法不同于旋转 180 这种方法是做一种类似于镜面的翻折。 旋转 : 增强因子 2 到 4 旋转就是顺时针或者逆时针的旋转,注意在旋转的时候, 最好旋转 90 -180 度否则会出现尺度的问题    缩放 :增强因子任意 图像可以被放大或缩小。放大时,放大后的图像尺寸会大于原始尺寸

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

十年热恋 提交于 2019-12-04 12:17:53
一、研究意义 卷积神经网络(CNN)由于其强大的特征提取能力,近年来被广泛用于计算机视觉领域。1998年Yann LeCun等提出的LeNet-5网络结构,该结构使得卷积神经网络可以端到端的训练,并应用于文档识别。LeNet-5结构是CNN最经典的网络结构,而后发展的卷积神经网络结构都是由此版本衍生而来。 在过去六年中,由于深度学习和卷积网络的发展和进步,基于图像的目标检测和分类能力已经大大提高。而目标检测是计算机视觉领域一个重要的研究方向,是众多高级任务的必备前提,包括场景理解,事件识别等。目前,目标检测也广泛用于安全监控,自动驾驶,人机交互,增强现实等众多领域。目标检测对计算机视觉和产业界实际应用都有十分重要的意义。 然而, 由于视角、遮挡、姿态等因素引起目标发生形变, 导致目标检测成为一个具有挑战性的任务。设计高准确率高效率的目标检测算法仍具有重大意义。 二、研究现状 如今, 基于卷积神经网络的目标检测已经超越传统目标检测方法, 成为当前目标检测的主流方法。本文根据卷积神经网络的使用方式,将基于卷积神经网络的目标检测分为两大类: 基于分类的卷积神经网络目标检测和基于回归的卷积神经网络目标检测。 1. 基于分类的卷积神经网络目标检测 基于分类的CNN也可以成为two-stage检测算法,传统目标检测方法包含预处理、窗口滑动、特 征提取、特征选择、特征分类、后处理等步骤

深度学习基础

倖福魔咒の 提交于 2019-12-04 11:49:50
摘要:本文主要介绍了深度学习中的一些基础知识和CNN的相关内容。 1、关于目标函数的选取 目标函数用于衡量训练出来的模型的输出值和给定样本数据实际输出值的误差。目标函数会直接参与到误差的反向传播的计算当中,一个较好的目标函数会对各层的权重的调整起到更好的效果,所以选择好的目标函数尤为重要。下面列举出两种目标函数: 在上面两种比较常见的目标函数的对比中,我们可以清楚的看到, 交叉熵目标函数的图像更加陡峭,因此移动相同的步数,那么目标函数的变化也就更加明显,那么也就更有利于寻找最小值(最优值),最终确定相应的模型权重 。 2、关于全连接层Softmax Softmax是神经网络的最后一层,用于处理经过各个层计算后得到的最后结果。如下图: 在上面的图中,z代表经过各层计算得到的输出值,将z值带入上面的逻辑计算中,最后得到了的输出值有这样的特点: 将原来的输出结果映射到了0-1范围内,并且这些值相加为1 。 那么为什么要进行这样做呢? 经过Softmax处理得到的输出值可以用在以交叉熵作为目标函数的情况中。 利用概率的形式进行处理,更加明确了各个输出值对精度的影响状况,进而更有利于对各层权重进行调整。 3、采用RELU激活函数,而不采用Sigmoid函数的原因 在梯度下降过程中,会对激活函数求导,Sigmoid函数求导之后的峰值为0.25,而且在调整权重的过程中w的绝对值一般都是小于1的