前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PizzaGAN:以前你教我做披萨饼,现在让我来教你

PizzaGAN:以前你教我做披萨饼,现在让我来教你

作者头像
深度学习与Python
发布2019-06-20 12:20:45
6390
发布2019-06-20 12:20:45
举报

你可能不会做披萨饼,但现在你的深度学习模型已经学会了。麻省理工学院最新发布的深度学习模型PizzaGAN通过基于组合层的GAN模型来学习如何训练GAN模型以识别制作披萨饼。 该模型分为两部分:

  • 给定披萨的输入图像,训练PizzaGAN识别披萨上的配料
  • 给定披萨的输入图像,训练PizzaGAN提取出披萨上的配料

披萨饼配料表

在尝试训练深度神经网络制作披萨之前,我们首先需要弄清楚制作披萨的步骤和材料。虽然没有亲自做过或者见过披萨饼的制作过程,但总是缺不了面团,酱汁和奶酪的,然后添加其他的调料、香肠等等。

一旦我们明确目标流程,我们就可以开始训练一个模拟这些步骤的实际模型。例如,假设我们要做一个意大利辣香肠披萨,那么我们可以通过一系列步骤来模拟从我们的原始披萨到新的披萨的过程:

(1)明确我们要做的东西 - 意大利辣香肠披萨

(2)设定预期目标 - 在披萨上添加橄榄

添加橄榄后,另一位朋友可能会说:“我不喜欢意大利辣香肠,让我们用火腿!”这次我们有3个步骤:

(1)明确当前状态 - 意大利辣香肠和橄榄披萨

(2)第一个步骤 - 去掉意大利辣香肠

(3)第二个步骤 - 添加火腿

GAN如何制作比萨饼

数据集

用于训练PizzaGAN的比萨饼数据集由9213张图片组成,每张图片中都有一个披萨。 每个图像都有一组相应的标签,用于描述披萨上的配料,不包括面团,酱汁和基础奶酪。 例如如果披萨图像上有火腿和蘑菇,则该图像的标签为[火腿,香菇]。执行训练时,输出分类是单热编码的。 因此,使用火腿和蘑菇披萨,输出矢量的火腿和蘑菇元素设置为1.0,而其余元素设置为0.0。

发生器网络 - 添加和删除

回想一下构建披萨饼模型的一组连续步骤。 如果我们想要将香肠披萨改为火腿披萨,我们需要移除香肠,在后再添加火腿,所以我们需要一个网络来完成这部分功能。

因此训练发生器网络以模拟配料的添加或移除时, 给定披萨的输入图像,发生器预测披萨的输出图像,由于每个网络只能执行一个操作,所以我们需要训练两个网络,一个用于移除一个用于添加。一对PizzaGAN发生器的例子 如下图所示, 一个用于添加意大利辣香肠,另一个用于去除它。

由于PizzaGAN生成器的输入和输出图像之间的差异只是配料不同,因此输入和输出标签向量的分类向量元素的差异为1。

识别器 - 识别比萨饼配料

PizzaGAN发生器模型用于添加和删除披萨上的配料,那么我们需要训练识别器来识别当前披萨上的配料。给定比萨饼的输入图像,识别器网络进行一组多标签分类。 输出向量的每个元素对应于披萨饼上的配料元素。

例如在下图中,PizzaGAN识别器预测比萨饼上有意大利辣香肠,蘑菇和橄榄。 对应的这些配料的输出向量的元素被预测为1.0(或者高于用户设置阈值的某个值)。

PizzaGAN识别结果

基于识别器预测比萨饼上的配料和发生器能够添加和移除配料,PizzaGAN能够以非常高的准确度构建和分解比萨饼的图像。

参考

https://towardsdatascience.com/how-to-make-a-pizza-with-deep-learning-f3548e249dc9

深度学习与Python,专注于深度学习、机器学习前沿知识与资讯

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习与python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GAN如何制作比萨饼
    • 数据集
      • 发生器网络 - 添加和删除
        • 识别器 - 识别比萨饼配料
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档