Python 深度学习入门之CNN
CNN
- 前言
- 一、CNN简介
- 1、简介
- 2、结构
- 二、CNN简介
- 1、输出层
- 2、卷积层
- 3、池化层
- 4、全连接层
- 5、输出层
前言
1024快乐!1024快乐!今天开新坑,学点深度学习相关的,说下比较火的CNN。
一、CNN简介
1、简介
CNN的全称是Convolutional Neural Networks(卷积神经网络)。而神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)结构和功能的数学模型或计算模型。
2、结构
- 输入层 - 图片的像素矩阵
- 卷积层 - 提取特征
- 池化层 - 下采样,不会损坏识别结果
- 全连接层 - 分类
- 输出层 - 输出层通常包括SoftMax层,用于将网络的输出转化为类别概率分布,以进行多类别分类
二、CNN简介
1、输出层
2、卷积层
卷积就是2个函数的叠加,应用在图像上,则可以理解为拿一个滤镜放在图像上,找出图像中的某些特征,如下图所示。
从左上角开始依次遍历,从左到右,从上到下,每次移动的步长是1,依次移动到矩阵末尾之后结束,每次都把Filter和矩阵对应的区域做乘法,得出一个新的矩阵。
3、池化层
通过池化层,可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络参数的目的。使用池化层既可以加快计算速度也可以防止过拟合。
池化层filter的计算不是节点的加权和,而是采用最大值或者平均值计算;
使用最大值操作的池化层被称之为最大池化层(max pooling);
使用平均值操作的池化层被称之为平均池化层(mean pooling)。
4、全连接层
全连接层的作用主要是进行分类。前面通过多层卷积层和池化层得出的特征,在全连接层对这些总结好的特征做分类。全连接层就是一个完全连接的神经网络,根据权重每个神经元反馈的比重不一样,最后通过调整权重和网络得到分类的结果。
5、输出层
SoftMax层在CNN中的需求取决于网络的任务。如果任务是多类别分类,那么SoftMax层通常是合适的。但对于其他任务,可以根据具体需求选择适当的输出层结构。