教程是本人学习吴恩达老师DeepLearing系列课程中整理的最为详细的学习笔记。学习视频主要来自B站
https://www.bilibili.com/video/BV1FT4y1E74V?,以及DeepLearning官方网站
https://www.coursera.org/specializations/deep-learning。该系列课程总共有180多个,我会将学习笔记陆续分享出来,为有兴趣深度学习的同仁提供便利。再次由衷感谢吴恩达老师的精彩讲解和无私奉献!
特别说明:图片来源于吴恩达老师视频截图。
在这个视频中,我想让你对微积分和导数有直观的理解。或许你认为自大学以后,你再也没有接触微积分。这取决于你什么时候毕业,也许有一段时间了。如果你顾虑这一点,请不要担心,你并不需要非常深入理解微积分,就能高效应用神经网络和深度学习。因此,如果你观看这个视频或之后的视频时想到,哇喔,这些运算对我来说真的很复杂。我给你的建议是坚持学习视频,最好做好课后作业,成功完成编程作业,就能运用深度学习了。事实上,之后你将看到,在第4周将会定义很多种类的函数类型,它们能够帮助你通过微积分,把所有需要的知识结合起来,其中有叫做“前向函数”和“反向函数”的函数。你不需要了解很多微积分去使用这些函数,因此你无需担心它们超出理解范围。但在深度学习中,这周我们要一探究竟,进一步深入了解微积分的细节。但其实你只需要对这些微积分有直观的认识,就可以构建和成功应用这些算法。最后,如果你是为数不多的、精通微积分的同学,如果你对微积分非常熟悉,你可以跳过这个视频。其他同学,我们开始吧,一起深入学习导数。
我在这里画了一个函数, f(a)=3a,它是一条直线。直观的理解导数,我们来看看函数中的几个点。
假设a=2时,那么f(a)等于a的3倍,因此f(a)=6 。我们只是稍稍增加一点点a,就到a=2.001,f(a)=6.003。我们看这个绿色的小三角形,如果我们向右移动0.001,那么f(a)增加0.003,f增加的值3倍于a往右移的量。因此我们说斜率即导数,函数f(a)在a=2处,或者说当a=2时,斜率是3。导数这个概念基本意味着斜率。导数听起来是个很吓人的词,但是斜率以一种很友好的方式,来描述导数这个概念。所以,有的时候提到导数,把它当做函数的斜率就好了。
更正式的斜率定义为高除以宽,在这个绿色三角形,即0.003除以0.001 ,斜率等于3,或者说导数等于3。这表示,当你将a右移0.001,移动一点点,f(a)的值将增加3倍的量,水平方向a的总量。这就是这条线的斜率。
现在让我们在不同点,看看这个函数。假设a=5,此时f(a)为3乘以a,等于15,我们再一次右移a,很小幅度,增加到5.001。f(a)等于3倍的a,等于15.003。再一次,当我们增加a,将a右移0.001,f(a)增加3倍,所以在a=5时,斜率是3。我们这样来写,把函数f=3的斜率写成,这表示f(a)的斜率。当你微小改变变量a的值,它等于3。 。导数公式的另一个表达方式,你可以写成,不管你是否将f(a)放在上面或是放在这里,都没有关系。这些等式意味着将a右移一点,f(a)会增加3倍于移动a的值。在这个视频中,我解释了导数,讨论的情况是我们将变量a偏移0.001。如果你想知道,正式的导数数学定义,导数是,你右移a非常小的值,不是0.001,不是0.00000001,不是0.00000..1,是非常非常小的值,导数的定义是你右移a一个不可度量的无限小的值,f(a)会增加一个不可度量的无限小的值的3倍,那就是导数的正式定义。但是为了直观地认识,我们将探讨右移a以0.001这个值,尽管0.001并不是无穷小的可测数据。
导数的一个特性是,这个函数任何地方的斜率总是等于3,不管a=2或a=5,这个函数的斜率总等于3。就是说,不管a的值如何,如果你增加0.001,f(a)的值就增加3倍的a的增加量,这个函数在所有地方的斜率都相等。一种证明的方式是,无论你将小三角形画在哪里,它的高除以宽的比值总是3比1。
我希望给你一种感觉,什么是斜率,什么是导数。对于一条直线而言,在本例中,函数的斜率在任何地方都是3。在下一个视频中,我们看一个更复杂的例子,那个函数的斜率在不同点处可能不同。
补充:数学上的导数的定义为y=f(x)在x0的临域U(x0)有定义,,