CNN入门系列(1)——Input of CNN and Convolutional Layer
来源:互联网 发布:邮箱大师mac版本 编辑:程序博客网 时间:2024/05/08 14:23
参考:cs231n
这个系列写的是我对cs231n的一些翻译和理解
————————————————————————————————————————————
input of CNN
在刚接触CNN的时候,我是看到的几乎所有的教程都是已识别灰度图像入门的,灰度图像在计算机中的表示是一个二维的矩阵,每个(x. y)对应一个值在[0, 255]之间的数字。但是彩色图像应该怎么作为输入呢?
举个例子:灰色图像: [101, 102, 103... 111, 112, 113...]彩色图像:[[101, 102, 103], [104, 105, 106]...[111, 112, 113], [114, 115, 116]...]
上面这张图是cs231n里给的可视化图片,简单说下图片下面的英文:神经卷积网络的每层通过一个神经元将一个3D输入卷转化为3D输出卷。在这个例子里,红色层(最左边那一层)储存输入图片,所以他的宽度和高度是图片的尺寸,深度是3(RGB三种颜色)。
也就是说我们输入的彩色图片是一个W*H*3的矩阵,灰色图片是W*H*1的矩阵。
Convolutional Layer
上面就是卷积层的输入,对于一个彩色图片来说,卷积层的输入是3个feature map,而对于灰色图片来说,输入仅仅是1个feature map。
然后选择一个卷积核对feature map做卷积操作。
举个例子:假设3个feature map的大小均为32*32,有一个卷积核的大小是5*5*3(前面5*5是宽和高,后面3是对应feature map有3个),zero-padding为2,步长为1。我们采用权值共享,再加上偏移量后,就会得到3个大小为32*32的卷积输出(因为有3个feature map)将这三个输出矩阵对应位置相加,就会得到一个新的feature map。有多少个卷积核就会有多少个feature map。
参考:卷积神经网络 一般性结构卷积核个数和 输入输出的关系以及输入输出的个数的说明
一个重要的结论
在进行卷积层的运算的时候,卷积核的维数是输入的feature map的个数,卷积核的个数,就是输出的feature map的数量。所以在上图我们就能看到,进行卷积的volume的depth在逐渐的变长(因为我们要获取多个特征,所以卷积核的数量会一层比一层多。为了减少参数,采取了pooling的方法,所以width和height的长度会减少)
一些名词
卷积核(kernel)/局部切片(patch)/滤波器(filter)
感知域(receptive field)
步长(stride)
零填充(zero-padding)
最后附上cs231n对卷积层的总结
- CNN入门系列(1)——Input of CNN and Convolutional Layer
- CNN入门系列(2)——Pooling Layer
- CNN入门必读经典:Visualizing and Understanding Convolutional Networks
- Convolutional neural networks(CNN) (一) 入门参考
- 【R-CNN系列目标检测】(1)R-CNN算法
- 卷积神经网络CNN(3)—— FCN(Fully Convolutional Networks)要点解释
- 卷积神经网络(Convolutional Neural Network, CNN)
- Convolutional-Neural-Network (CNN)框架详解
- CNN(Convolutional Neural Networks)学习总结
- CNN网络结构 - Refining Architectures of Deep Convolutional Neural Networks
- Convolutional neural networks(CNN) (六) PCA and Whitening Exercise
- Convolutional neural networks(CNN) (十一) Convolution and Pooling Exercise
- CNN系列
- Notes—Convolutional layer
- 卷积神经网络CNN入门——代码
- CNN初学者—从这入门
- 目标检测方法系列——R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD
- 目标检测方法系列——R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD
- 5分钟搞定android混淆
- command 5
- 头部姿态估计两种评价准则
- 为什么编程是独一无二的职业!
- WebSocket使用(C++环境)(二) --- libwebsockets库的安装与使用
- CNN入门系列(1)——Input of CNN and Convolutional Layer
- Leetcode 27 Remove Element(移除数组中的指定元素)
- LeetCode 15 3Sum题解
- poj 2383
- 常用SQL语句汇总
- Codeforces 93E
- Map对象指针和Map.clear()
- Android屏幕适配姿势
- 动态创建ProtoBuf中的Message对象