目录(持续更新)
概述
卷积神经网络(CNN): 一种更适合图像、语音识别任务的神经网络结构
https://blog.csdn.net/songhao22/article/details/79349493
- 输入层:用于数据输入
- 卷积层:使用卷积核进行特征提取和特征映射
- 激励层:由于卷积是一种线性运算,因此需要增加一些非线性映射
- 池化层:进行下采样,对特征图稀疏处理,减少数据运算量
- 全连接层:在CNN尾部进行重新拟合,减少特征信息的损失
- 输出层:用于输出结果
- 归一化层(Batch Normalization):在CNN中对特征的归一化,这样可有效地防止“梯度弥散”,加速网络训练
- 切分层:对某些(图片)数据的进行分区域的单独学习
- 融合层:对独立进行特征学习的分支进行融合
用CNN解决的问题都存在局部与整体的关系。
由低层次的特征经过组合,组成高层次的特征,并且得到不同特征之间的空间相关性。
CNN特点:局部连接/权值共享/池化操作/多层次结构
局部连接:使网络可以提取数据的局部特征
权值共享:大大降低网络的训练难度,一个filter值提取一个特征
池化操作与多层次结构一起,实现了数据的降维,并将低层次的局部特征组合为较高层次的特征。
卷积神经网络中激活函数Relu
Relu函数的定义:
Relu函数的图像:
Relu函数的优势:
卷积网络
全连接网络不太适合图像处理:
- 参数数量太多
- 没有利用像素之间的位置信息
- 网络层数限制
卷积网络的解决思路:
- 局部连接:每个神经元只和上一层的一小部分神经元相连(卷积层)
- 权值共享:一组连接可以共享同一个权重(卷积层)
- 下采样:使用pooling来减少每层的样本数(Pooling层)
卷积网络架构
卷积神经网络示意图:
一个卷积神经网络由若干个卷积层、池化层、全连接层组成,如:
INPUT --> [ [CONV] * N --> POOL(可选) ] * M --> [ FC ] * K
CNN:三维的层结构
卷积神经网络每层的神经元是按照三维排列的,有宽度、高度和深度。
图像的大小、步幅、Filter的大小和卷积后的Feature Map大小是有一定关系的:
每个卷积层可以有多个filter。每个filter和原始图像进行卷积后,都可以得到一个Feature Map。因此,卷积后Feature Map的深度(个数)和卷积层的filter个数是相同的。
卷积层输出计算
数学中的卷积和卷积神经网络中的卷积(互相关)是有区别的:
数学中的的结果等于在卷积网络中将A旋转180度再与B卷积。
池化层的输出计算
Pooling层主要的作用是下采样,通过去掉Feature Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max Pooling。Max Pooling实际上就是在n*n的样本中取最大值,作为采样后的样本值。
卷积神经网络的训练
反向传播算法步骤: