欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

神经网络之导数

最编程 2024-02-05 21:31:47
...

在神经网络中,有一个常用的激活函数sigmoid函数,这个函数在高等数学中应该是有的,只是当时没有理会。函数图像如下,本文主要主要梳理下相应的数学知识,具体的应用在后续的文章中会涉及。
在这里插入图片描述

本文涉及到数学公式,基本都是大学课本或者高中课本里的,有兴趣的一起来回忆下。

传说一个公式能少一个粉丝,但是那也没有办法,神经网络离不开数学,有兴趣的请坚持看下去,虽然有点无聊,但是也许你能了解些新的知识。

导数

定义

导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0)/dx。[图片上传失败...(image-105698-1614514943203)]

手动求导数

导数公式

在这里插入图片描述

求下面的导数:

y = x^2 + 2x 根据导数公式,很容易求的导数是: \dot{y} = 2x+2

顺便说一下: 一个多变量的函数的偏导数,就是它关于其中一个变量的导数而保持其他变量恒定(相对于全导数,在其中所有变量都允许变化)

lnx的导数

lnx的导数是1/x,这个是众所周知的,但是它是怎么证明的,这里就用到了导数的定义,下面是详细的证明过程:
在这里插入图片描述

那么这个重要极限又是怎么证明的,
在这里插入图片描述

复合函数求导

复合函数求导公式:设u=g(x),对f(u)求导得:f'(x)=f'(u)g'(x),设u=g(x),a=p(u),对f(a)求导得:f'(x)=f'(a)p'(u)*g'(x)。

在这里插入图片描述

对sigmoid函数求导涉及到的重要公式:
在这里插入图片描述

下面通过计算求出公式2.1中的第二个式子,其他的同理。
在这里插入图片描述

计算机求导

计算机求导基于的是导数的定义。如果要计算x=3, y=4时关于x的f(x,y)的偏导数, 则可以计算f(3+ε,4) - f(3, 4)并将结果除以ε(使用极限的ε值)。这种类型的导数值称为极限差分近似。

def f(x, y):    return x ** 2 * y + y + 2def derivative(f, x, y, x_eps, y_eps):    return (f(x + x_eps, y + y_eps) - f(x, y)) / (x_eps + y_eps)df_dx = derivative(f, 3, 4, 0.000001, 0)df_dy = derivative(f, 3, 4, 0, 0.000001)print(df_dx)print(df_dy)

最终的结果: 24.000004003710274 9.99999999606871

按照手动求偏导的结果很接近了。 公式求偏导的结果是24和10。这个可以用来做检验。

参考

https://www.cnblogs.com/peghoty/p/3857839.html https://www.jianshu.com/p/e74eb43960a1 https://baike.baidu.com/item/%E5%AF%BC%E6%95%B0/579188?fr=aladdin https://zhidao.baidu.com/question/524121644.html

写在最后

导数还是很重要的,在优化算法时候的梯度下降法中的梯度本质上就是导数。
更多内容,欢迎关注我的微信公众号: 无情剑客。