大数据文摘
作者:小雨、蒋宝尚
最近Ian Goodfellow一直在推特上和大家分享写作学习的技巧。 昨天跟大家分享了推导机器学习公式的黑魔法,今天又发了几条推文,跟大家分享一些数学求导数的技巧。
Goodfellow说他喜欢用超实数(hyperreal numbers)求导数。
注:超实数是一个包含实数、无穷大和无穷小的域,其绝对值分别大于和小于任何正实数。
以下是Ian Goodfellow的推特内容:
对于这个技巧,我们引入了一种新的数字,称为无穷小超实数。 假设我们有一个无穷小量ε,它的取值范围是0<ε<x,其中x指的是所有正实数。 并假设我们可以用代数方式表示像 ε 这样的任何变量。
现在我们可以使用代数方法通过应用此表达式来计算导数:f'(x)= real_part(f(x ε) – f(x)) / ε),其中“real_part” 函数的作用是对某个表达式的无穷小进行舍入。
例如x^2的导数为:((x ε)^2 – x^2) / ε = (x^2 2*ε*x ε^2 – x^2) /ε = 2ε。 舍去无穷小量ε,只保留2。
看到这里,还没忘记高等数学,就忍不住提笔推导x^2 :
丑字请无视……
嗯……为什么结果不一样? 这不就是最基本的导数公式吗!
经过反复确认,原来Goodfellow在结果中少了一个x,x^2的导数为:((x ε)^2 – x^2) / ε = ( x^2 2 *ε*x ε^2 – x^2) / ε = 2*x ε。 我们去掉无穷小量 ε,只保留 2x。
看到这里,很多读者朋友会吐槽,这不就是高等数学中求导法则的定义吗! 对了,我们一起复习一下进阶数:
可以说Goodfellow的tricks确实和推导规则的定义非常相似,只是在推导规则前面有个叫lim的东西, 据说当Δx→0时,极限存在。
要证明Δx→0时极限存在,那是数学上很微妙的事情,当然也不容易理解。
那么Goodfellow的功力在哪里呢? 答案是通过定义一个无穷小的量来代替寻找极限的步骤。
Goodfellow 还说无穷小超实数的代数运算就像一个骗局。 但事实证明,当相同的规则适用于实数时,代数算法在逻辑上是可能的。
超实数使牛顿和莱布尼茨在微积分发展初期直观感知到的知识更加具体,但没有严格的数学证明。 超实数比极限概念更接近无穷小域的本质。
还有无限超实数,即比任何实数都大的数,但Goodfellow并不认为它能在机器学习研究中发挥大作用。
用超实数计算积分也是可以的,但是我在推导过程中没有发现超实数在计算积分上有很大的优势。
相关报道:
https://twitter.com/goodfellow_ian/status/996559213500424192