CNN学习
学习笔记,自慕课网
**
CNN
CNN,卷积神经网络
一)卷积的含义
以图片分类为例, 那么我们就需要去找图片里的轮廓。
比如下面的小猫,我们怎么去识别它是一只小猫呢? 找出它的轮廓~
1.1 卷积
为了提取图片里的特征我们引入了卷积操作
卷积:对图像矩阵与滤波器矩阵进行对应相乘再求和运算,转化成新的矩阵
作用:快速定位图像中某些边缘特征
英文:Convolution
具体操作如下:
1.2 寻找轮廓
结论:将图片与轮廓滤波器进行卷积运算,可快速定位固定轮廓特征的位置
举一个例子:假设我们有100张小狗的图片,我们要计算机来根据样本图片,
自动寻找合适的轮廓过滤器,对新图片进行轮廓匹配。这个寻找Filter,这里我们就是通过 CNN 网络来进行的。小狗很毛,嘴巴等特征,一个过滤器往往不够,所以我们会用很多过滤器。
-> 现实中,我们的图片是 RGB 的格式的图:
疑问:为什么 663的RGB乘以333的Filter结果是 4*4 的二维的图片
1.3 池化
在我们之前的卷积操作里,我们希望提取特征,同样,也希望训练参数减少,所以引入了池化:
按照一个固定规则对图像矩阵进行处理,将其转换为更低维度的矩阵。
1)Max_pooling
1.4 卷积神经网络
把卷积、池化、MLP先后连接在一起,组成卷积神经网络
1.5 **函数
作用:
1)使部分神经元为0,防止过拟合
2)助于模型的求解
Relu函数: f(x) = max(x, 0)
1.6 全连接层
把最后池化的数据逐一提取出来,进行数据预处理,将数据展开来,如上图,展开后作为MLP的输入
1.7 卷积神经网络的特点
1)参数共享
同一个特征过滤器可用于整张图片
2)稀疏连接
生成的特征图每个节点只与原图片中特定节点连接
2.0 卷积运算的问题
卷积运算导致两个问题:
1)图像被压缩,造成信息丢失
原来是55,过滤器是33,最后结果是33 ,存在压缩的现象
nn 与 f*f 不padding,最后结果是 ((n-f)/s+1) , ((n-f)/s+1)
2)边缘信息使用少,容易被忽略
图像边缘信息使用很少
针对2)我们使用Padding运算来维持原图大小
2.1 卷积运算的组合问题
2.2 经典的CNN模型
- 参考经典的CNN结构搭建新模型
- 使用经典的CNN模型结构对图像预处理,再建立MLP模型
3.1 LeNet-5
LeNet的特点: 是只有32*32的灰度图,现实很多事RGB的图像
3.2 AlexNet
AlexNet特点:输入图像:227 * 227 *3 RGB图像,3通道
训练参数:约60,000,000个
1)适用于识别较为复杂的彩色图,可识别1000种类别
2)结构比 LeNet 更为复杂,适用Relu作为**函数
3.3 VGG16
发现中间的卷积池化的size总是不能确定,出现了VGG16模型
3.4 经典的CNN模型用于新场景
如果原来的网络训练好了猫狗,现在做猫狗的二分类,就可以直接剥除掉FC层。