分享

深度学习基础

 新用户73286115 2022-05-15
近些年人工智能技术发展迅猛,深度学习技术也随着计算能力的快速得到发展。同时,目标检测是机器视觉以及人工智能领域的一个基本问题,其主要目标是精确定位出图像中各种目标的类别和位置边框信息。目标检测方法在安全监控、智慧交通以及图像检索等各领域都有广泛的运用。对于目标检测的研究,不仅本身有巨大的应用需求,还为相关领域的其他机器视觉任务提供了理论基础和研究思路,比如:目标追踪,人脸检测,行人检测等技术。下面对深度学习中神经网络的概念进行了介绍,具体包括全连接神经网络和卷积神经网
络,并对前向和反向传播算法进行了公式推导。

1  全连接神经网络

      监督学习问题就是使用带标签的训练样本,以参数 w 和 b 来拟合出数据。最简单的神经网络:输入数据 x 经过神经网络处理输出 h(x)。若神经元有三个输入值(𝑥)1,(𝑥)2,(𝑥)3以及一个输入的截距项+1(一般写作 b),  其输出为:ℎ𝑊,𝑏(𝑥) = 𝑓(𝑊T𝑥) = 𝑓(𝛴=𝑊(i)𝑥(i)+ 𝑏)(i=1,2,3)。在神经网络中,可以通过激活函数 Sigmoid,Relu,Tanh 函数等来获取非线性。

图片

      神经网络就是通过将众多简单的神经元连接在一起得到的,一个神经元的输出可作为另一神经元的输入。多层神经网络模型常常如图 1 所示。对于神经网络模型,其最终的目标都是要得到最后优化后的参数模型用于分类、检测以及分割等问题。所以神经网络模型最重要的一部分就是对自身模型的不断优化,而实现这一目标最重要的就是前向与反向传播算法。 

(1)  前向传播算法 

图片

     上述公式即为前向传播步骤。其中𝑎(1)= 𝑥为输入层的激活值,第𝑙 + 1层的激活值𝑎(𝑙+1)的计算方式如公式如下所示: 

图片

(2)  反向传播算法

       反向传播算法优化的目标是最小化把 W 和 b 作为参数的函数 J(W,b)。为训练神经网络将会初始化每一个𝑊i𝑗(𝑙)参数,以及每一个𝑏i(𝑙)参数,它们被初始化为随机值,这些随机值接近 0 且尽可能小,这样做的主要目的就是使对称变得失效。 
      为了对(𝑥, 𝑦)进行前向传播运算,需要先算出神经网络中所有节点的激活值,然后计算出第𝑙层的每一个节点 i 的“残差”𝛿(𝑙),这个残差值代表这个节点对于整个输出值的残差有多大的影响力,而最后的输出节点,可以直接得到神经网络得到的激活值与实际之间比较有多大的差距,可以将这个差距定义为𝛿(𝑛),同时,第𝑛层对应输出层,对于中间层𝑙,残差𝛿(𝑙)可以通过第𝑙 + 1层残差的加权平均值来计算,这些节点𝑎(𝑙)以作为输入。具体步骤为: 
(a)进行前向传播算法计算,得到𝐿2, 𝐿3, … 𝐿𝑛𝑙的激活值。 
(b)第𝑛层的每个输出结点 i 的残差,可以按照如下公式来计算: 

图片

(c)𝑙 = 𝑛− 1, 𝑛𝑙− 2, 𝑛𝑙− 3, … ,2时,可以通过如下公式来计算每层第 i 个节点的残差: 

图片

将上述公式中𝑛− 1与𝑛𝑙的关系改为为𝑙与𝑙 + 1的关系,可以推导得到: 

图片

(d)计算最终需要的偏导数,如公式如下所示:

图片

可以用矩阵-向量表示法表达以上公式: 

图片

图片

2  卷积神经网络

      卷积神经网络是一个特征提取网络,它通常有多个卷积层以及有池化层,在最后通常还会接有全连接层。在卷积神经网络中,所有的权重都是共享的并且池化操作具有平移不变特征。同时,卷积神经网络相对于多层神经网络而言参数量更少,训练起来非常容易,卷积神经网络的常见架构如下图所示。 

图片

       如图2,卷积神经网络架构通常包括有输入层、多级卷积层、激活层以及输出部分。但在通常的情况下,我们可以根据不同的任务需求、不同的硬件条件等来设计出不同的卷积神经网络架构。在卷积神经网络结构中通常加入全连接层的目的在于对给定对象进行分类预测,在实际中,我们可以使用1×1的卷积来代替全连接层来达到减少参数量的目的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多