2.5 《神经网络与深度学习》课程系列之导数
在这节课里,我想让你对微积分和导数有直观的理解,或许你认为自从大学后,你再也没有接触微积分,这取决于你什么时候毕业,也许有一段时间了。如果你顾虑到这点,请不要担心,你并不需要非常深入理解微积分,就能高效应用神经网络和深度学习。
我在这里画了一个函数,f(a)=3a,它是一条直线,直观的解释导数。
假定a=2,那么f(a)等于a的3倍,等于6。也就是说,如果a=2,那么函数f(a)=6,。
我们稍微改变a的值,只变一点点移动,只增加一点点,就是2.001,往右小小移动一下。
0.001的差别,实在太小了,不能再图中显示。
我们把它右移一点,现在f(a)等于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)等于15.003.
再一次,当我增加a,将a右移0.001,f(a)增加3倍,所以在a=5时,斜率是3.
我们这样来写,把函数f=3的斜率,写成df(a)/da,这表示f(a)的斜率。
当你微小改变变量a的值,它等于3.
导数公式的另一个的表达方式,你可以这样写d/daf(a),不管你是否将f(a)放在上面,或是放在这里,都没有关系。
这些等式意味着,将a右移一点,f(a)会增加3倍于我移动a的值。
在这讲中,我们讨论的情况是,我们将变量a偏移0.001。如果你想知道,正式的导数数学定义。
导数是,你右移a非常小的值,不是0.001,不是0.00000001,非常小的值。
导数的定义是,你右移a,一个不可度量的值,一个无限小的值,f(a)会增加一个非常非常小的值得3倍。
也就是,在这个三角形右边的变化值。
那就是导数的正式定义。
但是为了直观地认识,我们将探讨,右移a以0.001这个值,尽管0.001,并不是无穷小的可测数据。
导数的一个特性是这个函数任何地方的斜率,总是等于3,不管a=1或a=5,这个函数的斜率总等于3。
就是说不管a的值如何,如果你增加0.001,f(a)的值就增加 3倍,这个函数在所有地方的斜率都相等。
一种证明的方式是,无论你将小三角形,画在哪里,它的高除以宽的比值,总比3比1.
我希望给你一种感觉,什么是斜率,什么是导数,对于一条直线而言,在例子中,函数的斜率在任何地方都是3.
在下一讲中,我们会看一个更复杂的例子。那个函数的斜率,在不同点处,都是不一样的。