AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)


AI:IPPR的数学表示-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层) - wishchinYang的专栏 - CSDN博客

        
    








        

AI:IPPR的数学表示-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)

类似于SVM,CNN为代表的DNN方法的边缘参数随着多类和高精度的要求必然增长。比如向量机方法,使用可以映射到无穷维的高斯核,即使进行两类分类,在大数据集上得到高精度,即保持准确率和高精度的双指标,支持向量的个数会随着数据集增长,SVM三层网会变得非常宽。CNN方法的多层结构,在保留边缘映射的数目的同时可以有效地降低“支持向量”的个数,是通过函数复合—因式分解得到的,至于要使用多少层的网络,每一层网神经元的个数,两层之间的链接方式,理论上也应该有一般的指导规则。

参考链接:人工机器:作为归纳系统的深度学习 ,参考文章:卷积神经网络.卷积层和池化层学习 ,原始CNN论文,对摘抄段落有大量修改,如有疑问,请参考原文。


特征学习与结构学习

深度学习以“数据驱动”范式颠覆了“人造特征”范式,完成“特征学习”,这是一个重大的进步。但与此同时,它自己又陷入了一个“人造结构”窠臼中。06年hinton教授发表在nature上的最初的论文,多层压缩映射。给出的深度学习的方案是无监督学习获取网络结构,之后再通过有监督学习优化参数,DNN网络的引爆点恰恰是结构学习。大量利用未标记数据学习网络结构是深度学习最初的构想。

  但无论Hinton教授组最初设计的AlexNet,还是后来的VGG,GoogLeNet,ResNet等等,都是富有经验的专家人工设计出来的。给定一个新问题,到底什么样的网络结构是最佳的(如多少卷积层)却不得而知,这在一定程度上阻碍了深度学习在更多智能任务上的普及和应用。因此,同时学习网络结构和网络参数是一个值得大力关注的研究方向。( 假设空间问题难以突破,至于过拟合欠拟合都没有统一简单的评判准则,也因此难以使用机器自动完成,相对于给定结构后使用数据结构优化参数, 优化结构是个更加复杂且更高层的问题。多年已过,众人发现,ALexNet并非最优结构,这是一个经过大量专家枚举结构很长时间才得到的结果)。

而2006年Hinton教授等人倡导的却恰恰是利用无监督学习来对深层神经网络进行预训练。利用超量的数据学习网络结构是一个更耗费时间和计算能力的事情。此后,特别是DCNN兴起之后,无监督的预训练似乎已经被很多研究者所抛弃( 特别是在CV领域,因为耗日持久,远不如使用专家经验代价更小)。

直接从大量无监督数据中学习模型确实是非常困难的,即便是人这部“机器”,也有“狼孩”的例子警告我们“无师自通”似乎是不现实的。但“少量有导师数据+大量无导师数据”的模式也许是更值得大力研究的。

Hinton教授提出的使用无监督训练确定网络结构,使用编码/解码器,对每次编码/解码进行分解/重建,使用残差逐层优化编码器,保证每一层对无标签样本的压缩函数的紧邻特性,在理论上是可行的,但在实际运用中是极难实现的。这种方法需要比有标签样本多更多的无标签样本,以分析海量样本中隐藏的模式,甚至需要高出一个或几个级别的样本数量,甚至是遍历级别的样本。在不停的调整网络结构,预训练结束之前,凭专家知识可能已经得到了近似最优网络结构。

这是一个人脑分支定界法法和计算机遍历方法的PK,现阶段计算机遍历的方法还是不现实的。

而工业上广为流行的CNN结构一般使用了ImageNet的分类模型,再通过微调使其适用于使用者自身研究的问题。这个众人使用的ImageNet模型,便相当于已经通过非监督学习学习了网络结构的预训练模型。


CNN的结构分析—卷积层

CNN的二维结构天然适合图像特征提取和识别过程,卷积运算的计算过程及功能相当于反向模板匹配。CNN通过卷积层,训练不同的卷积核来提取图像中隐含的模式。CNN训练得到的是滤波器-卷积核,本质上是对于某种特定的模式有响应,反之无响应,所以全卷积一直到最后一层,响应最强的特征图。

