C1 - week3 - part3 计算神经网络的输出 Computing a Neural Network‘s output

本节我们来介绍一下神经网络的输出究竟是如何计算出来的。

首先,回顾一下只有一个隐藏层的简单两层神经网络结构。

其中, x x x表示输入特征, a a a表示每个神经元的输出, W W W表示特征的权重,上标表示神经网络的层数,下标表示该层的第几个神经元。

一、神经网络的计算

从我们之前提及的逻辑回归开始,如下图所示。用圆圈表示神经网络的计算单元,逻辑回归的计算有两个步骤,首先你按步骤计算出 z z z,然后在第二步中你以sigmoid函数为激活函数计算出 z z z(得出 a a a),一个神经网络只是这样子做了好多次重复计算。

回到两层的神经网络,我们从隐藏层的第一个神经元开始计算。从上图可以看出,输入与逻辑回归相似,这个神经元的计算与逻辑回归一样分为两步,一个小圆圈代表了计算的两个步骤。

第一步,计算 z 1 [ 1 ] z^{[1]}_{1} z1[1] z 1 [ 1 ] = w 1 [ 1 ] T + b 1 [ 1 ] z^{[1]}_{1} = w^{[1]T}_{1} + b^{[1]}_1 z1[1]=w1[1]T+b1[1]

第二步,通过激活函数计算 a 1 [ 1 ] a^{[1]}_{1} a1[1] a 1 [ 1 ] = σ ( z 1 [ 1 ] ) a^{[1]}_{1} = \sigma(z^{[1]}_{1}) a1[1]=σ(z1[1])

隐藏层的第二个以及后面两个神经元的计算过程一样,只是符号表示不同,最终分别得到 a 2 [ 1 ] 、 a 3 [ 1 ] 、 a 4 [ 1 ] a^{[1]}_{2}、a^{[1]}_{3}、a^{[1]}_{4} a2[1]a3[1]a4[1],详细结果如下:
z 1 [ 1 ] = w 1 [ 1 ] T + b 1 [ 1 ] , a 1 [ 1 ] = σ ( z 1 [ 1 ] ) z 2 [ 1 ] = w 2 [ 1 ] T + b 2 [ 1 ] , a 2 [ 1 ] = σ ( z 2 [ 1 ] ) z 3 [ 1 ] = w 3 [ 1 ] T + b 3 [ 1 ] , a 3 [ 1 ] = σ ( z 3 [ 1 ] ) z 4 [ 1 ] = w 4 [ 1 ] T + b 4 [ 1 ] , a 4 [ 1 ] = σ ( z 4 [ 1 ] ) z^{[1]}_{1} = w^{[1]T}_{1} + b^{[1]}_1,a^{[1]}_{1} = \sigma(z^{[1]}_{1}) \\ z^{[1]}_{2} = w^{[1]T}_{2} + b^{[1]}_2,a^{[1]}_{2} = \sigma(z^{[1]}_{2}) \\ z^{[1]}_{3} = w^{[1]T}_{3} + b^{[1]}_3,a^{[1]}_{3} = \sigma(z^{[1]}_{3}) \\ z^{[1]}_{4} = w^{[1]T}_{4} + b^{[1]}_4,a^{[1]}_{4} = \sigma(z^{[1]}_{4}) z1[1]=w1[1]T+b1[1],a1[1]=σ(z1[1])z2[1]=w2[1]T+b2[1],a2[1]=σ(z2[1])z3[1]=w3[1]T+b3[1],a3[1]=σ(z3[1])z4[1]=w4[1]T+b4[1],a4[1]=σ(z4[1])

二、向量化计算

如果你执行神经网络的程序,用for循环来做这些会十分低效,所以接下来我们要做的是把这四个等式向量化。项量化的过程是将神经网络中的一层神经元参数纵向堆积起来,例如隐藏层中的 w w w纵向堆叠起来变成一个 ( 4 , 3 ) (4,3) (4,3)的矩阵,用符号 W [ 1 ] W^{[1]} W[1]表示。另一个角度来看就是我们有四个逻辑单元,且每一个逻辑回归单元都有相对应的参数——向量 w w w,把这四个向量堆积在一起,你会得出这 4 × 3 4 \times 3 4×3的矩阵。如下所示

对于神经网络的第一层,给予一个输入 x x x,得到 a [ 1 ] a^{[1]} a[1] x x x可以表示为 a [ 0 ] a^{[0]} a[0]。通过相似的衍生你会发现,后一层的表示同样可以写成类似的形式,得到 a [ 2 ] a^{[2]} a[2] y ^ = a [ 2 ] \hat{y} = a^{[2]} y^=a[2]。具体如下

上图左半所示为神经网络,把网络左边部分先忽略,那么最后的输出单元就相当于一个单独的逻辑回归计算单元。当你有一个包含一层隐藏层的神经网络,你需要去实现右边的四个等式(省略了 a [ 3 ] 、 a [ 4 ] a^{[3]}、a^{[4]} a[3]a[4]),并且可以看成一个向量化的计算过程,计算出隐藏层的四个逻辑回归单元和整个隐藏层的输出结果。


下一节我们将介绍如何一次能够计算出不止一个样本的神经网络输出,而是一次性计算整个训练集的输出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值