深度学习第二周

二元分类

把图片的三个(RGB)64*64矩阵展开成为x列向量,维度n=nx=64*64*3

符号:m是训练数据个数

X是将x^{1}......x^{m}排列成(nx,m)大小的矩阵

Y是将y^{1}......y^{m}排列成(1,m)大小的行向量,因为二分类,y只能取0或1

逻辑回归:注意y^hat在0到1之间,所以使用sigmond函数。注意w大小是nx维向量,b是常数。

给出逻辑回归的损失函数:计算单个训练实例的误差-(ylog(y^hat)+(1-y)log(1-y^hat))

成本函数:损失函数求和平均,成本函数是整个训练集损失函数的平均值。

梯度下降:derivatives导数

计算图:蓝色箭头计算各个值,红色箭头计算导数

计算dJ/da利用链式法则,用da代表dJ(即最终输出变量)/da,例:dv代表dJ/dv

对损失函数利用计算图向前求导,为了计算出dw1,dw2.db用以给出新的w1,w2,b值

在m个训练数据上进行求导,注意dz有上标而dw1,dw2没有上标,因为是累加起来的。应该有两层循环,外层是m个数据,内层是n个wi特征。

矢量化:使用numpy函数避免显示的for循环

可以使用w而不是wi来去掉上上图中的内层循环,但是对m个样例的循环还在。

Z:矩阵,用一行numpy代码计算出Z,包含m个zi,不需要遍历m个样例,一行代码矢量化即可以实现。

计算A:是m个ai的矩阵,加一个σ函数激活。

上图是逻辑回归的正向传播。

蓝色是未改进部分,紫色是用矢量化改进部分,红色框起来的两个是一行代码实现for循环m个样例。

左边使用两层循环,右边没有使用显式的for循环,使用矢量化完成逻辑回归的一次梯度下降。如果需要进行很多次迭代,还是需要使用for循环。

python中矩阵的广播:axis=0代表按列求和,如何让3*4的矩阵除以1*4的矩阵

使用reshape确定不确定的矩阵的大小

广播的例子:自动扩充

广播的通用规则:小规模的矩阵扩充为大规模的矩阵以进行计算。

不要使用上边的用法,使用下面的写法,利用断言assert和reshape来确定矩阵的大小符合预期。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值