网如其名,CNN方法必然包含了一个卷积算子层。还是拿LeNet为例,结构图为:



LeNet使用了两个卷积层,C1层和C3层。C1层,输入图片:32*32 ;卷积核大小:5*5 ;卷积核种类:6 ;输出featuremap大小:28*28 (32-5+1);神经元数量: 28 *28 *6; 可训练参数:(5*5+1)*6(每个滤波器5*5=25个unit参数和一个bias参数,一共6个滤波器);连接数:(5*5+1)*6*28*28。

C3层也是一个卷积层,输入:S2中所有6个或者几个特征map组合; 卷积核大小:5*5;卷积核种类:16; 输出featureMap大小:10*10;C3中的每个特征map是连接到S2中的所有6个或者几个特征map的,表示本层的特征map是上一层提取到的特征map的不同组合,存在的一个方式是:C3的前6个特征图以S2中3个相邻的特征图子集为输入。接下来6个特征图以S2中4个相邻特征图子集为输入。然后的3个以不相邻的4个特征图子集为输入,最后一个将S2中所有特征图为输入;则:可训练参数:6*(3*25+1)+6*(4*25+1)+3*(4*25+1)+(25*6+1)=1516;连接数:10 *10 *1516 = 151600。

卷积层的作用卷积神经网络中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征。使用不同的卷积核的组合,可实现梯度计算、尺度计算(配合maxpooling层)等作用,,可以对显著性进行选择。第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征(这也是深度的要求)。



图片来自:卷积神经网络.卷积层和池化层学习 ,抠图于原始CNN论文

卷积层的更新模型:卷积层类似于BP网络的二维描述,依然使用前向传播计算输出,使用反向传播在训练过程中调整权重和偏置,更新网络。参考卷积核的反传算法。一般前向计算,把卷积方法转换为图像矩阵和卷积核矩阵的乘法形式,直接计算。

卷积层的Caffe表示:caffe直接给出了卷积层的参数调整方法,不需要自己设计卷积神经元。

AlexNet模型配置文件:输出256个卷积图,使用5*5的卷积核,使用高斯核,标准偏差为0.1。此层附带了ReLu激活函数层。上层输入为96大笑.

layer {

name: “conv2”
type: “Convolution”
bottom: “norm1”
top: “conv2”
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 2
kernel_size: 5
group: 2
weight_filler {
type: “gaussian”
std: 0.01
}
bias_filler {
type: “constant”
value: 1
}
}
}
layer {
name: “relu2”
type: “ReLU”
bottom: “conv2”
top: “conv2”
}

CNN的结构分析—Pooling层

使用卷积核提取的大量特征,产生超高的维度,面临着表示困难的问题,且直接叠加的卷积层会产生更庞大的卷积特征集合。Pooling层一般作为显著性选取和降维的作用存在。

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第1张图片Pooling明显地降低了特征图的维度

使用MeanPooling的方式,相当于平均化特性,用于简化函数模型,同时丧失了一些特异性准确性,增加泛化性能,即是把复杂模型转化为一个平均模型,得失都很明显。而maxpooling则描述为提取特征本身的显著性作用,同时进行数据压缩。

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第2张图片

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第3张图片

MeanPooling可以用网络加深来替换其数据压缩的作用,一个MeanPooling层相当于网络深度增加两倍,而MeanPooling自身模型简单化的特点丧失了准确性表示,逐渐被取代一般不再被使用。上图中,同样地采用一个22的filter,max pooling是在每一个区域中寻找最大值,这里的stride=2,最终在原特征图中提取主要特征得到右图。概率意义上, MaxPooling 过程之后,特征更小且相对表示性更强。

参考文章:http://ufldl.stanford.edu/wiki/index.php/池化

