吴恩达老师DeepLearning系列课程最详细学习笔记之19—向量化logistic回归

 教程是本人学习吴恩达老师DeepLearing系列课程中整理的最为详细的学习笔记。学习视频主要来自B站[双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili?,以及DeepLearning官方网站Deep Learning by deeplearning.ai | Coursera。该系列课程总共有180多个,我会将学习笔记陆续分享出来,为有兴趣深度学习的同仁提供便利。再次由衷感谢吴恩达老师的精彩讲解和无私奉献!

特别说明:图片来源于吴恩达老师视频截图。

 

 

 

 

 

附文本: 


  我们已经讨论过向量化是如何显著加速你的代码。在这个视频中,我们将会谈及向量化是如何实现在logistic回归的上面的,这样就能同时处理整个训练集来实现梯度下降法的一步迭代,针对整个训练集的一步迭代,不需要使用任何显示for循环。对于这一项技术,我特别兴奋,并且当我们后面谈及神经网络时,也可以完全不使用for循环。那我们开始吧。
  我们先来回顾logistic回归的正向传播步骤。如果你有m个训练样本,那么对第一个样本进行预测,你需要这样计算:计算出z,运用这个熟悉的公式  【  】,然后计算激活函数,计算第一个样本的,然后继续去对第二个训练样本做一次预测,然后去对第三个样本做一个预测,依次类推,如果你有m个样本,你可能需要这样做上m次。
  可以看出,为了执行正向传播步骤,需要对m个训练样本都计算出预测结果,但有一个办法可以不需要任何一个显示的for循环。让我们看看如何做到。
  
  首先记得我们曾经定义过一个矩阵大写X来作为你的训练输入。像这样子在不同的列中堆叠在一起,这就是一个矩阵。这是一个的矩阵。现在首先想要做的是,告诉如何计算, ,以及等等,全部都在一个步骤中。事实上仅用了一行代码。所以我们首先要构建一个的的矩阵,实际上就是一个行向量,然后当我们计算, 等等一直到都在同一时间内,结果发现它可以表达成w的转置乘以大写矩阵X加上这个向量b。向量b是一个的向量或者的矩阵,或者说是一个m维的行向量。w转置乘以由, , 组成的的矩阵。这个w转置是一个行向量,所以第一项就是w转置乘以 ,w转置乘以 ,等等 …,w转置乘以   ,然后再加上第二项b(为每个元素加上b),即:,最后得到一个1×m向量。是第一个元素,是第二个元素,等等,这 是第m个元素。如果你参考上面的定义,第一个元素恰恰是的定义,第二个元素恰恰是的定义等等,X是把所有训练样本堆叠起来得到的,一个挨着一个,横向堆叠。我将会把大写Z定义为这个,在这里, 你用小写z表示,横向排在一起。所以当你将对应于不同训练样本的小写x横向堆叠起来时,你就得到了这个变量,大写X  ,小写z变量也是同样的处理,把它们横向堆叠起来,你就得到了这个变量,大写Z 。结果发现,为了计算这个numpy的指令为大写Z=np.dot(w.T,X)+b。这里有个Python巧妙的地方,在这个地方b是一个实数,或者你可以说是一个1×1的矩阵,,就是一个普通的实数,但是当你把向量加上这个实数时,python会自动的把实数b扩展成一个1×m的行向量。所以这个操作看上去有一点神秘,在python中这叫做广播(broadcasting)。目前,你不用对此感到顾虑,我们会在下一节视频中,更多地谈及它。再说回来,只要用一行的代码,运用这行代码,你可以计算大写Z,而大写Z是一个1×m的矩阵,包含所有的小写z,小写,一直到小写。这就是Z,那么变量a是怎样的呢?接下来我们要做的是找到一个办法来计算, 等等一直到,都在同一时间内完成,就像把小x堆叠起来形成X一样,将小z横向堆叠成大,堆叠小写a就会形成一个新的变量,我们把它定义为大写。在编程作业中,你能看到如何对一个向量进行sigmoid函数操作,所以sigmoid函数把大写Z  当做一个变量进行输入,然后非常高效的输出大写A 。你仔细看看编程作业里的细节。总的来说,我们在这张幻灯片所看到的是不需要for循环就可以从m个训练样本一次性计算出小写z和小写a ,而你运行这些只需要一行代码,在同一时间计算所有的z。这一行的代码实现的是用小写sigma同时计算所有小写a。所以,这就是正向传播一步迭代的向量化实现,同时处理所有m个训练样本。

  概括一下,你刚刚看到如何使用向量化,高效计算激活函数,同时输出所有小写a,接下来你会发现同样可以用向量化来高效地计算反向传播,并以此来计算梯度。我们在下一个视频中,将看到它是如何实现的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值