Powered by
Murph Cooper Lab
  • Home
  • Growing n Evolving
  • Competence Circle
    • Philosophy >
      • Her
      • Quotes
      • Day One
      • Wu Jun
      • Outside >
        • There
      • North Star
    • Analyzing >
      • Investment >
        • Primary Market
        • Secondary Market
        • Cryptocurrency
      • Companies >
        • Meitua美团
        • Amazon
        • Amino Capital
        • Alphabet >
          • Jeff Bezos
        • Berkeshire Hathaway
        • Tesla
        • JD
        • Microsoft
        • Apple >
          • Steve Jobs
        • Nvidia
        • SpaceX
        • Blue Origins
        • Softbank
        • Alibaba
        • Tencent
        • Huawei华为
      • Industries / Sectors >
        • P1 >
          • Mining
          • Healthcare
          • Supply Chain
          • Retailing
          • Blockchain
          • Cloud Computing
          • AR/VR/MR
        • P2 >
          • Aerospace
          • Computer Vision
          • Autonomous Vehicle
          • Manufacturing
          • IoTs
      • Figures/Stars
      • Designs /Aesthetics >
        • Designers >
          • Jony Ive
        • Products
        • Houses
        • Apartments
        • Cars
        • Swords
        • Aircrafts
        • Spacecrafts
      • Civilizations >
        • Egypt
        • China
        • Greece
        • Baylon
        • Persia
        • Rome
        • Carthage
        • Arab
        • Japan
        • Spain
        • Italy
        • Portugal
        • France
        • Germany
        • Kievan Rus
        • Russia
        • Sweden
        • United Kingdom
        • Netherlands
        • Uniited States
        • Singapore
    • Coding >
      • SQL
      • Python
      • R
      • Data Visualizations
    • Numbers >
      • Statistics
      • Probability
      • Logic
      • Linear Algebra
      • Matrix
    • Languages >
      • Chinese
      • English
      • Japanese
      • German
      • Russian
      • Swedish
      • Latin
    • Physical >
      • Kendo
      • Workout >
        • Health
      • Mixed Fighting
      • Shooting
  • About Me

025 | 粗调和精调: 从一道Google的面试题谈起

10/13/2018

 

回答这些问题吧并不需要计算机或者金融专业的知识,即使你学的是文科,也能解答。

这是Google的一道面试题,它其实是考察候选人的工程思维,题目是这么说的:

“给你两个一模一样的玻璃球。这两个球如果从一定高度掉到地方就会摔碎,当然,如果在这个高度以下往下扔,怎么都不会碎,但超过这个高度肯定就一次摔碎了。现在已经这个恰巧摔碎的高度范围在1层楼到100层楼之间。如何用最少的实验次数,用这两个玻璃球测试出玻璃球恰好摔碎的楼高?”

为了便于你理解这道题,我不妨讲两个具体的策略。

第一个策略是从第一层楼开始,一层一层往上实验。这个策略能保证你获得成功,但显然不是很有效。

第二个策略是预测一下,试一试。你跑到30层楼一试,没有碎,再跑到80层楼一试,碎了。虽然你把摔碎高度的范围从1-100缩小到了30-80,但接下俩你就犯难了,因为你就剩一个球了,再这样凭感觉做实验,可能两个球都摔碎了,也测不出想知道的高度。(哇,关键词:“凭感觉”)

更好的办法是什么呢?两个球,一个用来做粗调,一个用来做精调,具体的做法是以下这样的。首先拿第一个球到10层楼去试,如果没有摔碎,就去20层楼,每次增加10层楼。如果在某个十层摔碎了,比如60层,就知道摔碎的高度在51-60层之间,接下来从51层开始一层层地实验,这样可以保证不出二十次,一定能试出恰巧摔破玻璃球的高度。

数学好的人可以去证明一下这是从统计学角度讲最优的策略。(怎么证明呀??)






这道题和计算机技术完全无关,和产品设计或者市场推广似乎也无关,那么为什么Google要考这道题?其实有两个目的,一是为了找到聪明人,二是为了判断这个候选人的工程素养。世界上顶级的公司在招人时都要强调一个人未来的可塑性,其中的一条就是要足够聪明便于培养,因此都会考一些看似智力题的问题。这个传统在IT行业,特别是在硅谷,源于诺贝尔奖获得者肖克利挑选人的思维方式。

…

那么这道题考的是什么样的工程素养呢?就是今天标题所说的粗条和精调。如果我要问,有一个数字是40.365,比如说天文望远镜的焦距,你怎样达到它?一般人按照生活直觉,直奔这个数字去就可以了。但是在工程上,这样简单的一个数字并非抽象的,而是非常具体的。如果是今天望远镜的焦距,你是否会用手把握着望远镜的那个圆通,前后移动,估摸着镜片之间的距离来调整呢?如果这是导弹发射的角度,你自己是否会用这个量角器估算导弹和水平线的角度呢?显然我们不能这么做,我们必须有一个可以准确达到这个数字的办法,这就是工程师的思维 —— 不仅仅要知道目标在哪里,还必须设计一个能够达到目标的道路。对于天文望远镜,设计它们的工程师必须设计一个能够转动的旋钮,让它的长度接近40.365这个数字。

