CNN
CNN
NuyoahCNN卷积神经网络
卷积神经网络与传统网络的区别:
一个是三维的,一个是二维的
整体架构
卷积的计算方法:
先把图像分为一个个不同的小区域,然后在通过权重矩阵,算出每一个小区域的值
计算方法: 特征矩阵 * 权重矩阵
卷积一般需要做三次以上:
堆叠的卷积层:
卷积的参数
步长
卷积核尺寸
卷积核尺寸越小,我们所得到的特征越明显,卷积核尺寸越大,我们得到特征越模糊,一般最小卷积核的尺寸就是3 * 3的
边缘填充
我们在计算卷积的时候,越到边缘的地方,它的影响越小,如果想要改变这个现状,我们需要进行边缘填充
从这个步长为2的卷积中,我们可以看出,边缘的数据,只进行了一次乘法,而中间的数据进行了两次乘法,这时候边缘和中间的数据,对最后的影响就会不同,我们可以通过边缘填充来消除这个影响
由图中可以看出灰色的为边缘填充的部分,紫色的为我们的目标地址,
卷积计算公式
卷积参数共享,一般一个卷积核使用同一套参数即可,不用每一个区域我们都要改变参数
池化层
当我们采集的特征过多的时候,这时候我们可以使用池化层来进行特征压缩:
框选每一个区域,得到其中特征最明显的一个
池化方法:最大池化
感受野
就是通过卷积之后的一个特征,是通过前面多少个特征计算得来的
例如上面的图像,第一层是5 * 5,第二层是3 * 3, 第三层是1 * 1,我们可以看出最后这一个卷积,是通过前面5 * 5的计算得出的,所以这它的感受野就是 5 * 5
通俗点就是:特征图上的一个点对应输入图上的区域
如果堆积3个3 * 3的卷积层,并且保持滑动窗口步长为1,其感受野就是7 * 7 的,这跟使用一个7 * 7 的卷积核的结果是相同的,那么为什么非要堆叠3 个小卷积那?
经典网络
Alexnet网络
提取特征的卷积核和步长比较大特征提取比较模糊,层数也比较小,所以现在这个网络不常用
Vgg网络
Vgg网络相较于Alexnet网络,卷积核的大小变小了,都是3 * 3,这就表明了在提取特征的时候Vgg比较细腻,而且该网络的层数,也相较于Alexnet网络有了较大的增长,而且Vgg在每一层之间,进行了Maxpool(最大池化)之后,在下一层的时候使其特征数量翻倍,来解决Maxpool带来的特征减少的情况
残差网络Resnet
当我们使用神经网络来处理事件的时候,如果我们一味增加网络的深度,最后得到的结果反倒不如网络深度较浅的网络的结果,这主要是因为,我们在进行网络层数加深的时候,我们不能够确定这一层的处理的结果就一定比上一层好,这时候就出现了残差网络Resnet,残差网络中定义,如果这一次的训练结果,没有上一层好的话我们就将这一层的权重参数设置为零,跳过这一层
迁移学习
我们在训练模型的时候,往往可以借助别人已经训练好的参数,在这个参数的基础上进行在训练,改进和提高,
我们在使用别人训练好的数据的 时候有两种方案:
- 我们把别人训练好的参数当做我们这个模型的初始化条件,然后我们在进行我们的训练
- 我们直接把别人训练好的参数拿来用几乎不做改变,就是把别人的卷积层拿来使用,全连接层自己调节