用梯度下降法求根号2的值

阿里实习面试的时候,面试官问了这个问题:如何用梯度下降法求根号2的值。我一开始是懵逼的,后来在面试官的指引下有了一些思路,最后面试官讲出了其中的原理。下面总结一下,是个挺有意思的问题。


我们知道梯度下降法是用来求函数的极值的。假设一个函数 f ( x ) f(x) f(x)可导,要求它的极值的话,应该是求解 f ′ ( x ) = 0 f'(x)=0 f(x)=0。对于一般函数,这个方程不好解。所以我们使用梯度下降法这样的迭代算法。具体地,不断进行如下更新:
x ← x − α f ′ ( x ) x\leftarrow x-\alpha f'(x) xxαf(x)

直到 f ′ ( x ) ≈ 0 f'(x)\approx 0 f(x)0.(这里以求极小值为例)

回到最开始的问题。如果一个函数的极小值是根号2,那么我们就可以通过梯度下降法找到这个值。不过,这个函数应该满足以下条件:

  • 函数在某个区间内,只有根号2这一个极小值点。否则我们可能找到的是其他极值点。

如果函数(可导)的极小值是根号2,那么它的导函数以根号2为根。并且,在上述区间内,导函数单调递增且过零点。所以我们可以直接找这样的导函数,不用找原函数了。

这样的导函数有: f ′ ( x ) = x / 2 + 1 / x f'(x)=x/2+1/x f(x)=x/2+1/x.它的图形是:
在这里插入图片描述
可以看到,它在 ( 0 , + ∞ ) (0,+\infty) (0,+)上满足条件。所以,我们只需要在 ( 0 , + ∞ ) (0,+\infty) (0,+)上使用梯度下降找 f ′ ( x ) = 0 f'(x)=0 f(x)=0的点就可以了。

另一个函数是: f ′ ( x ) = x 2 − 2 f'(x)=x^2-2 f(x)=x22.它的图形是:
在这里插入图片描述
也满足条件。


一般地,可以推广到求根号n。这样的导函数是: f ′ ( x ) = x / n + 1 / x f'(x)=x/n+1/x f(x)=x/n+1/x f ′ ( x ) = x 2 − n f'(x)=x^2-n f(x)=x2n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值