当前位置: 代码迷 >> 综合 >> 吴恩达深度学习 —— 2.13 逻辑回归的向量化
  详细解决方案

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

热度:19   发布时间:2023-09-05 17:45:40.0

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

为了执行正向传播步骤,需要对m个训练样本都计算出预测结果,但是有一个办法,不需要任何一个显式的for循环。我们曾定义过一个矩阵X作为训练输入,类似于将不同的列堆叠在一起。
吴恩达深度学习 —— 2.13 逻辑回归的向量化

现在首先要做的是,如何计算 z ( 1 ) z^{(1)} 等,这些计算全在一个步骤中。首先构建一个 1 ? m 1*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] 公式中的 [ b , b , . . . , b ] [b,b,...,b] 是一个 1 ? m 1*m 的矩阵,或者说是一个m维的行向量。

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

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

  相关解决方案