卷积神经网络基础

    科技2022-07-14  134

    深度学习简介

    2006年,Hinton提出了深度学习,基本思想是通过构建多层网络,对目标进行多层表示,以期通过多层的高层次特征来表示数据的抽象语义信息,获得更好的特征鲁棒性。 深层模型优于浅层模型,这是因为浅层学习模型通常要由人工的方法来获得好的样本特性,在此基础上进行识别和预测,因此方法的有效性在很大程度上受到特征提取的制约。

    一、什么是卷积神经网络

    卷积神经网络(convolutional neural network)——CNN卷积神经网络是一种带有卷积结构的深度神经网络,是一种多层的监督学习神经网络,隐含层的卷积层和池采样层是实现卷积神经网络特征提取功能的核心模块。该网络模型通过采用梯度下降法最小化损失函数对网络中的权重参数逐层反向调节,通过频繁的迭代训练提高网络的精度。卷积神经网络的低隐层是由卷积层和最大池采样层交替组成,高层是全连接层对应传统多层感知器的隐含层和逻辑回归分类器。第一个全连接层的输入是由卷积层和子采样层进行特征提取得到的特征图像。最后一层输出层是一个分类器,可以采用逻辑回归,Softmax回归甚至是支持向量机对输入图像进行分类。

    卷积神经网络结构中通常包括:卷积层,降采样层,全链接层。每一层有多个特征图,每个特征图通过一种卷积滤波器提取输入的一种特征,每个特征图有多个神经元。

    大致如下图: 卷积层:因为通过卷积运算我们可以提取出图像的特征,通过卷积运算可以使得原始信号的某些特征增强,并且降低噪声。

    下采样层:因为对图像进行下采样,可以减少数据处理量同时保留有用信息,采样可以混淆特征的具体位置,因为某个特征找出来之后,它的位置已经不重要了,我们只需要这个特征和其他特征的相对位置,可以应对形变和扭曲带来的同类物体的变化。

    全连接层:采用softmax全连接,得到的激活值即卷积神经网络提取到的图片特征。

    CNN在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力。

    二、CNN训练过程

    1)参数初始化:

    在开始训练前,所有的权都应该用一些不同的随机数进行初始化。“小随机数”用来保证网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正常地学习。实际上,如果用相同的数去初始化权矩阵,则网络无学习能力。

    2)训练过程包括四步

    ** 第一阶段:前向传播阶段**

    ①从样本集中取一个样本,输入网络

    ②计算相应的实际输出;在此阶段信息从输入层经过逐级的变换,传送到输出层,这个过程也是网络在完成训练之后正常执行时执行的过程

    ** 第二阶段:后向传播阶段**

    ③计算实际输出与相应的理想输出的差

    ④按照极小化误差的方法调整权值矩阵

    网络的训练过程如下:

    1、选定训练组,从样本集中分别随机地寻求N个样本作为训练组;

    2、将各权值、阈值,置成小的接近于0的随机值,并初始化精度控制参数和学习率;

    3、从训练组中取一个输入模式加到网络,并给出它的目标输出向量;

    4、计算出中间层输出向量,计算出网络的实际输出向量;

    5、将输出向量中的元素与目标向量中的元素进行比较,计算出输出误差;对于中间层的隐单元也需要计算出误差;

    6、依次计算出各权值的调整量和阈值的调整量;

    7、调整权值和调整阈值;

    8、当经历M后,判断指标是否满足精度要求,如果不满足,则返回3,继续迭代;如果满足就进入下一步;

    9、训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类器已经形成。再一次进行训练,直接从文件导出权值和阈值进行训练,不需要进行初始化。

    Processed: 0.014, SQL: 8