吴恩达 向量化(Vectorization)

向量化(Vectorization)

在深度学习的算法中,我们通常拥有大量的数据,在程序的编写过程中,应该尽最大可能的少使用 loop 循环语句,利用 python 可以实现矩阵运算,进而来提高程序的运行速度,避免 for 循环的使用。

逻辑回归向量化

输入矩阵XX:(nx,m)(nx,m)
权重矩阵ww:(nx,1)(nx,1)
偏置bb:为一个常数
输出矩阵YY:(1,m)(1,m)
所有 m 个样本的线性输出 Z 可以用矩阵表示:

Z=wTX+bZ=wTX+b
Z = np.dot(w.T,X) + b
A = sigmoid(Z)

重点总结:
所有 m 个样本的线性输出 ZZ 可以用矩阵表示:

Z=wTX+bZ=wTX+b
Z = np.dot(w.T,X) + b
A = sigmoid(Z)
1
2
逻辑回归梯度下降输出向量化

dZdZ对于mm个样本,维度为(1,m)(1,m),表示为:

dZ=A−YdZ=A−Y
db可以表示为:

db=1m∑mi=1dz(i)db=1m∑i=1mdz(i)
db = 1/mnp.sum(dZ)
1
dw可表示为:
dw=1mX⋅dZTdw=1mX⋅dZT
dw = 1/m
np.dot(X,dZ.T)

单次迭代梯度下降算法流程:

Z = np.dot(w.T,X) + b
A = sigmoid(Z)
dZ = A-Y
dw = 1/mnp.dot(X,dZ.T)
db = 1/m
np.sum(dZ)

w = w - alphadw
b = b - alpha
db

在对应图中的神经网络结构,我们只用 Python 代码去实现右边的四个公式即可实现神经网络的输出计算。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

重点总结:
神经网络的梯度下降法

以本节中的浅层神经网络为例,我们给出神经网络的梯度下降法的公式。

参数:W[1],b[1],W[2],b[2]W[1],b[1],W[2],b[2];
输入层特征向量个数:nx=n[0]nx=n[0];
隐藏层神经元个数:n[1]n[1];
输出层神经元个数:n[2]=1n[2]=1;
W[1]W[1] 的维度为(n[1],n[0])(n[1],n[0]),b[1]b[1]的维度为 (n[1],1)(n[1],1);
W[2]W[2]的维度为(n[2],n[1])(n[2],n[1]),b[2]b[2]的维度为 (n[2],1)(n[2],1);
下面为该例子的神经网络反向梯度下降公式(左)和其代码向量化(右):
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值