深度学习记录--logistic回归损失函数向量化实现

前言

再次明确向量化的目的:减少for循环的使用,以更少的代码量更快的速度来实现程序

正向传播的向量化

对于z^{i}=w^{T}x^{i}+b,i=1,2,...,m,用向量化来实现,只需要Z=np.dot(w.T,X)+b就可以完成,其中Z=\begin{bmatrix} z^{1}&z^{2}&...&z^{m} \end{bmatrix},w=\begin{bmatrix} w^{1} &w^{2} &... &w^{m} \end{bmatrix},X=\begin{bmatrix} | &| & | & |\\ x^{1}& x^{2} & ...&x{m} \\ |& | & | &| \end{bmatrix}

ps.这里b只是一个常数,但是依然可以加在每个向量里(python的广播(Broadcasting))

激活函数a^{i}=\sigma (z^{i}),i=1,2,...,m,同样用向量化实现,只需要A=\sigma (Z)就可以完成,其中A=\begin{bmatrix} a^{1} & a^{2} &... &a^{m} \end{bmatrix}

因此,正向传播的向量化,我们只用了两行代码就完成了

反向传播的向量化

与正向传播的向量化实现类似,也是用矩阵来计算

最后对w和b进行更新即可

当然,进行多次样本的训练还是要用for循环来实现,但是速度已经提升很多了

你可能感兴趣的:(深度学习记录,人工智能,深度学习,回归,python)