深度学习——卷积神经网络初步认识

发布于:2023-01-20 ⋅ 阅读:(14) ⋅ 点赞:(0) ⋅ 评论:(0)

一、如何理解让计算机识别图的这个过程?

     机器识图的过程:机器识别图像并不是一下子将一个复杂的图片完整识别出来,而是将一个完整的图片分割成许多个小部分,把每个小部分里具有的特征提取出来(也就是识别每个小部分),再将这些小部分具有的特征汇总到一起,就可以完成机器识别图像的过程了。

    机器通过识别图片中每个格子(像素点)上的颜色,将每个格子里的颜色都用数字类型存储,得到一张很大的数字矩阵,图片信息也就存储在这张数字矩阵中,这里我们也可以当作是把我们想要识别的图片转化程计算机能够识别出来的矩阵,将像素细化到一个个矩阵里面进行识别。

二、卷积神经网络原理介绍

用CNN卷积神经网络识别图片,一般需要的步骤有:

        1.卷积层初步提取特征

        2.池化层提取主要特征

        3.全连接层将各部分特征汇总

        4.产生分类器,进行预测识别

1.卷积层的工作原理

    我们是使用卷积核来提取特征的,卷积核可以说是一个矩阵。假如我们设置一个卷积核为3*3的矩阵,而我们图片为一个分辨率5*5的图片。那么卷积核的任务就如下所示:

                 来自:Convolutional Neural Networks - Basics · Machine Learning Notebook

    卷积层的作用:就是提取图片每个小部分里具有的特征

    机器一开始并不知道要识别的部分具有哪些特征,是通过与不同的卷积核相作用得到的输出值,相互比较来判断哪一个卷积核最能表现该图片的特征——比如我们要识别图像中的某种特征(比如曲线),也就是说,这个卷积核要对这种曲线有很高的输出值,对其他形状(比如三角形)则输出较低。卷积层输出值越高,就说明匹配程度越高,越能表现该图片的特征。

    我们可以简单的认为卷积层的作用其实就是通过不断的改变卷积核,来确定能初步表征图片特征的有用的卷积核是哪些,再得到与相应的卷积核相乘后的输出矩阵。

2.池化层的工作原理

   池化层的输入就是卷积层输出的原数据与相应的卷积核相乘后的输出矩阵,一般我们有最大池化和平均池化,而最大池化就我认识来说是相对多的。需要注意的是,池化层一般放在卷积层后面。所以池化层池化的是卷积层的输出。

池化层的目的:

  • 为了减少训练参数的数量,降低卷积层输出的特征向量的维度
  • 减小过拟合现象,只保留最有用的图片信息,减少噪声的传递

    来自:卷积神经网络概念与原理_yunpiao123456的博客-CSDN博客_卷积神经网络原理

 3.全连接的工作原理

      卷积层和池化层的工作就是提取特征,并减少原始图像带来的参数。然而,为了生成最终的输出,我们需要应用全连接层来生成一个等于我们需要的类的数量的分类器。

     全连接层的工作原理和之前的神经网络学习很类似,我们需要把池化层输出的张量重新切割成一些向量,乘上权重矩阵,加上偏置值,然后对其使用ReLU激活函数,用梯度下降法优化参数既可。

  • 全连接层算法包括两部分:前向传播(Forward)和反向传播(Backward)

 来自:深度学习——全连接层(Fully connected dence layers)原理解析_jmucvm的博客-CSDN博客_全连接层原理

全连接的目的:

全连接层进行高度提纯的特征,方便交给最后的分类器或者回归。但是由于全连接的参数过多,所以现在的趋势是尽量避免全连接,目前主流的一个方法是全局平均值。也就是最后那一层的feature map(最后一层卷积的输出结果),直接求平均值。有多少种分类就训练多少层,这十个数字就是对应的概率或者叫置信度