DNN理解(二)

13 篇文章 1 订阅
7 篇文章 1 订阅

书接上文,上面介绍的是DNN的基本结构和一些要用到的公式。

在这里我将要说一下DNN的前向传播,上图先:

我来解释一下这个图。layer1是输入层,layer2是隐藏层,layer3是输出层。当然层数不是固定的,每层的神经元个数也不是固定的。一般来说第一层是输入参数的,最后一层是输出层,中间的都叫做隐藏层。

在输入层,每一个参数对应一个神经元(可以这么理解),每一个参数都要传给下一层(隐藏层),虽然输入层和隐藏层看似一样,但是输入层是不需要经过计算的,我们对于输入参数的调整一般在传入之前。

在隐藏层,做的事情就多了起来,首先隐藏层前一层的神经元个数是确定的,比如图中隐藏层layer2的前一层输入层layer1有3个神经元,那么layer2的每个神经元都有三个对应layer1三个输入的权重和一个偏置(一个神经元只有一个偏置)。

做下列运算:

我们将我们的例子对应该公式,l为层数,这里是第二层,所以l为2。k是前一层的神经元个数,k为3。a为上一层的输出,a中的符号和w是一样的,且a为l-1是因为计算当层输出时需要上一层的输出,b为偏置,每一个神经元都有自己的偏置。σ是激活函数,公式如下:

经过激活函数的计算之后,输出值会变得平滑规范,如下:

这就是一个很好的性质了,我们知道每一个神经元的输出会传向后一层所有的神经元。比如说我们不用激活函数会犯生什么?可能会出现以下情况,某一层有4个神经元,输出分别是9999999、0.1、0.1、0.3,这样一来第一个神经元的输出相比较于其他神经元的输出太大,对于权重的调整比较不友好,甚至会出现掩盖其他神经元输出值的情况发生。为了避免这类的问题发生,我们使用了该激活函数(sigmod),使得每个神经元的输出在0-1之间。

输出层,输出层和隐藏层差不多,只不过输出层不用向下一层传层值,且有时在分类问题中,输出层可能会使用softmax激活函数代替sigmod激活函数作为输出。

待续...

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值