<p>今天看了一个有意思的小故事,讲的是如何解决贫困地区儿童的营养问题。传统的方法一般是一组专业人员根据预算和当地的条件制作一些食谱,申请援助金钱和物资,最后发放给贫困地区。这种方法看似没什么问题,专家,金钱,物资都有,但最后效果还不一定。专家不是当地人,可能也不会吃这些食物,食谱口味并不一定适合这些儿童。同时这个方法的扩展性也存在问题,需要长期的经济支持。新的方法应该是一群社会工作者想出来的,他们免费给当地的儿童做体检,其实再贫困的地方,也有发育相对比较良好的儿童,他们挑选营养指标排名前5%的儿童,让他们的家庭告诉其他人孩子该吃什么。这样食材来源于当地,费用较低,而且经过本地儿童的验证,口味也不错,既经济又实惠。</p>
<blockquote>
<p><strong>这就是一种典型的进化思维,强化优秀的方案,通过不断尝试,改进,从而提升整体效果。</strong></p>
</blockquote>
<p>在使用这种思维的时候要注意三点:</p>
<ul>
<li>需要一个很好的检测机制,比如前面例子中的体检指标。方便查看改动使系统朝哪个方向发展。</li>
<li>改变越小越好,有助于查找成功或者失败的原因。</li>
<li>迭代越快越好,有利于提高系统前进的频率。</li>
</ul>
<p>其实这种思维,在互联网上也有所应用。网站通过A/B测试来测试用户对新功能的反应,如果效果好,则大规模推广,效果不好则另寻它路。今天的人工智能和机器学习也得益于此,通过给定一些标签化的样本来训练机器的智能,逐步提高机器的智能水平,这不刚刚在围棋上打败了人类。</p>
<p>不过这种思维也存在一定的问题,往往会沦为局部最优。假如前面贫穷地区最好的孩子指标还是不够理想,那就需要外界进行有针对性的干预。</p>