“粗调”与“精调”
2018-07-23 本文已影响0人
PengFuChuan
这是Google的一条面试题,主要考察的是候选人的工程思维
题目是:给你两个一模一样的玻璃球。这两个球如果从一定高度掉到地上就会摔碎,当然,在这个高度以下往下扔,怎么都不会碎,超过这个高度肯定一次就摔碎了。
现在已知这个恰巧摔碎的高度范围在1层楼到100层楼之间。如何用最少的试验次数,用这两个玻璃球测试出玻璃球恰好摔碎的楼高。
这题好的方法是,两个球,一个用来做粗调,一个用来做精调,玩法大致如下:
首先拿第一个球到10层楼去试,如果没有摔碎,就去20层楼,每次增加10层楼。如果在某个十层摔碎了,比如60层,就知道摔碎的高度在51-60层之间,接下来从51层开始一层层地试验,这样可以保证不出二十次,一定能试出恰巧摔碎玻璃球的高度。
在机器学习上,任何一个机器学习的过程都是不断调整数学模型的参数的过程,直到参数收敛到最佳点。每一次的调整被称为是一次迭代,调整的幅度被称为迭代的步长。
粗调:先确定大致范围,效率更高
精调:缩小调整的幅度,精度高,准确性高
延伸到日常生活、工作中,有时候我们不仅要知道目标在哪里,还要能设计到达目标的路径,这就需要我们不断提高这类工程思维。
在软件编程中,其实所谓的 “粗调” 就是:不管结果怎么样,先设计个大概,然后让代码运行起来,即使运行结果是错误的。所谓的 “精调” 就是:根据所得的运行结果和理想的结果进行对比,在一步一步的调试修改以至于最终实现目标。
在生活中这样的例子也很多,比如很多人不管做什么事情都想准备好一切之后才开始行动,这些都是一些追求完美的人,可结果是这些人开始做的事很少,做成事的人更少。当然也不是什么都不想就直接开干,而应该是掌握 “粗调” 、“精调” 的思维。