lbk60ox 发表于 2024-9-3 22:33:59

从一道Google的面试题说起


    <div style="color: black; text-align: left; margin-bottom: 10px;">
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">今天先讲Google的一道面试题,它其实是考察候选人的工程思维,题目是这么说的:</p>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/dfic-imagehandler/3678bbdc-5a27-42bf-a192-adad6a0e057d~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1725953578&amp;x-signature=PHtCOa%2B355khvCekjZvm7%2BPxh2k%3D" style="width: 50%; margin-bottom: 20px;"></div>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">给你两个一模<span style="color: black;">同样</span>的玻璃球。这两个球<span style="color: black;">倘若</span>从<span style="color: black;">必定</span>高度掉到地上就会摔碎,当然,<span style="color: black;">倘若</span>在这个高度以下往下扔,怎么都不会碎,超过这个高度肯定就一次摔碎了。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">此刻</span>已知这个恰巧摔碎的高度范围在1层楼到100层楼之间。<span style="color: black;">怎样</span>用最少的<span style="color: black;">实验</span>次数,用这两个玻璃球测试出玻璃球恰好摔碎的楼高。</p>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/dfic-imagehandler/a12cfca9-11c1-493b-9179-f2bf0167d63d~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1725953578&amp;x-signature=2GiUPXex%2BHhPMEbLhMPUzRIWtGg%3D" style="width: 50%; margin-bottom: 20px;"></div>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">为了便于你理解这道题,我不妨讲两个<span style="color: black;">详细</span>的策略。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">第1</span>个策略是从<span style="color: black;">第1</span>层楼<span style="color: black;">起始</span>,一层一层往上<span style="color: black;">实验</span>。 你拿着球跑到<span style="color: black;">第1</span>层,一摔,<span style="color: black;">无</span>碎,接下来你又跑到第二层去试,<span style="color: black;">亦</span><span style="color: black;">无</span>摔碎。你一层层试下去,<span style="color: black;">例如</span>说到了第59层摔碎了,<span style="color: black;">那样</span>你就<span style="color: black;">晓得</span>它摔碎的高度是59层。这个策略能<span style="color: black;">保准</span>你<span style="color: black;">得到</span>成功,但显然不是<span style="color: black;">特别有</span>效。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">第二个策略是预测一下,试一试, 你跑到30层楼一试,<span style="color: black;">无</span>碎,再跑到80层楼一试,碎了。虽然你把摔碎高度的范围从1-100减小到30-80,但接下来你就犯难了,<span style="color: black;">由于</span>你就剩一个球了,再<span style="color: black;">这般</span>凭感觉做<span style="color: black;">实验</span>,可能两个球都摔碎了,<span style="color: black;">亦</span>测不出想<span style="color: black;">晓得</span>的高度。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这道题好的<span style="color: black;">办法</span>是什么呢?两个球,一个用来做粗调,一个用来做精调,<span style="color: black;">详细</span>做法是以下<span style="color: black;">这般</span>的。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">首要</span>拿<span style="color: black;">第1</span>个球到10层楼去试,<span style="color: black;">倘若</span><span style="color: black;">无</span>摔碎,就去20层楼,每次<span style="color: black;">增多</span>10层楼。<span style="color: black;">倘若</span>在某个十层摔碎了,<span style="color: black;">例如</span>60层,就<span style="color: black;">晓得</span>摔碎的高度在51-60层之间,接下来从51层<span style="color: black;">起始</span>一层层地<span style="color: black;">实验</span>,<span style="color: black;">这般</span><span style="color: black;">能够</span><span style="color: black;">保准</span>不出二十次,<span style="color: black;">必定</span>能试出恰巧摔碎玻璃球的高度。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">数学好的读者<span style="color: black;">伴侣</span><span style="color: black;">能够</span>去证明一下这是从统计的<span style="color: black;">方向</span>讲最优的策略,为了照顾所有的读者,我就不占用时间证明了。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这道题和计算机技术完全无关,和<span style="color: black;">制品</span>设计<span style="color: black;">或</span>市场推广似乎<span style="color: black;">亦</span>无关,<span style="color: black;">那样</span><span style="color: black;">为何</span>Google要考这道题?其实有两个目的, 一是为了找到聪明人,二是为了判断这个候选人的工程素养。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">世界上顶级的<span style="color: black;">机构</span>在招人时都要强调一个人<span style="color: black;">将来</span>的可塑性,其中的一条<span style="color: black;">便是</span>要足够聪明便于培养,<span style="color: black;">因此呢</span>都会考<span style="color: black;">有些</span>看似智力题的问题。这个传统在IT行业,<span style="color: black;">尤其</span>是在硅谷,源于诺贝尔奖<span style="color: black;">得到</span>者夏克利挑选人的思维方式。</p>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/dfic-imagehandler/4a9d59a9-ecdb-4871-be3c-eac0c76815fa~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1725953578&amp;x-signature=wId4wWIshUSvYxpU5QK2G1ZuJ0c%3D" style="width: 50%; margin-bottom: 20px;"></div>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">为何</span>可塑性比过去的经历重要呢?<span style="color: black;">由于</span>大部分<span style="color: black;">机构</span>招人是做<span style="color: black;">将来</span>的事情,而不是重复过去的事情,尤其是<span style="color: black;">针对</span>大学刚毕业的<span style="color: black;">青年</span>人,过去在大学几年学的东西,和后来<span style="color: black;">一生</span>要<span style="color: black;">持续</span>学习的东西相比,实在少得可怜。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">因此呢</span>, <span style="color: black;">倘若</span>一个资质平庸、学习能力不强的学生在大学时多学了一点专业知识,比<span style="color: black;">哪些</span>聪明好学,少学一两门专业课的人相比,后劲是不足的。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">不外</span>,<span style="color: black;">倘若</span>你今天再应聘这些顶级<span style="color: black;">跨境</span><span style="color: black;">机构</span>,倒不必太担心被考<span style="color: black;">这般</span>的智力题,这要感谢美国的政治正确。<span style="color: black;">有些</span>左派人士讲,<span style="color: black;">哪些</span>智力题有<span style="color: black;">卑视</span>倾向,<span style="color: black;">由于</span>它们让<span style="color: black;">有些</span>族裔的人<span style="color: black;">显出</span>不聪明,而政治正确要强调的是必须承认所有的族裔同等聪明。当然这是题外话。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">那样</span>这道题考的是什么样的工程素养呢?<span style="color: black;">便是</span>今天标题所说的粗调和精调。<span style="color: black;">倘若</span>我要问,有一个数字是40.365,<span style="color: black;">例如</span>说天文望远镜的焦距,你<span style="color: black;">怎么样</span>达到它?</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">通常</span>人<span style="color: black;">根据</span>生活直觉,直奔这个数字去就<span style="color: black;">能够</span>了。<span style="color: black;">然则</span>在工程上,<span style="color: black;">这般</span>简单的一个数字并非抽象的,而是非常<span style="color: black;">详细</span>的。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">倘若</span>是天文望远镜的焦距,你<span style="color: black;">是不是</span>会用手把握着望远镜的那个圆筒,前后移动,估摸着镜片之间的距离来<span style="color: black;">调节</span>呢?<span style="color: black;">倘若</span>这是导弹发射的<span style="color: black;">方向</span>,你自己<span style="color: black;">是不是</span>会用个量角器估算导弹和水平线的<span style="color: black;">方向</span>呢?</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">显然<span style="color: black;">咱们</span><span style="color: black;">不可</span>这么做,<span style="color: black;">咱们</span>必须有一个<span style="color: black;">能够</span>准确达到这个数字的办法,这<span style="color: black;">便是</span>工程的思维—— <span style="color: black;">不仅</span>要<span style="color: black;">晓得</span><span style="color: black;">目的</span>在哪里,还必须设计一个能够达到<span style="color: black;">目的</span>的道路。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">针对</span>天文望远镜,设计它们的工程师必须设计一个能够转动的旋钮,让它的长度接近40.365这个数字。</p>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p3-sign.toutiaoimg.com/dfic-imagehandler/89b7036e-1dab-4a55-9e0b-18f1a37f9d0b~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1725953578&amp;x-signature=wxY3eqkHbbKubc%2BXTAgrTPLY1kI%3D" style="width: 50%; margin-bottom: 20px;">
            <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">精确的天文望远镜</p>
      </div>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">然则</span>接下来的问题来了,<span style="color: black;">倘若</span>这个旋钮每转动一圈,<span style="color: black;">调节</span>的幅度太大,要调到小数点后面三位几乎不可能。<span style="color: black;">倘若</span>每转动一圈<span style="color: black;">调节</span>的幅度太小,<span style="color: black;">例如</span>每次<span style="color: black;">调节</span>0.001,<span style="color: black;">那样</span>可能要花很<span style="color: black;">长期</span><span style="color: black;">才可</span>调到40.365这个数。类似地,<span style="color: black;">调节</span>导弹的<span style="color: black;">方向</span><span style="color: black;">亦</span>是如此。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">那样</span>工程师们是怎么做的呢?<span style="color: black;">便是</span>要 设计<span style="color: black;">各样</span>粗调和精调的<span style="color: black;">办法</span>。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">在中国学习生物时用过光学显微镜的<span style="color: black;">伴侣</span>,可能还会记得在显微镜上有两个旋钮, <span style="color: black;">第1</span>个是粗调,让你大致看到图像,第二个是精调,能让你看清楚图像。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">如果<span style="color: black;">不消</span>粗调,只用精调,不仅<span style="color: black;">办事</span>的效率会很低,<span style="color: black;">况且</span>可能会<span style="color: black;">由于</span>一<span style="color: black;">起始</span>的范围找得不对,在花了半天时间后<span style="color: black;">无</span>找到后,最后干脆放弃了尝试。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">今天最先进的手术<span style="color: black;">设备</span>人的精度<span style="color: black;">能够</span>做到0.001毫米,<span style="color: black;">这般</span><span style="color: black;">精细</span>的仪器里面的电机一<span style="color: black;">起始</span>速度相对比较快,否则一个手术做的时间会长得不得了。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">然则</span>手术刀接近<span style="color: black;">目的</span>距离时,会变得非常慢,但精度会非常高。<span style="color: black;">这般</span>,手术<span style="color: black;">设备</span>人<span style="color: black;">才可</span><span style="color: black;">同期</span><span style="color: black;">保准</span>效率和准确性。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">类似地,任何一个<span style="color: black;">设备</span>学习的过程,其实都是<span style="color: black;">持续</span>地<span style="color: black;">调节</span>数学模型参数的过程,直到参数收敛到最佳点。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">每一次<span style="color: black;">调节</span>被<span style="color: black;">叫作</span>为是一次迭代,<span style="color: black;">调节</span>的幅度被<span style="color: black;">叫作</span>为迭代的步长。一<span style="color: black;">起始</span>的时候,迭代的步长要比<span style="color: black;">很强</span>,<span style="color: black;">这般</span>能够<span style="color: black;">火速</span>地确定大致范围,效率比较高。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这就如同测试玻璃球的那个问题中,一<span style="color: black;">起始</span>一次测试10层是<span style="color: black;">同样</span>。<span style="color: black;">然则</span>,<span style="color: black;">倘若</span>总是把步长设计得很大,<span style="color: black;">那样</span>最后可能会找不到最佳的参数,<span style="color: black;">由于</span>要么走过头了,要么<span style="color: black;">无</span><span style="color: black;">步行到</span>。<span style="color: black;">因此呢</span>,<span style="color: black;">设备</span>学习到最后需要缩小步长,进行精调,以<span style="color: black;">保准</span>最后收敛到最佳点。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">世界上每年有<span style="color: black;">非常多</span><span style="color: black;">设备</span>学习方面的论文,都是围绕<span style="color: black;">加强</span>学习效率展开的,而其中的核心其实<span style="color: black;">便是</span><span style="color: black;">怎么样</span>用最少次迭代,完成模型的训练。当然,任何好的<span style="color: black;">设备</span>学习算法都不是事先人为设定步长,而是在学习的过程中,自动找到合适的步长。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">这种粗调和精调结合的工程设计方式,并不限于“调节”这个范围,<span style="color: black;">况且</span>用于了<span style="color: black;">非常多</span>工程<span style="color: black;">制品</span>的设计。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">例如</span>本田最新的超级跑车NSX有四个发动机。一个传统的汽油发动机<span style="color: black;">供给</span><span style="color: black;">重点</span>动力,这相当于是粗调。一个电动发动机<span style="color: black;">供给</span>在起跑一瞬间快速的加速,这相当于精调。</p>
      <div style="color: black; text-align: left; margin-bottom: 10px;"><img src="https://p26-sign.toutiaoimg.com/dfic-imagehandler/45a0a4f0-4bca-4326-a1d1-3b0453776dc9~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1725953578&amp;x-signature=WYRid1FQyUHhBof6sGqdF3DZpyY%3D" style="width: 50%; margin-bottom: 20px;"></div>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">一辆汽车<span style="color: black;">倘若</span>发动机功率太小,加速会比较慢,<span style="color: black;">倘若</span>功率太大,在平时巡航的时候会太费油。<span style="color: black;">因此呢</span>混合动力的汽车就<span style="color: black;">经过</span>粗调和精调<span style="color: black;">处理</span>了这个矛盾,这<span style="color: black;">亦</span>是<span style="color: black;">为何</span>它比较省油的<span style="color: black;">原由</span>。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">至于NSX<span style="color: black;">为何</span>还有第<span style="color: black;">3、</span>第四个发动机,那是分别安装在两个前轮上的,<span style="color: black;">重点</span>是给它转向时<span style="color: black;">供给</span>动力,这两个很小的发动机<span style="color: black;">乃至</span><span style="color: black;">能够</span>让轮子一个加速,一个减速,以减小拐弯半径,做<span style="color: black;">大众</span>在电影里看到的特技转弯的动作。当然这个功能用得更少了,属于进一步的精调。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">能否<span style="color: black;">经过</span>一个发动机达到<span style="color: black;">一样</span>的目的呢?不是不<span style="color: black;">能够</span>,有<span style="color: black;">有些</span>极致的超级跑车<span style="color: black;">便是</span>这么做的,<span style="color: black;">例如</span>后轮<span style="color: black;">能够</span>拐弯,<span style="color: black;">然则</span><span style="color: black;">这般</span>的工程极为<span style="color: black;">繁杂</span>,成本比四个发动机要高得多。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">粗调和精调的思维方式其实在生活中<span style="color: black;">亦</span>有应用。<span style="color: black;">非常多</span>时候<span style="color: black;">咱们</span>先用低成本<span style="color: black;">处理</span><span style="color: black;">重点</span>问题,<span style="color: black;">而后</span>再想办法把最后5%、10%做好。</p>
    </div>




ljj 发表于 2024-9-25 15:12:59

你的言辞如同繁星闪烁,点亮了我心中的夜空。
页: [1]
查看完整版本: 从一道Google的面试题说起