Convolutional Neural Networks(1): Architecture
Concolutional Neural Networks(CNN)同样使用三层结构,但结构上同Feedforward Neural Network有很大不同,其结构如下图:
Input layer: 对单张图片来说,输入数据是3D的(Width*Length*Depth),见下方的立体图。但如果我们使用mini-batch去训练神经网络的话,则input变为了4D数据(Width*Length*Depth*Batch_size)。
Feature-extraction layers:Convolution layer(+Relu)和Pooling layer成对出现,进行高阶映射和特征提取。如下图所示,对于单张图片(3D data)来说,使用Filter(也叫Kernel,可以看成是一个Sliding Window,一般尺寸比数据要小)去扫描该图片并做卷积。通常情况下,从input volumn到Convolutional Layer,数据的Width和Length有了少许的减少,而the 3rd Dimension Depth,则被扩张了,因为有多个Kernels。在中间的过程中,可以看到经过Filter以后,depth变成了6,证明有6个Filter,将原先Depth=3扩展到了6。而后通过pooling layer,Width和Length又被进一步压缩,在这里一般使用Average,或者Maximum去压缩。
Classification layer:在最终输出层之前,会有一个Fully-connected layer,形式和Feedfoward Neural Network的Hidden layer是一样的,与前一Pooling layer的Neurons做全连接,与输出层的Output nodes也做全连接,一层或多层根据需要。
Output layer:用Softmax输出概率或根据需要输出其他形式。如果使用了Mini batch,则输出是2D的(Probabilities*Batch_size)。
实际工作流程,可以用下例来说明:
a. Input是32*32的(depth=1)
b.在Layer1中有6个kernel,Convolution之后有6个28*28的Activation Map,经过Pooling(Subsample)四选一之后,变成了6*14*14.
c.Layer2中有16个kernel,Convolution之后有16个10*10的Activation Map,经过Pooling(Subsample)四选一之后,变成了16*5*5.
d.C5是含有120个neurons的全连接层,F6是输出层
Convolutional Neural Networks(1): Architecture的更多相关文章
- A Beginner's Guide To Understanding Convolutional Neural Networks(转)
A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...
- (转)A Beginner's Guide To Understanding Convolutional Neural Networks
Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...
- 论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
Learning Multi-Domain Convolutional Neural Networks for Visual Tracking CVPR 2016 本文提出了一种新的CNN 框架来处理 ...
- 卷积神经网络Convolutional Neural Networks
Convolutional Neural Networks NOTE: This tutorial is intended for advanced users of TensorFlow and a ...
- 深度卷积神经网络用于图像缩放Image Scaling using Deep Convolutional Neural Networks
This past summer I interned at Flipboard in Palo Alto, California. I worked on machine learning base ...
- [转] Understanding Convolutional Neural Networks for NLP
http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/ 讲CNN以及其在NLP的应用,非常 ...
- (zhuan) Building Convolutional Neural Networks with Tensorflow
Ahmet Taspinar Home About Contact Building Convolutional Neural Networks with Tensorflow Posted on a ...
- [转]An Intuitive Explanation of Convolutional Neural Networks
An Intuitive Explanation of Convolutional Neural Networks https://ujjwalkarn.me/2016/08/11/intuitive ...
- Understanding Convolutional Neural Networks for NLP
When we hear about Convolutional Neural Network (CNNs), we typically think of Computer Vision. CNNs ...
随机推荐
- python学习第四十四天斐波那契数列和yield关键词使用
斐波那契数列是数学中的常见的算法,第一个第二个不算,从第三个开始,每个数的都是前面两个数的和,使用yield关键词把生成的数列保存起来,调用的时候再调用,下面举例说明一下 def fab(max): ...
- POJ3321[苹果树] 树状数组/线段树 + dfs序
Apple Tree Time Limit: 2000MS Memory Limit: 65536K Total Submissions:39452 Accepted: 11694 Descr ...
- BUUCTF--rsa
测试文件:https://buuoj.cn/files/ed10ec009d5aab0050022aee131a7293/41c4e672-98c5-43e5-adf4-49d75db307e4.zi ...
- 初学Java 数组统计字母
public class CountLetterInArray { public static void main(String[] args) { char[] chars = createArra ...
- MYSQL学习笔记——常用语句
1.检索数据 1.1.检索单个列:SELECT prod_name FROM products; 1.2.检索多个列:SELECT prod_id, prod_name, prod_price FRO ...
- 03机器学习实战之决策树scikit-learn实现
sklearn.tree.DecisionTreeClassifier 基于 scikit-learn 的决策树分类模型 DecisionTreeClassifier 进行的分类运算 http://s ...
- 14DBCP连接池
实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采用连接池技术,来共享连接Connection.这样我们就不需要每次都创建连接.释放连接了,这些操作 ...
- git Octotree:提供项目目录,方便用户在线快速浏览项目结构【转载】
很好奇的是,GitHub 作为代码托管平台,竟然没有提供项目目录,方便用户在线快速浏览项目结构.所以,在线分析项目源码就会变得很繁琐,必须一层一层点击,然后再一次一次地向上返回.要知道,本来 GitH ...
- alert(1) to win 8
function escape(s) { return '<script>console.log("' + s.toUpperCase() + '")</scri ...
- Tenka1 Programmer Contest C - Align
链接 Tenka1 Programmer Contest C - Align 给定一个序列,要求重新排列最大化\(\sum_{i=2}^{i=n} |a_i-a_{i-1}|\),\(n\leq 10 ...