吴恩达深度学习—— 3.4 多个例子中的向量化

在这里插入图片描述如图是上一节中的4个方程,用于计算 z ( 1 ) , a ( 1 ) , z ( 2 ) , a ( 2 ) z^{(1)},a^{(1)},z^{(2)},a^{(2)} z(1),a(1),z(2),a(2),对于输入的特征向量x,对于这单个训练样本,可以用它生成一个 a ( 2 ) = y ^ a^{(2)}=\hat{y} a(2)=y^。现在,如果有m个训练样本,你可能需要重复这个过程,比如说,第一个训练样本 x ( 1 ) x^{(1)} x(1)计算得到 y ^ \hat{y} y^,这是对第一个训练样本的预测,然后用第二个样本 x ( 2 ) x^{(2)} x(2)来生成预测 y ^ \hat{y} y^,一直到 x [ m ] x^{[m]} x[m]生成预测 y ^ \hat{y} y^。所以要用激活函数来表示这些式子,可以表示为 a [ 2 ] ( 1 ) = y ^ 1 a^{[2](1)}=\hat{y}^{1} a[2](1)=y^1等。 a [ 2 ] ( i ) a^{[2] (i)} a[2](i)中圆括号内的i表示训练样本i,方括号指的是第二层,所以这表示如果你有一个没有向量化的实现并想要计算所有训练样本的预测。需要对 i = 1 i=1 i=1到m遍历,然后实现图中的4个方程。

我们一般喜欢将整个计算向量化,这样可以去掉这些公式,其for循环遍历所有的m个训练样本的代码如下图所示:

把每个训练样本 x ( i ) x^{(i)} x(i)堆叠到矩阵各列,构成大X矩阵。对于z也可以做同样的事情,将 z [ l ] ( i ) z^{[l](i)} z[l](i)作为列向量堆叠起来得到矩阵 Z [ l ] Z^{[l]} Z[l]。对于a,把 a [ l ] ( i ) a^{[l](i)} a[l](i)作为列向量堆叠起来得到矩阵 A [ l ] A^{[l]} A[l],于是for循环的实现变为向量化可以表示为: Z [ 1 ] = W [ 1 ] X + b [ 1 ] Z^{[1]}=W^{[1]}X+b^{[1]} Z[1]=W[1]X+b[1] A [ 1 ] = σ ( Z [ 1 ] ) A^{[1]}=\sigma (Z^{[1]}) A[1]=σ(Z[1]) Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] Z^{[2]}=W^{[2]}A^{[1]}+b^{[2]} Z[2]=W[2]A[1]+b[2] A [ 2 ] = σ ( Z ( 2 ) ) A^{[2]}=\sigma (Z^{(2)}) A[2]=σ(Z(2))

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值