烘焙|用贝叶斯优化做巧克力曲奇,谷歌这项研究登上了NeurIPS

烘焙|用贝叶斯优化做巧克力曲奇,谷歌这项研究登上了NeurIPS

文章图片

烘焙|用贝叶斯优化做巧克力曲奇,谷歌这项研究登上了NeurIPS

文章图片

烘焙|用贝叶斯优化做巧克力曲奇,谷歌这项研究登上了NeurIPS

文章图片

烘焙|用贝叶斯优化做巧克力曲奇,谷歌这项研究登上了NeurIPS

用贝叶斯优化来改良饼干配方 , 还顺便发了个顶会?!
这样的跨学科研究你玩过吗?
这不 , 谷歌大脑的几位研究人员就干了这么一件事 。
他们和人类厨师、评分员一起 , 一共进行了144次实验 , 摸索出了人们最喜欢的巧克力曲奇配方 。

还顺便发现不同地区的人对口味也有着细微的偏好:
比如加州的顾客更喜欢不那么甜的 , 匹兹堡的则喜欢cayenne(红辣椒 , 一种香料)多一点的(我也不知道为什么饼干里要加辣椒) 。
当然 , 最厉害的是 , 这款“机器学习曲奇”的做法得到了谷歌自助餐厅厨师们的认可 , 因此还签上了协议 , 直接用上实际“开发”!

这也太有意思了吧~
那么 , 具体怎么个“玩法”呢?

贝叶斯优化vs巧克力曲奇
贝叶斯优化很多人都熟悉 , 它是机器学习中超参数优化的常用技术之一 , 适用于求解目标函数表达式未知、非凸、多峰和评估代价高昂的复杂优化问题 。
之所以要在饼干配方上进行贝叶斯优化 , 谷歌大脑的研究人员解释道:这主要是因为做饼干的可调参数相对较少 , 就面粉、糖等10种左右的配料 , 以及每次实验迭代的成本相对较高 , 因为需要人工混合材料、发面、烘焙 , 然后再品尝并报告分数 。
研究人员先在匹兹堡的谷歌分办公室进行了一场小规模的实验 。
首先 , 他们清点出了一份配料清单 , 并为每种材料的克数限定了范围 , 让机器在这个范围内随意发挥(其中面粉的克数是固定的) 。
接着 , 为了配置初始范围 , 他们从网上找到了几个配方进行参照 , 然后使用谷歌自己开发的黑盒优化工具Vizier来提出新配方 。
其中 , Vizier工具利用了迁移学习的思想 , 在目标函数 f(x)的高斯过程模型F(x)上运用贝叶斯优化bandit算法 , 可以在预期改善最大的地方上提出新的想法 。
最后 , 研究人员利用优化过的配方和参照组的配方分别烤出20块饼干 , 随机邀请了一些员工进行品尝和打分 。
得到一些味道还不错的成品之后 , 研究人员决定扩大试验规模 , 来到位于加州山景城的谷歌总部 。
在这里 , 实验规则有了一些变化:
1、总部的餐厅厨师本着对食客负责的态度 , 表示要对机器优化配方进行审查 , 并拥有一票否决权和“编辑”权 。
一开始 , 机器给出的配方基本都会被厨师修修改改;后来 , 厨房们就开始信任机器食谱 , 即使某些组合看起来就不同寻常 。
2、每个配方做出的饼干从20块变为大约1000块 , 毕竟尝的人更多了结果才更有说服力 。
3、评分从5分制变为了7分制:0表示“太难吃了下次不要做了” , 7表示“这是我吃过的最好吃的” 。


最终 , 在加州山景城这里 , 研究人员得到了一款平均分为5.4的成品 , 该成品受到了最多人的喜爱 。
研究人员介绍 , 相对于通过在可行区域内随机抽样目标值分布 , 他们通过计算目标函数F(x)在Vizer内部模型峰值的z分数(z-score) , 来寻找每次研究中的增益(gains)(详细步骤可以查看论文) 。
下表给出了每个配方中F(x) 的最大值和实际烘培值的z分数 。 前三个来自匹兹堡 , 后一个来自山景城 。

推荐阅读