但是接下来的问题来了,如果这个旋钮每转动一圈,调整的幅度太大,要调到小数点后面三位几乎不可能。如果没转动一圈调整的幅度太小,比如每次调整0.001,那么可能要花很长时间才能调到40.365。类似地,调整导弹的角度也是如此。那么,工程师们是怎么做的呢?就是要设计各种粗调和精调的办法。在中国学习生物时用过光学显微镜的朋友,可能还会记得在显微镜上有两个旋钮,第一个是粗调,让你大致看到图像,第二个是精调,能让你看得清楚图像。

如果不用粗调,只用精调,不仅做事的效率会很低,而且可能会因为一开的范围找得不对,在花了半天时间没有找到后,最后干脆放弃了尝试。今天最先进的手术机器人的精度可以做到0.001毫米,这样精密的仪器里面的电机一开始速度香港队比较快,否则一个手术做的时间会长得不得了。但是手术刀接近目标距离时,会变得非常慢,但精度会非常高。这样,手术机器人才能同时保证效率和准确性。类似地,任何一个机器学习的过程,其实都是不断地调整数学参数的过程,直到参数收敛到最佳点(yeah, those hypeparameters)。每一次调整被称为是一次迭代,调整的幅度被称为迭代的步长。一开始的时候,迭代的步长要比较大,这样能够很快地确定大致范围,效率比较高。这就如同测试玻璃球的那个问题中,一开始一次测试10层是一样的。但是,如果总把步长设计的那么大,那么最后可能会找不到最佳的参数,因为要么走过头了,要么没有走到头了。因此,机器学习到最后需要缩小步长,进行精调,以保证最后收敛到最佳点。

世界上每年有很多机器学习方面的论文,都是围绕提高学习效率展开的,而其中的核心其实就是怎样用最少次的迭代,完成模型的训练。当然,任何好的机器学习算法都不是事先认为设定步长,而是在学习的过程中,自动找到合适的步长。这种粗调和精调结合的工程师方式,并不限于“调节”这个范围,而且用于了很多工程产品的设计。比如本田最新的超级跑车NSX有四个发动机。一个传统的汽油发动机提供重要的驱动力,这相当于是粗调;一个电动发动机提供在起跑一瞬间的加速,这相当于精调。一辆汽车如果发动机功率太小,加速会比较慢,如果功率太大,在平时巡航的时候回太费油。因此混合动力的汽车就通过粗调和精调解决了这个矛盾,这也是为什么它比较省油的原因。至于NSX为什么还有第三、第四个发动机,那是分别安装在两个前轮上的,主要是给它转向时提供动力,这两个很小的发动机甚至可以让轮子一个加速,一个减速,以减小拐弯半径,做大家在电影里看到的特技转弯的动作。当然这个功能用得更少了,属于进一步的精调。那么能否通过一个发动机达到同样的目的呢?不是不可以,有一些极致的超级跑车就是这么做的,比如后轮可以转弯,但是这样的工程极为复杂,成本比四个发动机要高得多。

粗条和精调的思维方式其实在生活中也有应用。很多时候我们先用低成本解决主要问题,然后再想办法把最后5%、10%做好。





Q:从Google面试的这道题看似和计算机无关的智力题,你是否体会到它会好的工程师的要求了呢?




















Comments are closed.
  • Home
  • Growing n Evolving
  • Competence Circle
    • Philosophy >
      • Her
      • Quotes
      • Day One
      • Wu Jun
      • Outside >
        • There
      • North Star
    • Analyzing >
      • Investment >
        • Primary Market
        • Secondary Market
        • Cryptocurrency
      • Companies >
        • Meitua美团
        • Amazon
        • Amino Capital
        • Alphabet >
          • Jeff Bezos
        • Berkeshire Hathaway
        • Tesla
        • JD
        • Microsoft
        • Apple >
          • Steve Jobs
        • Nvidia
        • SpaceX
        • Blue Origins
        • Softbank
        • Alibaba
        • Tencent
        • Huawei华为
      • Industries / Sectors >
        • P1 >
          • Mining
          • Healthcare
          • Supply Chain
          • Retailing
          • Blockchain
          • Cloud Computing
          • AR/VR/MR
        • P2 >
          • Aerospace
          • Computer Vision
          • Autonomous Vehicle
          • Manufacturing
          • IoTs
      • Figures/Stars
      • Designs /Aesthetics >
        • Designers >
          • Jony Ive
        • Products
        • Houses
        • Apartments
        • Cars
        • Swords
        • Aircrafts
        • Spacecrafts
      • Civilizations >
        • Egypt
        • China
        • Greece
        • Baylon
        • Persia
        • Rome
        • Carthage
        • Arab
        • Japan
        • Spain
        • Italy
        • Portugal
        • France
        • Germany
        • Kievan Rus
        • Russia
        • Sweden
        • United Kingdom
        • Netherlands
        • Uniited States
        • Singapore
    • Coding >
      • SQL
      • Python
      • R
      • Data Visualizations
    • Numbers >
      • Statistics
      • Probability
      • Logic
      • Linear Algebra
      • Matrix
    • Languages >
      • Chinese
      • English
      • Japanese
      • German
      • Russian
      • Swedish
      • Latin
    • Physical >
      • Kendo
      • Workout >
        • Health
      • Mixed Fighting
      • Shooting
  • About Me