吴恩达深度学习 —— 2.13 逻辑回归的向量化

我们先回顾逻辑回归的正向传播过程,如果有m个训练样本,对第一个样本进行预测,需要计算出z,并计算激活函数,计算第一个样本的 y ^ \hat{y} y^,如下所示: z ( 1 ) = w T ∗ x ( 1 ) + b z^{(1)}=w^T*x^{(1)}+b z(1)=wTx(1)+b a ( 1 ) = σ ( z ( 1 ) ) a^{(1)}=\sigma(z^{(1)}) a(1)=σ(z(1))然后继续对第二个训练样本做一个预测,计算如下: z ( 2 ) = w T ∗ x ( 2 ) + b z^{(2)}=w^T*x^{(2)}+b z(2)=wTx(2)+b a ( 2 ) = σ ( z ( 2 ) ) a^{(2)}=\sigma(z^{(2)}) a(2)=σ(z(2))以此类推,你可能需要这样做上m次。

为了执行正向传播步骤,需要对m个训练样本都计算出预测结果,但是有一个办法,不需要任何一个显式的for循环。我们曾定义过一个矩阵X作为训练输入,类似于将不同的列堆叠在一起。
在这里插入图片描述

现在首先要做的是,如何计算 z ( 1 ) z^{(1)} z(1)等,这些计算全在一个步骤中。首先构建一个 1 ∗ m 1*m 1m的矩阵,实际上就是一个行向量,表示为 [ z ( 1 ) , z ( 2 ) , . . . , z ( m ) ] [z^{(1)},z^{(2)},...,z^{(m)}] [z(1),z(2),...,z(m)]都是在同一时间内,它可以表达成 [ z ( 1 ) , z ( 2 ) , . . . , z ( m ) ] = w T ∗ X ∗ [ b , b , . . . , b ] [z^{(1)},z^{(2)},...,z^{(m)}]=w^T*X*[b,b,...,b] [z(1),z(2),...,z(m)]=wTX[b,b,...,b]公式中的 [ b , b , . . . , b ] [b,b,...,b] [b,b,...,b]是一个 1 ∗ m 1*m 1m的矩阵,或者说是一个m维的行向量。

矩阵X是把所有训练样本堆叠起来得到的,上面的向量化计算方法可以在python中写为 Z = n p . d o t ( w T , X ) + b Z=np.dot(w^T,X)+b Z=np.dot(wT,X)+b公式中有个python比较巧妙的地方,公式中的b是一个实数,或者说是一个 1 ∗ 1 1*1 11的矩阵,就是一个普通的实数。但是当把向量加上这个实数时,python会自动的把实数b扩展成一个 1 ∗ m 1*m 1m的行向量,在python中这叫做广播。Z是一个 1 ∗ m 1*m 1m的矩阵,包含所有小写z。

通过上面计算得到Z,对于变量a,我们需要堆叠a形成一个新的变量,即 [ a ( 1 ) , a ( 1 ) , . . . , a ( m ) ] [a^{(1)},a^{(1)},...,a^{(m)}] [a(1),a(1),...,a(m)],我们把它定义为大写A。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值