卷积神经网络CNN介绍:结构框架,源码理解【转】
1. 卷积神经网络结构
卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表达;每层由多个二维平面组成,每个平面为各层处理后的特征图(feature map)。
常见结构:
输入层为训练数据,即原始数据,网络中的每一个特征提取层(C-层)都紧跟着一个二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。具体C层和S层的个数不确定,依据具体案例而定;最后一个S,即完成了对原始数据的特征提取后,把S层的特征数据进行向量化(vector),然后连接到相应分类器。
一个具有7(输入层+c1+s2+c3+s4+c5+v)层网络结构的字母识别的CNN网络
2 卷积层Convolution作用:
卷积操作:用一个滤波器(就是一个小特征矩阵,也称卷积核)在图像矩阵上游走,在对应位置元素相乘,再把相乘的结果相加,最后相加的结果形成新的图像矩阵,游走完成后即完成了对原始图像的卷积变换(映射变换),形成此滤波器下的特征提取。
C层是一个特征提取层,为什么用卷积运算;卷积运算一个重要的特点就是,通过卷积运算,可以使原信号特征增强,并且降低噪音;例如用增强边缘的卷积去处理图像,处理后的图像边缘特征增强。
3 S层作用:
S-层可看作是模糊滤波器,起到二次特征提取的作用。S层又叫做subsample层,子采样层或者pooling(池化)层
在通过卷积获得了特征 (features)之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如 softmax分类器,但这样做面临计算量的挑战。例如:对于一个 96X96像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个 (96 − 8 + 1) * (96 − 8 + 1) = 7921 维的卷积特征,由于有 400个特征,所以每个样例 (example)都会得到一个 892 *400 = 3,168,400维的卷积特征向量。学习一
个拥有超过 3百万特征输入的分类器十分不便,并且容易出现过拟合 (over-fitting)。
为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。
4 网络的前馈计算:
4.1C层卷积计算:
用一个可训练的滤波器kij去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是S层的结果特征map了),然后加一个偏置bx,得到卷积层Cx。
假设层为s层特征图像Xil-1(pooling层),l层为卷积C层,卷积结果为Xjl
在卷积计算前加入稀疏稀疏aij,通过稀疏规则限制(论文后面),使算法自动选取部分s层特征作为输入,具体个数不确定。
假设输入特征图Feature Map大小为28*28。卷积核大小5*5。
卷积后特征图大小size(Cx)=(28-5+1,28-5+1)
1,随机初始化;2,用linear sparseautoencoder进行非监督特征学习,学习特征卷积
Pooling池化计算主要分为均值池化,最大值池化等,有的算法还在此话后进行sigmoid非线性变换;
转载于:https://www.cnblogs.com/fuleying/p/4716567.html
卷积神经网络CNN介绍:结构框架,源码理解【转】相关推荐
- 【图像识别】基于卷积神经网络(CNN)实现垃圾分类Matlab源码
1 模型介绍 模型参考这里. 2 部分代码 function varargout = cnnMain(varargin) gui_Singleton = 1; gui_State = struct(' ...
- 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。
在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...
- 机器学习之卷积神经网络--CNN介绍
卷积神经网络–CNN 1. 卷积神经网络介绍 卷积神经网络(Convolutional Neural Networks,CNN)是一种包 含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之 ...
- 卷积神经网络(CNN)介绍与实践
七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习 快速带你入门阅读全文> 正文共4499个字,26张图,预计阅读时间18分钟. CNN的前世今世 1.1.大脑 ...
- 卷积神经网络(CNN)介绍
简单介绍和总结卷积神经网络(Convolutional Neural Networks)的基本组成网络层和常用的网络结构. 参考文章/书籍: An Intuitive Explanation of C ...
- 卷积神经网络(CNN)模型结构
在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...
- 深度学习之卷积神经网络CNN
转自:https://blog.csdn.net/cxmscb/article/details/71023576 一.CNN的引入 在人工的全连接神经网络中,每相邻两层之间的每个神经元之间都是有边相连 ...
- 【图像识别】基于卷积神经网络CNN手写数字识别matlab代码
1 简介 针对传统手写数字的随机性,无规律性等问题,为了提高手写数字识别的检测准确性,本文在研究手写数字区域特点的基础上,提出了一种新的手写数字识别检测方法.首先,对采集的手写数字图像进行预处理,由于 ...
- 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】
深度学习 Pytorch 学习笔记 目录整合 数学推导与源码详解 B站刘二大人 目录传送门: 线性模型 Linear-Model 数学原理分析以及源码详解 深度学习 Pytorch笔记 B站刘二大人( ...
最新文章
- Netty系列之一开始使用
- 笔记-项目进度管理-精简
- react项目启动invalid host header问题
- 胶囊路由_评论:胶囊之间的动态路由
- C——Flowers
- 计算机word基本知识选择题,2017计算机基础考试选择题「附答案」
- 织梦服务器系统win10,WIN服务器爆破DEDECMS后台目录
- cloudsim样例描述
- 质数分布是否随机关乎安全大事
- webmin mysql_MySQL+Webmin轻松创建数据库
- RPC框架设计概要-性能
- Glide4.0 centerCrop属性和圆角 冲突
- Sql server中 如何用sql语句创建视图
- timesten mysql_timesten:TT0802错误
- python 谷歌翻译接口_使用python调用谷歌翻译接口实现英文到中文的翻译
- php商城添加加入购物车,php添加购物车,php购物车
- UVa 10827 - Maximum sum on a torus
- win10计算机网线直联,教你win10两台电脑网线直连传输文件的方法
- new new Foo().getName()面试题解析
- Aquarius 水瓶
热门文章
- 题目1198:a+b
- 2015-04-11一些知识点
- F# 与 WPF 之多语言实现MVVM(二)
- 【古典入门】巴洛克音乐家-斯卡拉蒂
- python获取html文本框内容_Python3处理HTML获取所需内容
- 湖南高校教师评职称计算机等级考试,湖南高校教师职称评审出台新规,这些要点你了解了吗?...
- 【Python】eval+random库+字符串转列表+列表转字符串
- 数值计算方法(六)——迭代法求解线性方程组
- Netfilter分析
- mysql建立修改表存储过程_MySQL数据库创建、表的创建、存储过程、触发器