才子佳人博客

我的故事我讲述

卷积神经网络的训练过程(前向传播、反向传播过程)
###SmallArticleTitle###
来源:www.cnblogs.com;  编辑:xjh;  2020-01-03

卷积神经网络的训练过程分为两个阶段。第一个阶段是数据由低层次向高层次传播的阶段,即前向传播阶段。另外一个阶段是,当前向传播得出的结果与预期不相符时,将误差从高层次向底层次进行传播训练的阶段,即反向传播阶段。训练过程为:

1、网络进行权值的初始化;

2、输入数据经过卷积层、下采样层(池化)、全连接层,向前传播得到输出值;

3、求出网络的输出值与目标值之间的误差;

4、当误差大于我们的期望值时,将误差传回网络中,依次求得全连接层,下采样层,卷积层的误差。各层的误差可以理解为对于网络的总误差,网络应承担多少;当误差等于或小于我们的期望值时,结束训练。

5、根据求得误差进行权值更新。然后再进入到第二步。

一、前向传播过程

在前向传播过程中,输入的图形数据经过多层卷积层的卷积和池化处理,提取出特征向量,将特征向量传入全连接层中,得出分类识别的结果。当输出的结果与我们的期望值相符时,输出结果。

卷积层的向前传播过程是,通过卷积核对输入数据进行卷积操作得到特征图。

上一层(卷积层)提取的特征作为输入传到下采样(池化)层,通过下采样层的池化操作,降低数据的维度,可以避免过拟合。

特征图经过卷积层和下采样层的特征提取之后,将提取出来的特征传到全连接层中,通过全连接层,进行分类,获得分类模型,得到最后的分类结果。

二、反向传播过程

当卷积神经网络输出的结果与我们的期望值不相符时,则进行反向传播过程。求出结果与期望值的误差,再将误差一层一层的返回,计算出每一层的误差,然后进行权值更新。该过程的主要目的是通过训练样本和期望值来调整网络权值。误差的传递过程可以这样来理解,首先,数据从输入层到输出层,期间经过了卷积层,下采样层,全连接层,而数据在各层之间传递的过程中难免会造成数据的损失,则也就导致了误差的产生。而每一层造成的误差值是不一样的,所以当我们求出网络的总误差之后,需要将误差传入网络中,求得各层对于总的误差应该承担多少比重。

1、反向传播的训练过程的第一步为计算出网络总的误差。

2、全连接层之间的误差传递

求出网络的总误差之后,进行反向传播过程,将误差传入输出层的上一层全连接层,求出在该层中,产生了多少误差。而网络的误差又是由组成该网络的神经元所造成的,所以我们要求出每个神经元在网络中的误差。求上一层的误差,需要找出上一层中哪些节点与该输出层连接,然后用误差乘以节点的权值,求得每个节点的误差。

3、当前层为下采样层,求上一层的误差

在下采样层中,根据采用的池化方法,把误差传入到上一层。下采样层如果采用的是最大池化(max-pooling)的方法,则直接把误差传到上一层连接的节点中。如果采用的是均值池化(mean pooling)的方法,误差则是均匀的分布到上一层的网络中。另外在下采样层中,是不需要进行权值更新的,只需要正确的传递所有的误差到上一层。

4、当前层为卷积层,求上一层的误差

卷积层中采用的是局部连接的方式,和全连接层的误差传递方式不同,在卷积层中,误差的传递也是依靠卷积核进行传递的。在误差传递的过程,我们需要通过卷积核找到卷积层和上一层的连接节点。求卷积层的上一层的误差的过程为:先对卷积层误差矩阵进行全零填充,然后将卷积核进行一百八十度旋转,再用旋转后的卷积核卷积填充过的误差矩阵,并得到了上一层的误差。(此处求误差的过程有待考究,需查文献???)


三、卷积层的权值更新

卷积层的误差更新过程为:将误差矩阵当做卷积核,卷积输入的特征图,并得到了权值的偏差矩阵,然后与原先的卷积核的权值相加,并得到了更新后的卷积核。从下图中可以看出,该卷积方式的权值连接正好和向前传播中权值的连接是一致的。


四、全连接层中的权值更新过程为(此处权值更新过程有待考究,需查文献???):

1、求出权值的偏导数值:学习速率乘以激励函数的倒数乘以输入值;

2、原先的权值加上偏导值,得到新的权值矩阵。



来源:
https://www.cnblogs.com/hesi/p/9013328.html


分类:网络日志 | 评论数:0 | 浏览数:86
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: