当前位置: 首页 > 编程日记 > 正文

人工智能进军餐饮:AI调酒,越喝越有

640?wx_fmt=jpeg


作者 | 神经小姐姐

来源 | 转载自HyperAI超神经(ID:HyperAI)


导读:“吃”,现在已经成了一种文化,对食物的不懈追求,可以说是人类历史的一种推动力。从烹饪的进化,到现在花样百出的美食,食物搭配又会出现哪些新意,对于食物相克的盲从,也预示着新的方法和技艺要大显身手了。


人类文明的发展,食物和烹饪的意义重大。从食用熟食、耕作农作物,到加入调料、丰富烹饪方式、发明冷藏等,一些列的饮食工具和手段的发明,都是为了提高生活水平。


饮食文化的书籍《食物的历史》中,就讨论到食物的第一次革命,才带动了人类一次大的进化。其中一个重要节点是烹饪的出现,书里描写了这样一个吃的场景:先把柠檬汁挤在牡蛎上,在小火烘烤下,它的质地、口感和味道都发生了奇妙的变化...


640?wx_fmt=jpeg

有观点认为:烹饪是人类进化的特别利器


从火的利用,到烹饪的出现,食物的制作过程逐渐变成了一种魔法,吃的花样也越来越多,食物早已不是生存和生活的充饥之物,而是在各色搭配制作中,成为了一种艺术和追求。


美食的进阶之路,从搭配开始


随着「吃」的内容越来越精致,吃饱了的人类,就开始思考这类问题:哪些食物可以放在一起吃?哪些东西搭配在一起更好吃?


640?wx_fmt=jpeg

知名段子手「毕导」研究过,香蕉与冬枣的体积比在 2:1 左右,同时吃的口感达到了恶心的巅峰



要解决这个问题,一般的吃货靠的是传承下来的厨房规则,资深一点的吃货,则是借鉴美食家或者高级菜谱的做法。但这类方法对于种类繁多的食物来说,覆盖面窄,而且都是经验为主,主观性偏强。


一个好消息是,我们现在有了新的选择:可以用神经网络的方法作出搭配,告诉你怎样才最好吃。


