用Python+Numpy模块实现神经网络(三)
用Python+Numpy模块实现神经网络(二) 续集
5. 导数的知识
hi,换用大家继续阅读我的博文。首先,我们不得不提及一下导数的知识点(别被吓趴下了????),先不要问为什么,也先不管在神经网络中哪里会用到导数,首先,我们先提及一下导数的定义:
假如在一个非线性函数(图像不是直线,而是曲线)的图像上有两个点:
他们一个叫A,一个叫B,他们的坐标分别是(xa,ya),(xb,yb)
在图中又出现了一条用红色画出的穿过点A,B的实线,叫它线段AB,假如我想求他的斜率,该如何求呢?
很简单,就用上图中线段除以线段
就可以了,但这两个线段又分别是怎么求出的呢,最后,我们可以推出数学公式如下(斜率我们暂时记为d:
好,接下来我们再做一个假设,假设点a无限靠近点b,那我们可以称点b的x坐标为a,这个函数(就是这个曲线的函数)叫做f(x),还有一个delta a(下图中的"三角形+a")为无穷小:
别看图中delta a看着挺“宽敞”,其实他是一个无限小的出现,也就是0.0000000......,不会小于零,我们把他记作,所以我们可以推出点a的切线的斜率的公式(斜率记作d):
hey!我们做到了!其实这就是导数的公式,只要我们有一个函数,与一个a,就可以求出点a切线的斜率,我们来试一下(f(x)的导数记作):
假如我们要求函数再求在x点的导数,求法如下:
首先,还是有几点我需要解释, delta x因为无限接近于0,于是就把他当作0了,所以2x+delta x就等于2x。