丰色 发自 凹非寺
量子位 | 公众号 QbitAI

用贝叶斯优化来改良饼干配方,还顺便发了个顶会?!

这样的跨学科研究你玩过吗?

这不,谷歌大脑的几位研究人员就干了这么一件事。

他们和人类厨师、评分员一起,一共进行了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分数。前三个来自匹兹堡,后一个来自山景城。

总的来看,Max栏的z分数基本上为正,表明每次给出的配方都取得了进步。

其中,Pgh-2的max值都很低,说明当唯一的可调节配料是香草精和橙香精时,做出来的巧克力曲奇都不会太差。

而Pgh-3的max值中的大值可能意味着在配方中添加过多的辣椒会导致饼干味道变差。

……

有意思的是,研究人员发现,山景城的最佳配方与匹兹堡比起来,有两处不同:

一是辣椒更少,基本为0;

二是糖含量也更低。

这个差异让研究团队意识到,人们可以用贝叶斯优化为不同城市、公司中的烘焙店提供“个性化”产品

此外,他们将这两配方和参照组进行比较,发现含糖量都比较低——这说明机器学习给的配方可能有一个重要的优势:

相比烹饪书作者,它们更懂得食客真正喜欢什么样的饼干。

研究人员还表示,让人类厨师修改机器配方也是山景城实验成功的关键,这可以作为未来工作的一个有趣方向。

当然,最可喜可贺的还是谷歌自助餐厅的厨师们在了解了这个优化器的工作流程和原理后给予了认可,“热情地”签署了合作协议。

不知道现在,谷歌员工吃上了这样高大上的“机器学习曲奇”没(doge)?

配方在此

所以,这么好吃的巧克力曲奇到底应该怎么做?

所幸作者没有吝啬,在附录中进行了配方大公开。

首先是匹兹堡的,需要:

  • 167克通用面粉

  • 196克黑巧克力片

  • 1/2茶匙小苏打

  • 1/4茶匙盐

  • 1/4茶匙辣椒(cayenne pepper)

  • 108克糖(88%红糖,12%白糖)

  • 30克鸡蛋

  • 129克黄油

  • 3/8茶匙橙香精(orange extract)

  • 1/2茶匙香草精

其次是山景城的,需要:

  • 167克通用面粉

  • 245克牛奶巧克力片

  • 0.6茶匙小苏打

  • 0.5茶匙盐

  • 0.125茶匙辣椒(cayenne pepper)

  • 127克糖(31%红糖,69%白糖)

  • 25.7克鸡蛋

  • 81.3克黄油

  • 0.12茶匙橙香精(orange extract)

  • 0.75茶匙香草精

细看确实基本每一种配料都有不少改动。

不知道这俩口味是否符合我们的胃口?

有意思的是,这篇研究中了当时的NeurIPS后,团队还专门又做了一批出来,在会议现场进行分发。

这不,就有人尝到了成品,还说真的很美味。

最后,有人看了这款贝叶斯优化饼干,表示迫不及待想在浓缩咖啡上试试了~

你有没有做过类似有意思的跨学科研究?

论文地址:
https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46507.pdf

参考链接:
https://twitter.com/lauretig/status/1569147105490395136?s=46&t=kXyj0z9hCjlXlxrs_Ze_XA