池化的平移不变性:如果人们选择图像中的连续范围作为池化区域,并且只是池化相同(重复)的隐藏单元产生的特征,那么,这些池化单元就具有平移不变性 (translation invariant)。这就意味着即使图像经历了一个小的平移之后,依然会产生相同的 (池化的) 特征。在很多任务中 (例如物体检测、声音识别),我们都更希望得到具有平移不变性的特征,因为即使图像经过了平移,样例(图像)的标记仍然保持不变。例如,如果你处理一个MNIST数据集的数字,把它向左侧或右侧平移,那么不论最终的位置在哪里,你都会期望你的分类器仍然能够精确地将其分类为相同的数字。(MNIST 是一个手写数字库识别库: http://yann.lecun.com/exdb/mnist/)

池化的方式:可使用划分池化的形式,也可以使用Overlap池化的形式。此外可以使用金字塔池化的形式,每层使用不同的池化单元,形成一个金字塔特征,也用于缩放不变性,同时可以处理一定的形变。

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第4张图片金字塔池化,可用于处理一定的仿射形变。

CNN的结构分析—全链接层

使用卷积核提取的大量特征,产生超高的维度,同时使用MaxPooling层进行维度压缩同时选取明显特征。CNN网络通常反复堆叠Conv+MaxPooling层,变得更深,因此能提取更加全局更加高层的特征,同时不会产生太高的特征维度。对一个图片输入产生一个特征集合。

全链接层,连接所有的特征,把多个Map压缩为1个X维向量,将输出值送给分类器(如softmax分类器)

ALexNet模型的配置文本如下:

layer {
name: “fc7”
type: “InnerProduct”
bottom: “fc6”
top: “fc7”
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
inner_product_param {
num_output: 4096
weight_filler {
type: “gaussian”
std: 0.005
}
bias_filler {
type: “constant”
value: 1
}
}
}
layer {
name: “relu7”
type: “ReLU”
bottom: “fc7”
top: “fc7”
}
layer {
name: “drop7”
type: “Dropout”
bottom: “fc7”
top: “fc7”
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: “fc8”
type: “InnerProduct”
bottom: “fc7”
top: “fc8”
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
inner_product_param {
num_output: 1000
weight_filler {
type: “gaussian”
std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}

第7层全链接层输出参数为4096,默认表示输出4096个维度向量。此外,设置的dropout率为0.5,则意味着使用了另外0.5的链接冗余,用于增强泛化能力。


CNN的结构分析—SoftMax分类器

CNN多数分类模型最终选择了MLP+SoftMax分类器,使用MLP-全连接层进行特征降维,SoftMax函数进行分类。是否因为SoftMax分类器在多分类上的无偏性,便利性?训练时参数更新的更快。

为什么一定要把最后的分类器设置为处理向量空间的SoftMax分类器,而不是直接使用xx—>11或者x1—>11的卷积方式呢?。

使用Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 \textstyle y 可以取两个以上的值。 Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的。

SoftMax分类器: http://ufldl.stanford.edu/wiki/index.php/Softmax…

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第5张图片

SoftMax层计算过程:

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第6张图片

Caffe配置文件:

layer {
name: “fc8”
type: “InnerProduct”
bottom: “fc7”
top: “fc8”
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
inner_product_param {
num_output: 1000
weight_filler {
type: “gaussian”
std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “accuracy”
type: “Accuracy”
bottom: “fc8”
bottom: “label”
top: “accuracy”
include {
phase: TEST
}
}
layer {
name: “loss”
type: “SoftmaxWithLoss”
bottom: “fc8”
bottom: “label”
top: “loss”
}
第8层全链接层输出参数为1000,表示AlexNet模型默认输出1000个类别。

CNN结构总结

CNN方法对输入图像不停的卷积、pooling,提取更多的特征图,使用全链接层映射到特定维度的特征向量空间,再通过MLP或者softmax分类器获得图像目标分类。

检测可以视为选取BoundingBox和分类的结合,而后出现的DarkNet更是直接产生了回归模型。

下图为典型的DeepID模型。

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第7张图片

AI神经网络-CNN基本结构分析( Conv层、Pooling层、FCN层/softmax层)_第8张图片

Car的图片经过CNN层层特征提取和Polling过程,最后生成的Map经过压缩为m维向量,经过SoftMax函数,压缩为n维浮点数,然后经过Max()函数,取得分类结果。




阅读更多


发表评论
还能输入1000个字符

卷积神经网络系列之softmaxsoftmax loss和cross entropy的讲解 - ai之路(计算机视觉、深度学习、机器学习爱好者,欢迎交流!)

08-17 6.5万

我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等。虽然现在已经开源了很多深度学习框架(比如MxNet,Caf... 来自: AI之路

		

softmax简介
Softmax回归模型是logistic回归模型在多分类问题上的推广,在多分类问题中,待分类的类别数量大于…

来自: l691899397的博客



		

连接:softmax层一般连接的是全连接层和loss层
这里有softmax层的来历解释,我感觉解释的很好:http://zhidao.baidu.com/lin…

来自: 有信念,才能走的更远



定义输入
在Caffe的…

来自: lanran2的博客



		




		

图像语义分割,就是对一张图片上的所有像素点进行分类。以往的CNN都是对整张图片…

来自: 时光杂货店



		

下载AR人脸数据库,用Caffe-face中的face_example中的模型去学习,用一体机CPU方式,感觉没多久就死机了似的。觉得前一段时间急于得到成效,中间看到的很多东西都没消化…

来自: tkyjqh的专栏



		


		



        
换一批

在神经网络中,池化函数(Pooling Function)一般在卷积函数的下一层。在经过卷积层提取特征之后,得到的特征图代表了
比 像素 更高级的特…

来自: 飘过的春风



		




		

神经网络

来自: pascal_lin



		

本系列文章面向深度学习研发者,希望通过Image Caption Generation,一个有意思的具体任务,深入浅出地介绍深度学习的知识。本系列文章涉及到很多深度学习流行的模型,如CNN,RN…

来自: qunnie_yi的博客



		

在各种顶会论文中,对年龄…

来自: 年轻即出发,



		




		

def weigh…

来自: GoodShot的专栏



		

写在前面
Abstract
Introduction
Object detection with R-CNN
Visualization,ablation,and modes of error


来自: liumingpei的博客



关于softmax回归
看过最清晰的关于so…

来自: bailufeiyan的博客



		




		




		

第一点,在学习Deep learning和CNN之前,总以为它们是很了不得的知识,…

来自: damifeng2018的博客



		

1、pooling主要是在用于图像处理的卷积神经网络中,但随着深层神经网络的发展,pooling相关技术在其他…

来自: 竭尽全力的专栏



		

pooling,因为取一片区域的最大值,所以这个最大值在该区域内无论在哪,max-pooling之后都是它,相…

来自: byplane的博客



		

用ReLU代替sigmoid

来自: liulina603的专栏



		

1、是构建更深层次的网络变得可行;
2、使得filters获得更多的全局和contextual(上下文)信息;
3、使训练可行,也可以说使得训练变得更高效,…

来自: MachineLP的专栏



		

%MatConvNet学习
%对于三通道RGB图像进行卷积,…

来自: kangqi5602的博客



		




		




		

[1]Deep learning简介

[2]Deep Learning训练过程

[3]De…

来自: 生活不止眼前的苟且,还有诗和远方…



		

O=ceil((W-K+…

来自: 有机合成研究员的博客



卷积神经网络(CNN)入门讲解​

个人公众号:follow_bobo

时隔一个月,我又回来了

好了,好了

(做出停止鼓掌的手势

今天我们的主题是CNN最后最后那…

来自: bobo_jiang的博客



		




		




		

一直对softmax的反向传播的caffe代码看不懂,最近在朱神的数学理论支撑下给我详解了它的数学公式,才豁然开朗

SoftmaxWithLoss的由来

SoftmaxWithLoss…

来自: Sundrops的专栏



		

		

引用wiki百科的定义:  A logistic function or logistic curve is a common “S” shape (si…

来自: 老哥的专栏



		




		




		




		

首先,初次接触这个问题是在做图像分割遇到的。
pooling为什么可以提高感受野?
得这样理解:首先它第一个…

来自: jiachen0212的博客



最新文章

  • C++:error C2558 没有可用的复制构造函数或复制构造函数声明为“explicit”
  • C++:int 与string相互转换
  • OpenCV:判定曲线为弧线的简单方法
  • OpenCV:简单计算曲线弧度-弓形弧度
  • OpenCV:findContours的曲线断开-离散点问题

个人分类

  • 心理学/职业 38篇
  • 场景处理/RgbD累积 104篇
  • C++编程 66篇
  • MFC编程 26篇
  • 目标追踪 9篇
  • 人脸识别 14篇
  • MLandPy 46篇
  • Matlab编程 17篇
  • BigDataMini 19篇
  • PythonLG 34篇
  • 图像检索 34篇
  • C+/代码迁移 32篇
  • BOOST/FlANN/Eigen/C+0X 25篇
  • 艺术/图像评价 35篇
  • QT./Linux 57篇
  • AI/ES 65篇
  • 开源标准 10篇
  • 毕业论文 5篇
  • 数学/工具 33篇
  • 工程/设计师 29篇
  • CUDA 23篇
  • 图像特征 50篇
  • 计算机视觉 44篇
  • 语言(学) 7篇
  • Django 3篇
  • PS 4篇
  • Linux开发 10篇
  • STL/算法 44篇
  • AI:A Modern Approach 4thEdtion 4篇
  • IAAS 9篇
  • Spark 6篇
  • PaaS 9篇
  • ANN/DNN/纤维丛 126篇
  • 聚类分析 11篇
  • 判别分析 30篇
  • AR/VR_3D 41篇
  • 人形机器人 57篇
  • 三维重建/SLAM 79篇
  • ML日报收集 1篇
  • OpenCV 63篇
  • 生成式模型 12篇
  • ReinforceLearning 30篇
  • ROS 25篇
  • 时序/变长分析 35篇
  • 资源整理 44篇
  • 飞行机器人 3篇
  • GazeTracker 4篇
  • Humanoid 27篇
  • TuringMachine 26篇
  • AI/ML 42篇
  • 推荐/Rank系统 22篇
  • StyleAI 37篇
  • 总体哲学AIPRIPCV 23篇

展开

归档

  • 2018年10月 7篇
  • 2018年9月 6篇
  • 2018年8月 2篇
  • 2018年7月 17篇
  • 2018年6月 11篇
  • 2018年5月 5篇
  • 2018年4月 8篇
  • 2018年3月 23篇
  • 2018年2月 5篇
  • 2018年1月 8篇
  • 2017年12月 13篇
  • 2017年11月 18篇
  • 2017年10月 7篇
  • 2017年9月 9篇
  • 2017年8月 9篇
  • 2017年7月 15篇
  • 2017年6月 11篇
  • 2017年5月 8篇
  • 2017年4月 4篇
  • 2017年3月 18篇
  • 2017年2月 4篇
  • 2017年1月 1篇
  • 2016年12月 2篇
  • 2016年11月 3篇
  • 2016年10月 3篇
  • 2016年9月 2篇
  • 2016年8月 8篇
  • 2016年7月 11篇
  • 2016年6月 13篇
  • 2016年5月 40篇
  • 2016年4月 4篇
  • 2016年3月 4篇
  • 2016年2月 3篇
  • 2016年1月 3篇
  • 2015年12月 21篇
  • 2015年11月 5篇
  • 2015年10月 12篇
  • 2015年9月 13篇
  • 2015年8月 16篇
  • 2015年7月 14篇
  • 2015年6月 8篇
  • 2015年5月 4篇
  • 2015年4月 24篇
  • 2015年3月 8篇
  • 2015年1月 10篇
  • 2014年12月 23篇
  • 2014年11月 3篇
  • 2014年10月 7篇
  • 2014年9月 1篇
  • 2014年8月 16篇
  • 2014年7月 21篇
  • 2014年6月 11篇
  • 2014年5月 3篇
  • 2014年4月 5篇
  • 2014年3月 10篇
  • 2014年2月 21篇
  • 2014年1月 11篇
  • 2013年12月 17篇
  • 2013年11月 38篇
  • 2013年10月 28篇
  • 2013年9月 28篇
  • 2013年8月 12篇
  • 2013年7月 24篇

展开

	







你可能感兴趣的:(神经网络)