【深度学习】卷积神经网络简介
来源:互联网 发布:17网广州网络批发市场 编辑:程序博客网 时间:2024/05/22 11:36
【深度学习】卷积神经网络简介
本文从卷积运算、特点、发展、和全连接神经网络的对比四个方面介绍:
目录
- 深度学习卷积神经网络简介
- 目录
- 卷积运算
- 特点
- 1 卷积层
- 2 池化层
- 发展
- 1 网络加深
- 2 增强卷积层的功能
- 3 从分类任务到检测任务
- 4 增加新的功能模块
- 和全连接网络对比
- 1 全连接神经网络
- 2 卷积神经网络
1 卷积运算
常用星号表示
目的:使原信号特征增强,并且降低噪音。
y=x*w
y=output 特征图 feature map;
x=input;
w=核函数kernel function.
不同卷积核输出特征图不同
2 特点
权值共享
隐藏层分为卷积层和池化层。
2.1 卷积层
通过一块块卷积核conventional kernel在原始图像上平移来提取特征,每一个特征是一个feature map。
padding
卷积核kernel在提取featuremap时的动作。
分为SAME和VALID.
- SAME
取样面积=输入图像的像素宽度 需要全0补充
卷积后的长宽:
out length=[in length/stride length]
out width=[in width/stride width]
[]表示取整 - VALID
取样面积<输入图像的像素宽度
卷积后的长宽:
out length=[(in length - filter length +1)/stride length]
out width=[(in width - filter width +1)/stride width]
需要人工设定卷积过滤器参数:
- 过滤器的尺寸 常3x3,5x5
- 过滤器的深度 你希望由该卷积层输出的三维矩阵的深度
2.2 池化层
=下采样层
目的:降低网络训练参数及模型的过拟合程度
包括最大值池化和平均值池化
不改变三维矩阵的深度
3 发展
从AlexNet开始
3.1 网络加深
VGG16->VGG19
AlexNet成功的原因:
-防止过拟合:dropout、数据增强
-非线性激活函数:RuLU
-大数据训练:120万(百万级)ImgaeNet图像数据
-GPU实现、LRN规范化层的使用
学习如此多的参数且防止过拟合的两种方法:
-1 数据增强:
增加训练数据,还可以提升准确率。当训练数据有限,可以通过一些变换从已有的训练数据集中生成一些新数据扩大训练数据量。
常用变形方法:
1. 水平翻转图像(=反射变化,flip)
2. 从原始图像(大小为256x256)随机平移变换crop出一些图像(如大小为224x224)
3. 给图像增加一些随机的光照(颜色抖动等)
-2 Dropout:
AlexNet做的是以0.5概率将每个隐层神经元的输出设置为0.
以这种方式被抑制的神经元既不参与前向传播也不参与反向传播。
3.2 增强卷积层的功能
NIN->GoogleNet->Inception v3,v4 (1和2结合是ResNet)
GoogleNet对传统的卷积方法做了两点改进:
-1 将原来的线性卷积层linear convolution layer变为多层感知卷积层 multilayer perceptron
-2 将全连接层改进为全局平均池化
GoogleNet的主要思想是围绕“深度”,“宽度”去实现。
-1 深度:层数更深,论文采用22层。
避免梯度消失问题:GoogleNet在不同深度处增加了两个损失函数来避免反向传播时梯度消失的现象。
-2 宽度:增加了多种大小的卷积核。1x1,3x3,5x5,采用降维的Inception模型,在3x3,5x5卷积前,和最大池化后都分别加上了1x1的卷积核,起到了降低特征图厚度的作用。
网络退化:
层数增加,错误率却上升。
解决方法:ResNet中引入了shortcut结构,将输入跳层传递与卷积的结果相加。
残差ResNet思想:
如果能用几层网络去逼近一个复杂的非线性映射H(x)来预测图片的分类,那么同样可以用这几层网络去逼近它的残差函数F(x)=H(x)-x,且我们认为优化残差映射要比直接优化H(x)简单。
当输入层的图像比原图大,reshape的目的:希望潜在的明显特征,如笔画断续、角点,能够出现在最高层特征检测卷积核的中心
3.3 从分类任务到检测任务
RCNN->Fast RCNN->Faster RCNN
可达到实时。辅助无人驾驶。
3.4 增加新的功能模块
FCN->STnet->CNN+RM/LSTM
FCN(反卷积)
4 和全连接网络对比
4.1 全连接神经网络:
输入:32x32x3
第一层隐藏层节点数:500
全连接层网络参数:32x32x3x500+500 (+500是为了bias偏置)
4.2 卷积神经网络:
每一个卷积层中使用的过滤器中的参数都是一样的,卷积层参数个数与图片大小无关,只和过滤器的尺寸、深度以及当前层节点矩阵的深度有关。
输入:32x32x3, 步长:1,padding:VALID
卷积层kernel:5x5(x3)x6
输出:28x28x6 (32-5+1)/1=28
卷积层参数:5x5x3x6+6=456 (+6是bias参数)
输入:28x28x6
池化层filter:2x2
步长:2x2
输出:14x14x6 28/2=14 不影响深度6
【引用】
-1 Tensorflow:实战Google深度学习框架,郑泽宇 / 顾思宇 ,电子工业出版社, 2017-2-10
-2 TensorFlow技术解析与实战,李嘉璇 ,人民邮电出版社,2017-6-1
- 【深度学习】卷积神经网络简介
- 深度学习算法之卷积神经网络简介
- 深度学习:卷积神经网络
- 深度学习-卷积神经网络
- 深度学习 卷积神经网络
- 深度学习卷积神经网络
- 深度学习(资料)-------卷积神经网络
- 深度学习之卷积神经网络
- 深度学习之卷积神经网络
- 深度学习算法--卷积神经网络
- 深度学习:卷积神经网络基础
- 深度学习入门--卷积神经网络
- 深度学习资源---卷积神经网络
- 深度学习(一)卷积神经网络
- 深度学习:卷积神经网络CNN
- 深度学习模型---卷积神经网络
- 深度学习笔记1:神经网络 卷积神经网络
- 机器学习-->深度学习-->卷积神经网络(CNN)
- Miller_Rabin素数测试与Pollard_Rho分解质因数
- 百度大脑--二进制图像数据格式转换问题
- 7-1 两个有序链表序列的合并
- 创建4个线程,4个线程同时对一个文件进行修改。线程1负责向文件写入A,线程2负责向文件写入B,线程3负责写入C,线程4负责写入D。最终文件里的内容应该是ABCDABCDABCD....循环10次;
- javascript中if(a)不同情况下的结果
- 【深度学习】卷积神经网络简介
- TestNG入门教程-6-enabled和priority属性
- lua: 运算符易错点: and or 连接符'..'
- java实现基本排序(一)冒泡排序
- TensorFlow实战:Chapter-8上(Mask R-CNN介绍与实现)
- 次序关系
- C++类模板
- 单链表和顺序表的逆置问题
- 学习问题:图像内插-最近邻内插法