深度神经网络结构

单层的感知机不能解决“异或”问题。

  • 在前面分别介绍了M-P神经元模型和感知机模型。在M-P神经元模型中,神经元接收到若干个输入信号,并将计算得到的加权后的总输入,经过激活函数的处理,最终产生神经元的输出。而感知机模型则由两层神经元组成,输入层接收外界输入信号后,经过激活函数处理,传递给输出层,输出层再经过激活函数处理形成最终的输出。
  • 还讲到,单层的感知机不能解决“异或”问题,也正是因此被人工智能泰斗明斯基并无恶意地把人工智能打入“冷宫”二十载。其实解决“异或”问题的关键在于能否解决非线性可分问题,而要解决非线性问题就需要提高网络的表征能力,也就是需要使用更加复杂的网络。

按照这个思路,我们可以考虑在输入层和输出层之间添加一层神经元,将其称之为隐藏层(Hidden Layer,又称“隐含层”或“隐层”)。

  • 多层感知机模型 — 在输入层和输出层之间添加一层神经元,将其称之为隐藏层(Hidden Layer)这样一来输入与隐藏单元,隐藏单元与输出单元之间,都有了权重相连,也就是说这个模型是全连接的,并且隐藏层和输出层中的神经元都拥有激活函数。
  • 这样一来输入与隐藏单元,隐藏单元与输出单元之间,都有了权重相连,也就是说这个模型是全连接的,并且隐藏层和输出层中的神经元都拥有激活函数。这种多层感知机模型,就能够解决单个神经元无法解决的异或问题了,如当权重[𝑤_1,𝑤_2,𝑤_3,𝑤_4,𝑤_5,𝑤_6] =[1,-1,-1,1,1,1],各个神经元阈值𝜃均为0.5时,可以实现“异或”功能。

神经网络模型

  • 虽然多层感知机模型较M-P神经元而言已经有了很大进步,但这一类模型仍然无法很好地解决比较复杂的非线性问题。因此,在多层感知机模型的基础上,还研究出了如图所示的神经网络模型。
  • 神经网络模型具有如下特点:
  1. 由输入层、隐藏层和输出层组成,根据问题的需要,结构中可能含有更多隐藏层;
  2. 每层神经元与下一层神经元两两之间建立连接;
  3. 神经元之间不存在同层连接,也不存在跨层连接;
  4. 输入层仅仅起到接收输入的作用,不进行函数处理;
  5. 而隐藏层与输出层的神经元都具有激活函数,是功能神经元。上图所示为具备单个隐藏层的神经网络。

深度神经网络(Deep Neural Network,DNN)— 将若干个单层神经网络级联在一起,前一层的输出作为后一层的输入。

  • 此外,针对以上的第1条中,对于神经网络模型,当隐藏层如下图中所示大于等于两层时,就称之为深度神经网络(Deep Neural Network,DNN)。
  • 在这种结构中,将若干个单层神经网络级联在一起,前一层的输出作为后一层的输入,这样构成了多层前馈神经网络(Multi-layer Feedforward Neural Networks)更确切地说,每一层神经元仅与下一层的神经元全连接,并且输入层—隐藏层、隐藏层—隐藏层、隐藏层—输出层之间,都有权重相连。但在同一层之内,神经元彼此不连接,而且跨层之间的神经元,彼此也不相连。
  • 之所以加上“前馈”这个定语,是想特别强调,这样的网络是没有反馈的。也就是说,位置靠后的层次不会把输出反向连接到之前的层次上作为输入,输入信号可以“一马平川”地单向向前传播。很明显,相比于纵横交错的人类大脑神经元的连接结构,这种结构做了极大简化,即使如此,它也具有很强的表达力。
  • 在上图的DNN模型中,输入从最左侧的输入单元进入DNN模型,从左至右依次经过两个隐藏层,最后到达输出层形成输出。每一次层间的传递,都是加权求和的过程。在到达下一层后,会经过激活函数的作用,成为这一层的输出。站在数学的角度看,其实权重作用,就是对上一层的输出进行线性变换,作为下一层的输入。激活函数的作用则是对输入进行了非线性的映射。在深度网络的结构下,权重和激活函数结合,使得模型具备了解决复杂的线性不可分问题的能力。

4.2 深度神经网络的训练过程

4.2.1 基本概念

深度神经网络模型解决回归问题。

  • 从左至右用𝑤,𝑤^′,𝑤^′′来标记这三个矩阵(偏置𝜃假设全为零)。矩阵的维度是由相邻两层神经元的个数决定的。对于全连接网络,权重矩阵的维度应该为𝑛(𝑡+1)∗𝑛(𝑡),即后一层的神经元数量乘本层的神经元数量。输入的维度是21, 维度是32,𝑤^′维度是33,𝑤^′′维度是23。为了方便讲解,在本案例中三个权重矩阵初始值如图中公式
  • 隐藏层单元和输出层单元都具有激活函数,在这里使用sigmoid(𝑓(𝑥)=1/(1+𝑒^(−𝑥) ))函数。虽然实际应用中都是用大量的数据进行训练的,在这里先用一条数据来进行讲解,输入值为0.2、0.5,真值为0.3、0.8。由于最终的真值是数值,因此这是一个回归问题。

前向传播 — 从输入层出发,逐层推进,将上一层的输出与权重结合后,作为下一层的输入,并计算下一层的输出,如此进行,直到运算到输出层为止。

  • 此案例中,输入经过权重𝑤和激活函数𝑓后,得到第一个隐藏层的输出,是一个3*1的向量,分别是(𝑓为sigmoid函数):

𝑓(0.2×(−0.43)+0.5×(−0.37))=0.43

𝑓(0.2×0.04+0.5×0.40)=0.55

𝑓(0.2×0.04+0.5×0.40)=0.55

  • 这个向量,经过 后作为输入,带入sigmoid函数,得到了第二个隐藏层的输出。这个输出依然是3*1的向量:

𝑓(0."43"×(−0."51")+0."55"×(−0.35)+"0.48"×"0.26"))=0.43

𝑓(0."43"×(−0."34")+0."55"×(−0."44")+"0.48"×"0.28")=0.44

𝑓(0."43"×"0.55"+0."55"×(−0.31)+"0.48"×"0.06")=0."53"

  • 最后,这个向量经过 作为输入,经过sigmoid,得到最终输出,计算后是:

𝑓(0."43"×"0.36"+0."44"×(−0.30)&#

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值