CNN卷积神经网络-学习记录
CNN介绍
为了“教会”一种算法如何识别图像中的对象,我们使用特定类型的人工神经网络:卷积神经网络(Convolutional Neural Network)简称CNN。他们的名字源于网络中最重要的一个操作:卷积。CNN的概念图如下:
CNN架构简单来说就是:图片经过各两次的Convolution, Pooling, Fully Connected就是CNN的架构了,因此只要搞懂Convolution, Pooling, Fully Connected三个部分的内容就可以完全掌握了CNN。
CNN结构
1. Input layer(数据输入层)
该层要做的处理主要是对原始图像数据进行预处理,其中包括:
- 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。
- 归一化:幅度归一化到同样的范围,如下所示,即减少各维度数据取值范围的差异而带来的干扰,比如,我们有两个维度的特征A和B,A范围是0到10,而B范围是0到10000,如果直接使用这两个特征是有问题的,好的做法就是归一化,即A和B的数据都变为0到1的范围。
- PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化
2. Convolutional layer(卷积层–CONV)
这一层是卷积神经网络最重要的一个层次,有两个关键操作:
- 局部关联。每个神经元看做一个滤波器(filter)
- 窗口(receptive field)滑动, filter对局部数据计算
卷积层名词:
- 深度/depth(有多少神经元,深度就是多少)
- 步长/stride (窗口一次滑动的长度)
- 步长大小通常为1,意味着滤镜逐个像素地滑动。通过增加步幅大小,滤波器在输入上滑动的间隔更大,因此单元之间的重叠更少。
- 填充值/zero-padding
2.1 卷积运算
卷积运算就是将原始图片的与特定的Feature Detector(filter)做卷积运算(符号⊗