用Python+Numpy模块实现神经网络(三)

用Python+Numpy模块实现神经网络(二) 续集

5. 导数的知识

    hi,换用大家继续阅读我的博文。首先,我们不得不提及一下导数的知识点(别被吓趴下了?),先不要问为什么,也先不管在神经网络中哪里会用到导数,首先,我们先提及一下导数的定义:

   假如在一个非线性函数(图像不是直线,而是曲线)的图像上有两个点:

他们一个叫A,一个叫B,他们的坐标分别是(xa,ya),(xb,yb)

在图中又出现了一条用红色画出的穿过点A,B的实线,叫它线段AB,假如我想求他的斜率,该如何求呢?

很简单,就用上图中线段k除以线段{k}'就可以了,但这两个线段又分别是怎么求出的呢,最后,我们可以推出数学公式如下(斜率我们暂时记为d:

d =\frac{ya-yb}{xa-xb}

好,接下来我们再做一个假设,假设点a无限靠近点b,那我们可以称点b的x坐标为a,这个函数(就是这个曲线的函数)叫做f(x),还有一个delta a(下图中的"三角形+a")为无穷小:

别看图中delta a看着挺“宽敞”,其实他是一个无限小的出现,也就是0.0000000......,不会小于零,我们把他记作\lim_{\Delta a\rightarrow 0},所以我们可以推出点a的切线的斜率的公式(斜率记作d):

 d = \lim_{\Delta a\rightarrow 0}\frac{f(a+\Delta a)-f(a)}{\Delta a}

hey!我们做到了!其实这就是导数的公式,只要我们有一个函数,与一个a,就可以求出点a切线的斜率,我们来试一下(f(x)的导数记作f{}'(x)):

假如我们要求函数f(x)=x^{^{2}}再求在x点的导数,求法如下:

f{}'(x)=\lim_{\Delta x\rightarrow 0}\frac{f(x+\Delta x)-f(x))}{\Delta x} =\frac{(x+\Delta x)^{2}-x^{2}}{\Delta x}=\frac{x^{2}+2x\Delta x + \Delta x^{2}-x^{2}}{\Delta x}=\frac{2x\Delta x + \Delta x^{2}}{\Delta x}=2x+\Delta x=2x

首先,还是有几点我需要解释, delta x因为无限接近于0,于是就把他当作0了,所以2x+delta x就等于2x。

 


版权声明:本文为m0_46238576原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。