用贝叶斯优化做巧克力曲奇,谷歌这项研究登上了NeurIPS相关推荐

  1. NeurIPS 2022 | 谷歌用贝叶斯优化做巧克力曲奇!还跟自家食堂签了约...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 丰色 发自 凹非寺 转载自:量子位(QbitAI) 用贝叶斯优化来 ...

  2. 傅里叶变换取代Transformer自注意力层,谷歌这项研究GPU上快7倍、TPU上快2倍

    视学算法报道 转载自:机器之心 机器之心编辑部 来自谷歌的研究团队表明,将傅里叶变换取代 transformer 自监督子层,可以在 GLUE 基准测试中实现 92% 的准确率,在 GPU 上的训练时 ...

  3. 傅里叶变换才是本质?谷歌这项研究GPU上快7倍、TPU上快2倍

    转载自:机器之心 来自谷歌的研究团队表明,将傅里叶变换取代 transformer 自监督子层,可以在 GLUE 基准测试中实现 92% 的准确率,在 GPU 上的训练时间快 7 倍,在 TPU 上的 ...

  4. 高清还原破损视频,参数和训练时间减少三分之二,台大这项研究登上了BMVC 2019...

    郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 小刺猬的视频,被泼了墨. 用AI"清洗"一下,就干净了. 支离破碎的滑板视频. 这下变了回来. 一位黑哥哥在撸巨型老 ...

  5. 贝叶斯优化 Bayesian Optimization

    贝叶斯优化算法(BOA) 贝叶斯优化算法BOA 背景介绍 贝叶斯优化流程 形式化 算法流程 核心算法 Prior Function Acquisition Function 参考文献 背景介绍 当前的 ...

  6. python 超参数_完整介绍用于Python中自动超参数调剂的贝叶斯优化

    完整介绍用于Python中自动超参数调剂的贝叶斯优化-1.jpg (109.5 KB, 下载次数: 0) 2018-7-4 23:45 上传 调剂机器学习超参数是一项繁琐但至关重要的任务,因为算法的性 ...

  7. 基于贝叶斯优化的离散组合序列问题调研

    基于贝叶斯优化的离散组合序列问题调研 标题 发表时间 作者 期刊 引用量 摘要 问题 心得体会 Applying Bayesian Approach to Combinatorial Problem ...

  8. 机器学习:贝叶斯和优化方法_Facebook使用贝叶斯优化在机器学习模型中进行更好的实验

    机器学习:贝叶斯和优化方法 I recently started a new newsletter focus on AI education. TheSequence is a no-BS( mea ...

  9. 【机器学习】一文看懂贝叶斯优化/Bayesian Optimization

    点击上方,选择星标,每天给你送干货! 来自:AI部落联盟 今天想谈的问题是:什么是贝叶斯优化/Bayesian Optimization,基本用法是什么? 本文的定位是:帮助未接触.仅听说过.初次接触 ...

最新文章

  1. Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点?
  2. openOffice word转pdf,pdf转图片优化版
  3. (0094)iOS开发之本地文件预览的三种方法(2)
  4. AWK增强的文本处理shell特征--AWK完全手册
  5. [转]C#连接操作mysql实例
  6. 服务器机房 维护,服务器机房建设与管理维护.pdf
  7. java写hive自定义函数_hive自定义函数的实现和执行
  8. spring boot 集成 log4j 解决与logback冲突问题
  9. 交换二叉树中所有结点的左右子树的位置
  10. 安卓权威编程指南 挑战练习 20.9 创建多版本主题
  11. java实现英文文件单词搜索系统_java对于目录下文件的单词查找操作代码实现
  12. JS 中引号多级嵌套
  13. 附录G 标准模板库方法和函数
  14. [转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
  15. 480位禅宗大德悟道因缘
  16. PCM音频压缩A-Law算法,uLaw
  17. UVA11210 Chinese Mahjong
  18. 软件开发实习做什么_为什么要有开发人员实习时间
  19. 正点原子stm32视频教程第7~10节知识总结
  20. asp.net简单实现导出excel报表

热门文章

  1. 博图1200 1+2+3+....100
  2. 计算机教师职业幸福感,教师的职业幸福感
  3. C#动态生成控件并布局
  4. 三个绘图工具类详解Paint(画笔)Canvas(画布)Path(路径)
  5. Next.js SSG: 使用 getStaticProps 函数生成静态页面
  6. 一些著名的软件都用什么语言编写的?
  7. HTTPS的链接建立、通信过程,SSL加密
  8. php7使用curl扩展
  9. 中信国健临床通讯2011年4月期EULAR专刊目录
  10. Docker孵化的5个开源项目