在近段时间,一篇叫做《KitcheNette: Predicting and Recommending Food Ingredient Pairings using Siamese Neural Networks》(https://arxiv.org/abs/1905.07261)的论文,就叙述了高丽大学实验团队的食材智能搭配系统,以及在食物搭配上的硬核研究。


KitchenNette :用算法解开食物搭配的奥秘


这个系统是基于孪生神经网络(Siamese Neural Networks)的一个模型框架。


640?wx_fmt=jpeg


孪生神经网络用于衡量两个输入的相似程度。它有两个输入,分别传输进两个神经网络,以此将输入映射到新的空间,形成新的空间中的表示。然后通过对 Loss 的计算,评价两个 Input 的相似度。


而这个研究中,研究人员来开发了的食物搭配模型 KitchenNette ,将两种食材作为输入,能计算出它们搭配在一起的合适度。最终的表现成从 -1 到 1 之间的分数,分数越高表示这两种食物的搭配越好吃。


为了训练 KitchenNette ,他们制作了一个美食数据集 Recipe1M,通过采集了大量的食谱信息,收录了多种食物的文本和图片,包含了了成分列表和配方说明。

640?wx_fmt=png 依据数百万个菜谱和配对统计


从这些食谱中,经过词向量提取等手法,过滤得到了食物,并进行了配对操作,最终共获得了 356,451 个有效的已知搭配,剩下的 6,003,500 个食物对,则是非常见或者未出现过的,作为测试集使用。


他们还使用 Im2Recipe 算法,从图片中提取出食材名称。


而 KitchenNette 模型的架构由两个主要组件构成。


640?wx_fmt=jpeg


KitchenNette 模型用Gin酒和汤力水进行评分测试


第一个是使用孪生神经网络的「成分表示组件」(Ingredient Representation Component ),其中有权重相同的两个多层感知器(MLP),各自接收食材的输入。每个 MLP 有两个完全连接层,用于处理输入的成分向量。


第二个组件是「配对分数预测组件」(Pairing Score Prediction Component),采用 Deep& Wide Layers,进行评分流程。在 Deep Layer,两层学习表示向量被连接,并传递给另一个计算两种成分联合代表的 MLP,用来提取语义特征,而 Wide Layer 用来抓取稀疏特征。


搭建好模型后,先让模型学习已标注的食物搭配,从 30 万个已经评好分数的配对中,分析和找出「好搭配」的规律,然后用剩下的 95% 的食物组合,进行最后的测试。


640?wx_fmt=png

不同搭配的组合评定分数:左侧为常见搭配的评分,右侧为不常见搭配


根据他们的论文,只需对 KitchenNette 输入两种食物,就给出是否合适配对的判定分数,而且这个结果好于其他的模型。


调酒和糕点,最适合模型搭配!


为了评估这个模型预测的准确性,他们进行了几种定性分析。


通过将已知的经典搭配输入,检测了模型能够给出中肯的分数;同时和其他的经典模型进行对比,发现 KitchenNette 的预测更要符合人们的饮食习惯,最后和美食家的推荐作比之后,发现判断的结果十分接近。


尤其是酒精饮品和糕点,他们都有标准化的配方成分,而能够更加精准的把控口味。


比如,「香槟+橙皮」以及「气泡酒+橙皮」的搭配得分较高(0.33-0.42),而「气泡酒+洋葱」和「普罗赛克+洋葱」这样奇怪的组合,得到了很低的分数。


640?wx_fmt=png

红酒、白酒、杜松子酒、清酒的最佳搭配建议,以及和另一工具的推荐结果对比

在英国布里斯托,另一支创新团队 TinyGiant 就专注于开发由 AI 制定的创新食物,这支团队截至目前为止,已经制作出了几款 AI 定制的鸡尾酒和纸杯蛋糕。


640?wx_fmt=jpeg

TinyGiant 制作出了四款 AI 的鸡尾酒


而对于这项研究的后续,研究者表示接下来会进一步作出优化,比如考虑食品成分的化学信息,使用百科全书食品成分的详细信息,以及更多「新颖」和「真实」的食谱,对模型进行训练,以推荐出更加多样化的食品成分配对。


640?wx_fmt=jpeg

TinyGiant 根据 AI 得出的结果,还定制了四种口味的纸杯蛋糕


近几年来,《舌尖上的中国》、《人生一串》等美食节目的大火,让我们看到了美食的惊人魅力,而现在看来,AI 或许会比我们更快地,打开美食搭配的新天地。


640?wx_fmt=gif


(*本文为 AI科技大本营转载文章,转载请微信联系原作者


精彩推荐



640?wx_fmt=png


推荐阅读

  • 不写一行代码,也能玩转Kaggle竞赛?

  • 一文读懂基于神经网络的图片风格转移

  • 50行Python代码,获取公众号全部文章

  • 收藏 | 49个Python学习资源

  • 库克回应乔纳森离职;微信新版本取消“语音转文字”功能;Mac Pro生产迁至中国 | 极客头条

  • 三十四载Windows崛起之路: 苹果、可视做过微软“铺路石”

  • 3大维度告诉你,为什么说比特币并非避险资产?

  • 黑客亲述: “倾家荡产,是你们的事! ”

  • 面试官:你简历中写用过docker,能说说容器和镜像的区别吗?


640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

相关文章:

LaTeX - 带圈数字

2019独角兽企业重金招聘Python工程师标准>>> 法I. by zepinglee \documentclass[UTF8]{ctexart} \XeTeXcharclass①1 \XeTeXcharclass②1 \XeTeXcharclass③1 \XeTeXcharclass④1 \XeTeXcharclass⑤1 \XeTeXcharclass⑥1 \XeTeXcharclass⑦1 \XeTeXcharclass⑧1 \Xe…

akcms折腾记

这几天闲着无聊,找cms折腾一下,先是搞了大名鼎鼎的dedecms,不过那繁琐真不是盖的,想修改个模板不知从哪里动手。虽然现在工作的后台也是由dedecms改过来的,但平时也就发发文章而已。 然后就找到了这个神器:…

VC++ OCX 控件注册

转自:http://www.cctry.com/thread-5334-1-1.html 方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx //注册netshare.ocx控件 regsvr32 /u netshare.ocx //解除netshare.ocx控件…

程序猿生存指南-4 借钱风波

借钱风波(10)临近春节,我的朋友圈被各个公司的年终奖刷屏。土豪互联网公司有送现金的,有送豪车的,还有送别墅的。它们享受着移动互联网的红利,赚得盆满钵满。不过翻看公司请媒体写的那些报道,就…

赛灵思:人工智能芯片发展方向与误区

演讲嘉宾 | 姚颂,赛灵思人工智能业务资深总监整理 | 夕颜人工智能发展过程中,算力是一个重要的因素,算力就像是 AI 的燃油,没有燃油,AI 哪也去不了。而为 AI 应用提供算力的,正是各种各样的芯片。而近几年&…

Python 多线程抓取网页 牛人 use raw socket implement http request great

Python 多线程抓取网页 - 糖拌咸鱼 - 博客园Python 多线程抓取网页最近,一直在做网络爬虫相关的东西。 看了一下开源C写的larbin爬虫,仔细阅读了里面的设计思想和一些关键技术的实现。1、larbin的URL去重用的很高效的bloom filter算法; 2、DN…

从特斯拉到英伟达,那些端到端自动驾驶研发系统有何不同?

作者 | 黄浴,奇点首席科学家兼总裁来源 | 转载自知乎专栏自动驾驶与视觉感知导读:近日,吴恩达的 Drive.ai 被苹果收购的消息给了自动驾驶领域一记警钟,但这个领域的进展和成果犹在。本文将介绍一些端到端的自动驾驶研发系统&#…

vc6中进行多行注释和反注释的方法

1、利用工具中自带的按钮实现: Tools-->Customize-->Add-ins and Macro Files-->将SAMPLE项选中-->Commands-->Category中选择Macros-->在Commands中将CommentOut拖到工具栏,再选中一个Images,点击OK即可。 这种方法是使…

一看就懂!【英雄联盟锐雯】与 Python 详解设计模式之门面模式

【网络配图】设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编写真正工程化;设计模…

无法挂载 NTFS格式的分区:mount: unknown filesystem type ‘ntfs’

问题: # mount –t ntfs /dev/sdb1 /mnt/usb mount: unknown filesystem type ‘ntfs’ 这是由于CentOS release 5.3(Final)上无法识别NTFS格式的分区。解决办法: 通过使用 ntfs-3g 来解决。 打开ntfs-3g的下载点http://w…

vs2008 ActiveX控件测试容器的生成以及调试ActiveX控件

1、ActiveX控件测试容器的生成:用TSTCON生成测试容器 http://msdn.microsoft.com/zh-cn/library/f9adb5t5(vvs.90).aspx 在搜索里搜索tstcon,双击TstCon文件夹,将此文件夹里的东西全部复制到另外一个新的空文件里,然后打开解决方案 tstcon.…

百度自动驾驶新突破:获首批T4牌照,升级Apollo 5.0,将进行复杂城市场景路测...

作者 | KYLE WIGGERS等编译 | 夕颜出品 | AI科技大本营(ID:rgznai100)最近,百度自动驾驶项目终于有了进展。先是上周悄然发布了 Apollo 的最新版本 Apollo 5.0,引入一些新功能;昨天下午,北京市自动驾驶测试…

折叠屏就要来了,适配逼死 Android 开发?

1. 异型屏还没适配好,折叠屏就要来了,Android 的碎片化,让开发者又多掉了不少头发。 北京时间 11 月 8 日,三星在旧金山向开发者发布了一款可折叠屏幕手机。并表示,新技术需要开发者调整其 App,以确保在手机…

nginx虚拟目录配置

2019独角兽企业重金招聘Python工程师标准>>> 今天搞了N久的虚拟目录配置,在几乎要放弃的时侯偶然看到一篇文章,将我的问题搞定 原贴地址:http://blog.sina.com.cn/s/blog_6c2e6f1f0100l92h.html 我的需求是这样的,系…

阿里达摩院刷新纪录,开放域问答成绩比肩人类水平,超微软、Facebook

出品 | AI科技大本营(ID:rgznai100)近日,由阿里巴巴达摩院语言技术实验室研发的 Multi-Doc Enriched BERT 模型在微软的 MS MARCO 数 据评测任务,Passage Retrieval Task(文档检索排序)和 Q&A Task&…

解决windows7下vs2008不能正常编译ActiveX控件的问题

在windows7系统中,vs2008环境下用MFC ActiveX Control生成的控件不能正常编译,但是在xp系统中却能正常编译,解决方法: 1、在windows7中编译,提示错误为:fatal error LNK1000: Internal error during IncrB…

什么是shell【TLCL】

常用命令 datecaldf——report file system disk space usagefree——display amount of free and used memory in the systemexit——退出终端Ctrl-Alt-F1 到 Ctrl-Alt-F6 访问后台终端会话,AltF7返回图形桌面转载于:https://www.cnblogs.com/songdechiu/p/9943599…

Linux终端的几个常用快捷方式,记下!

一、初识linux的终端种类:本地、远程    查看本终端命令:     #tty 命令,看到当前所处的终端     #(w)who 命令,看到系统中所有登录的用户 其中,tty 终端为表示在本地命令行模式下打开…

从0到1 | 文本挖掘的传统与深度学习算法

一、什么是文本挖掘?讨论文本挖掘之前,我们要先说一下数据挖掘的概念,因为文本挖掘是数据挖掘的一个分支。数据挖掘(Data Mining)指从大量的数据中通过算法搜索隐藏在其中信息的过程。而文本挖掘就是从文本数据中获取有…

window7系统中64位安装matalbR2009b后出现乱码的解决方案

转自:http://blog.csdn.net/shaoguangleo/archive/2010/11/29/6042194.aspx MATLAB 中默认的字体是 Monospaced (即等宽字体),这是一种非常适合用于显示程序源代码的字体。但Monospaced 是种逻辑字体,它在不同语言和操…

【电路】pmic芯片设计细节

VIO_IN供电https://e2e.ti.com/support/power-management/f/196/t/712146?tisearche2e-sitesearch&keymatchtps65916 Note that every GPIO will be configured as an input for the first 6ms after VCC is supplied, which is the time it takes for the device to init…

sql server 的一些记录

下面记录一些用到sql server查询时候用到的函数。 charindex,在一个表达式中搜索另一个表达式并返回其起始位置(如果找到)。http://msdn.microsoft.com/zh-cn/library/ms186323.aspx CHARINDEX ( expressionToFind ,expressionToSearch [ , start_locati…

[WPF] UserControl vs CustomControl

原文:[WPF] UserControl vs CustomControl介绍 WPF中有两种控件:UserControl和CustomControl,但是这两者有什么区别呢?这篇博客中将介绍两者之间的区别,这样可以在项目中合理的使用它们。 UserControl 将多个WPF控件(例如&#xf…

50行Python代码,获取公众号全部文章

作者 | 胖虎转载自Python3X(ID: python3xxx )爬取公众号的方式常见的有两种:通过搜狗搜索去获取,缺点是只能获取最新的十条推送文章。通过微信公众号的素材管理,获取公众号文章。缺点是需要申请自己的公众号。今天介绍…

解决Windows7下vs2008 Active control test container 不能运行的问题

按照:http://blog.csdn.net/fengbingchun/archive/2011/05/05/6398356.aspx 在windows7系统中,vs2008环境下用MFC ActiveX Control生成的控件不能正常编译,但是在xp系统中却能正常编译,解决方法: 1、在windows7中编译…

入门必备 | 一文读懂神经架构搜索

作者 | Md Ashiqur Rahman编译 | 刘静转载自图灵TOPIA(ID: turingtopia)近期谷歌大脑团队发布了一项新研究:只靠神经网络架构搜索出的网络,不训练,不调参,就能直接执行任务。这样的网络叫做WANN&#xff0c…

脚本化 tmux — LinuxTOY

脚本化 tmux — LinuxTOY脚本化 tmux2012-07-02 Toy Posted in TipsRSS昨天我在家试了下脚本化 tmux,其表现相当令人满意,只需稍加定制便可满足各种实际需要。这或许可以成为抛弃 GNU screen,改用 tmux 的又一个理由。该脚本先判断一个名为 c…

OpenCV像素点处理

转自:http://blog.csdn.net/hxgqh/archive/2011/02/23/6202001.aspx 获得像素点的值便可以更加灵活的进行图像处理,在OpenCV里可以通过cvGet2D()和cvSet2D()两个函数加上一个CvScalar结构体做到。OpenCV中,CvScalar结构为:typedef…

亲 , Zookeeper了解一下 : 概述

2019独角兽企业重金招聘Python工程师标准>>> 在学习的过程中,我们总需要一个来自灵魂的拷问: 为什么? 为什么会产生Zookeeper 这个问题有深度,那要从五百万年说起,在遥远的塞伯坦星球..... 扯远了... 在遥远在单机单服务的时代 , 想要扩展服务 , 只能增加硬件配置 …

wordpress jquery加载如何实现?

2019独角兽企业重金招聘Python工程师标准>>> 为什么写这篇文章? 因为之前在wordpress里面用jquery的时候没注意,这次因为要优化网站把没用的插件删了,结果发现有的jquery功能失效了,调试了许久才发现可能是jQuery没有定…