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


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

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

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

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

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

这样的导函数有:f′(x)=x/2+1/xf'(x)=x/2+1/xf′(x)=x/2+1/x.它的图形是:

可以看到,它在(0,+∞)(0,+\infty)(0,+∞)上满足条件。所以,我们只需要在(0,+∞)(0,+\infty)(0,+∞)上使用梯度下降找f′(x)=0f'(x)=0f′(x)=0的点就可以了。

另一个函数是:f′(x)=x2−2f'(x)=x^2-2f′(x)=x2−2.它的图形是:

也满足条件。


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

用梯度下降法求根号2的值相关推荐

  1. 梯度下降法求多元线性回归及Java实现

    为什么80%的码农都做不了架构师?>>>    对于数据分析而言,我们总是极力找数学模型来描述数据发生的规律, 有的数据我们在二维空间就可以描述,有的数据则需要映射到更高维的空间.数 ...

  2. 最简单的梯度下降法求最优值

    梯度下降法,主要通过梯度方向与学习率两个值,一步一步迭代求出最优值的过程. 1. 随机产生开始迭代的初始值,包括x值,学习率: 2. 计算函数的导数,通过学习率与导数的乘积更新x,即 其中是学习率,是 ...

  3. 【数据挖掘】神经网络 后向传播算法 ( 梯度下降过程 | 梯度方向说明 | 梯度下降原理 | 损失函数 | 损失函数求导 | 批量梯度下降法 | 随机梯度下降法 | 小批量梯度下降法 )

    文章目录 I . 梯度下降 Gradient Descent 简介 ( 梯度下降过程 | 梯度下降方向 ) II . 梯度下降 示例说明 ( 单个参数 ) III . 梯度下降 示例说明 ( 多个参数 ...

  4. 一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。

    在上一篇博客中我们通过解析解法算出来了 但是上面公式中的对称阵是N维乘以N维的,复杂度为O(n*n*n),虽然很精准但是很慢. 为此我们引入梯度下降法 我们首先大致画出MSE的图像,MSE是一个开口向 ...

  5. [数值计算-10]:一元非线性函数求最小值 - 导数与梯度下降法Python法代码示例

    作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...

  6. 泰勒级数+牛顿迭代公式+最简单的C语言求根号的值

    转载自:http://blog.csdn.net/tqtuuuu/article/details/6821767 无意间在CSDN上看见一哥们讨论Tecent的两道面试题,其中一道题目就是求根号2的值 ...

  7. java测试一个泰勒级数,泰勒级数+牛顿迭代公式+最简单的C语言求根号的值

    无意间看见一哥们讨论Tecent的两道面试题,其中一道题目就是求根号2的值,并且保留指点的小数位.我想我一定是不能进Tecent了,并且我一定是一个数学小白,不,就是一个小白.查了一些资料.mark一 ...

  8. 为什么一些机器学习模型需要对数据进行归一化?——1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度...

    为什么一些机器学习模型需要对数据进行归一化? http://www.cnblogs.com/LBSer/p/4440590.html 机器学习模型被互联网行业广泛应用,如排序(参见:排序学习实践).推 ...

  9. 吴恩达机器学习笔记:(三)梯度下降法

    梯度下降法 知识点: 偏导数.微积分.局部最优解 概念介绍 梯度下降法目的是为了"下降",下降的方法是按照"梯度".比如你在一座山上,当前你只能迈出一步,如何走 ...

最新文章

  1. 【radar】毫米波雷达相关开源项目代码汇总(工具箱、仿真、2D毫米波检测、融合、4D毫米波检测、分割、SLAM、跟踪)(6)
  2. 成都Uber优步司机奖励政策(4月12日)
  3. win7专业版64位,台式机睡眠和休眠后立即被唤醒
  4. RabbitMQ Topic交换机的作用
  5. 【转】jquery 注册事件的方法
  6. 7-8垃圾箱分布_您认为有关垃圾收集的7件事-完全错了
  7. java中逗号怎么加_Java中如何将字符串从右至左每三位加一逗号
  8. 字符搜索正则表达式语法详解
  9. Oracle数据的导出与导入
  10. 【C++】带空格输入
  11. 【hbase】HBASE的安装与配置的步骤详解
  12. pythonrandom rand_Python np.random.rand()和np.random.randn()
  13. php 框架 容器,thinkphp5.1框架容器与依赖注入实例分析
  14. UVa 10945 - Mother bear
  15. .desktop 桌面快捷_两个按键:手机截屏且保存至电脑桌面
  16. 巴菲特致股东的信pdf_2020年巴菲特致股东的信
  17. 测试电梯的测试用例_测试面试题之如何测试电梯
  18. 小程序设置page背景图片透明度
  19. 平均年薪50万,学好python程序员到底有多吃香?
  20. linux下做笔记的软件下载,Write一款梦幻般的Linux手机笔记应用程序

热门文章

  1. python判断偶数奇数_Python程序检查数字是奇数还是偶数
  2. 如何回答「为什么想来我们公司」【面试核心问题2】
  3. ​​​​​​​NISP一级考试题库
  4. 深度学习巨头—杨立昆
  5. 关于数据,你的慌张,百度云ABC可能有办法!
  6. 转帖:夜夜听雨(四)(中国社会科学院 郑哲)
  7. 埃尔米特曲线 Hermite Curve
  8. python数据分析:会员数据化运营(中)——RMF分析
  9. 分享两个在线制图网站
  10. 一脚踏三省,一路感悟不断