一种基于条件-生成式对抗网络的食谱生成方法及系统

文档序号:24809727发布日期:2021-04-23 17:47阅读:187来源:国知局
一种基于条件-生成式对抗网络的食谱生成方法及系统
一种基于条件

生成式对抗网络的食谱生成方法及系统
技术领域
1.本发明涉及网络训练以及食谱生成技术领域,更具体的说是涉及一种基于条件

生成式对抗网络的食谱生成方法及系统。


背景技术:

2.目前,随着人们生活水平的不断提升,越来越多的食材进入了家庭厨房,为了烹制出美味,很多人选择按照食谱进行食材处理,但是,现有的食谱数量有限,很难满足不同口味需求、不同功效需求的人群使用,更无法根据人们的个性化定制要求针对性的生成特定的食谱。
3.因此,如何提供一种更加人性化、更有针对性、功能更加完善的食谱生成方法是本领域技术人员亟需解决的问题。


技术实现要素:

4.有鉴于此,本发明提供了一种基于条件

生成式对抗网络的食谱生成方法及系统,解决了现有的食谱生成方式无法满足人们个性化定制要求的问题。
5.为了实现上述目的,本发明采用如下技术方案:
6.一方面,本发明提供了一种基于条件

生成式对抗网络的食谱生成方法,该方法包括:
7.获取数据:通过网络爬虫工具从开放的网络平台中获取原始食谱数据;
8.数据清洗:对获取到的所述原始食谱数据进行清洗和整理,并转换成满足模型训练输入要求的数据格式;
9.数据增强:从数据清洗后的原始食谱数据中随机删除若干个食材,得到真实食谱数据,并将所述真实食谱数据和所述原始食谱数据组成食谱数据集;
10.构建模型:基于条件

生成式网络(conditional generative adversarial networks,cgan)构建食谱生成模型,将所述食谱数据集输入所述食谱生成模型进行训练,并对训练后的食谱生成模型进行测试;
11.生成食谱:将食材信息和条件信息输入测试后的食谱生成模型,得到目标食谱。
12.本发明在食谱生成过程中,引入了条件

生成式网络,cgan在生成器和判别器的建模中引入了条件变量,使得cgan中的生成器能够了解相应条件下样本概率分布的映射关系。如果条件变量是类别标签,可以将cgan视为将生成式对抗网络(generative adversarial networks,gan)转变为监督模型的一种改进。
13.进一步地,所述食谱生成模型包括基于编码

解码的生成器以及基于卷积神经网络的判别器,所述基于编码

解码(encoder

decoder)的生成器的输出端与所述基于卷积神经网络(convolutional neural networks,cnn)的判别器的输入端相连。
14.进一步地,所述构建模型步骤,具体包括:
15.基于条件

生成式网络,构建得到食谱生成模型;
16.将食谱数据集中的食谱序列和标签序列输入食谱生成模型;
17.对输入的食谱序列和标签序列引入注意力机制;
18.更新生成器参数,生成多个假食谱序列;
19.更新判别器参数,输出对输入的食谱序列与所述假食谱序列的真实性判别概率。
20.本发明对cgan的生成器结构进行改进。cgan的生成器采用基于长短期记忆网络(long short term memory networks,lstm)的编解码(encoder

decoder)框架。由于encoder

decoder具有局限性,我们在encoder

decoder框架中引入注意力机制(attention mechanism)。注意力机制让网络学会只关注特定的部分,提高了encoder

decoder模型的信息利用率,提升任务的效果与效率。
21.进一步地,所述食谱序列的表达式为:
22.x
m
={x1,x2,

,x
t
}
23.其中,x
m
为食谱序列,x
t
为第t个食材。
24.进一步地,所述标签序列包括口味标签和功效标签等标签信息。
25.另一方面,本发明还提供了一种基于条件

生成式对抗网络的食谱生成系统,该系统包括:
26.数据获取模块,用于通过网络爬虫工具从开放的网络平台中获取原始食谱数据;
27.数据清洗模块,用于对获取到的所述原始食谱数据进行清洗和整理,并转换成满足模型训练输入要求的数据格式;
28.数据增强模块,用于从数据清洗后的原始食谱数据中随机删除若干个食材,得到真实食谱数据,并将所述真实食谱数据和所述原始食谱数据组成食谱数据集;
29.模型构建模块,用于基于条件

生成式网络构建食谱生成模型,将所述食谱数据集输入所述食谱生成模型进行训练,并对训练后的食谱生成模型进行测试;以及
30.食谱生成模块,用于将食材信息和条件信息输入测试后的食谱生成模型,得到目标食谱。
31.经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于条件

生成式对抗网络的食谱生成方法及系统,通过条件

生成式对抗网络搭建食谱生成模型,并在cgan生成器的一端引入编码

解码框架,在编码

解码框架中引入注意力机制,在很大程度上提升了模型训练精度和训练效率,同时,本发明还运用数据增强技术,增加模型训练的数据量,进一步提升了模型的准确率,使得最后输出的目标食谱更接近用户需求。
附图说明
32.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
33.图1为本发明提供的一种基于条件

生成式对抗网络的食谱生成方法的实现流程示意图;
34.图2为本发明实施例中基于条件生成对抗网络的食谱生成模型的原理示意图;
35.图3为本发明提供的一种基于条件

生成式对抗网络的食谱生成系统的结构架构
示意图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.一方面,参见附图1,本发明实施例公开了一种基于条件

生成式对抗网络的食谱生成方法,该方法包括:
38.s1:获取数据:通过网络爬虫工具从开放的网络平台中获取原始食谱数据。
39.s2:数据清洗:对获取到的原始食谱数据进行清洗和整理,并转换成满足模型训练输入要求的数据格式。
40.s3:数据增强:从数据清洗后的原始食谱数据中随机删除若干个食材,得到真实食谱数据,并将真实食谱数据和原始食谱数据组成食谱数据集。
41.为了扩充数据量,提升模型生成效果,本实施例对数据进行数据增强。增强的方式是随机删去每道食谱中的若干食材,将得到的新食谱作为真实食谱,和原始食谱一起作为食谱数据集。
42.s4:构建模型:基于条件

生成式网络(conditional generative adversarial networks,cgan)构建食谱生成模型,将食谱数据集输入食谱生成模型进行训练,并对训练后的食谱生成模型进行测试。
43.具体地,本实施例中构建模型的步骤,具体包括:
44.s401:基于条件

生成式网络,构建得到食谱生成模型;
45.s402:将食谱数据集中的食谱序列和标签序列输入食谱生成模型;
46.s403:对输入的食谱序列和标签序列引入注意力机制;
47.s404:更新生成器参数,生成多个假食谱序列;
48.s405:更新判别器参数,输出对输入的食谱序列与假食谱序列的真实性判别概率。
49.本实施例中食谱生成模型的目的是学习生成器在样本数据(即真实食谱)上的分布函数pg,真实食谱的分布函数为pdata。食材序列与味道标签一起作为encoder阶段的lstm模型的输入,编码后得到固定维数的隐藏层向量。然后将隐藏层向量输入到decoder阶段的lstm中,并结合t

1时刻的输出,生成t时刻的隐藏层向量,最后解码得到特定条件下生成的食谱序列y。
50.具体地,参见附图2,食谱生成模型包括基于编码

解码的生成器以及基于卷积神经网络的判别器,基于编码

解码(encoder

decoder)的生成器的输出端与基于卷积神经网络(convolutional neural networks,cnn)的判别器的输入端相连。先将食谱序列(即噪声)和标签(序列)输入生成器,并引入注意力机制,得到生成食谱和标签,并将数据增强后的真实数据中的真实食谱和标签与生成食谱和标签进行拼接,一起作为训练数据对模型进行训练,并将训练后的数据输入判别器,再利用输出的真实性判别结果对生成器进行调优。
51.其中,encoder编码过程的具体方案为:
52.食谱x中第i个食材记为x
i
,食谱序列可以表示为x
m
={x1,x2,

,x
t
}。标签序列为
x
lable
。食谱序列和标签序列一起作为输入。然后,将其顺序输入到encoder阶段的lstm中,每个时间步t输入一个词向量,当前时刻t的隐藏层向量r
t
是由t

1时刻的隐藏层向量r
t

1和当前时刻的输入x
t
共同决定。
53.decoder解码过程的具体方案为:
54.在引入注意力机制后,在decoder解码端生成每一步输出时,都会选择性地从已编码向量序列中选择最重要的部分,从而生成语义向量c1,c2,

,c
m
。模型的每一步输出都能通过注意力机制来对有用的信息产生特别的注意,进而提升信息利用率。
55.下面对基于cnn的判别器进行详细说明:
56.判别器的本质是对真实样本和生成样本进行局部特征提取并进行区分。因此判别器采用卷积神经网络(convolutional neural networks,cnn)。cnn主要由输入层、卷积层、池化层、全连接层和输出层组成。本实施例将真实样本和生成样本与条件标签进行拼接后作为判别器的输入。判别器不仅需要确定所生成的食谱与真实食谱之间的相似度,而且还需要确定所生成的食谱是否满足特定条件。
57.训练cgan的过程中,生成器与判别器的训练往往是不平衡的,本实施例采用每训练k次判别器,同时训练1次生成器的策略。在生成器中加入条件信息(例如口味标签、功能需求等),可以指导生成器生成高质量食谱。
58.本实施例使用随机梯度下降优化算法训练网络,cgan训练食谱生成模型的具体代码及含义解释如下:
59.输入:{x
(1)
,x
(2)
,...,x
(m)
}//含有m个食谱的食谱序列
60.{c
(1)
,c
(2)
,...,c
(m)
}//条件信息x
lable
61.2 for i=0

n{
62.//注意力机制,对输入序列引入注意力机制,计算att分布
63.α
i
=p(z=i|x,q)
[0064][0065]
其中,z是定义的注意力变量,q为查询变量,用于查找并选择食谱序列x中的信息,z=i表示选择第i个信息,α
i
表示选择第i个食材的概率。
[0066]
//更新生成器参数θ
g
以最大化生成器的损失函数v
[0067][0068]
利用梯度下降法更新生成器的参数:
[0069][0070]
生成器生成m个假食谱序列{x
(1)
,x
(2)
,...,x
(m)
}
[0071]
3 for j=1

k
[0072]
4//更新判别器参数θ
d
以最大化判别器的生成函数v’[0073][0074]
判别器输出对输入食谱的真实性判别概率
[0075]
5 end
[0076]
6 end
[0077]
7 return false;
[0078]
上述att分布为注意力分布或概率分布,计算方法即为att(x,q)的计算公式。
[0079]
上述过程中,提到的判别器的生成函数v’的表达式为:
[0080][0081]
s5:生成食谱:将食材信息和条件信息(例如口味、功效等)输入测试后的食谱生成模型,得到目标食谱。
[0082]
下面通过一些具体的信息进一步展示上述方案的实现原理,具体数据请参见下表1:
[0083]
表1模型输入输出数据对照表
[0084][0085]
上表1中示出的得分数据,是利用自然语言领域常用的bleu(bilingual evaluation understudy)方法计算得到的。
[0086]
另一方面,参见附图3,本发明实施例还公开了一种基于条件

生成式对抗网络的食谱生成系统,该系统包括:
[0087]
数据获取模块1,用于通过网络爬虫工具从开放的网络平台中获取原始食谱数据;
[0088]
数据清洗模块2,用于对获取到的原始食谱数据进行清洗和整理,并转换成满足模型训练输入要求的数据格式;
[0089]
数据增强模块3,用于从数据清洗后的原始食谱数据中随机删除若干个食材,得到真实食谱数据,并将真实食谱数据和原始食谱数据组成食谱数据集;
[0090]
模型构建模块4,用于基于条件

生成式网络构建食谱生成模型,将食谱数据集输入食谱生成模型进行训练,并对训练后的食谱生成模型进行测试;以及
[0091]
食谱生成模块5,用于将食材信息和条件信息输入测试后的食谱生成模型,得到目标食谱。
[0092]
不难发现,本发明实施例提供的上述方案,与现有技术相比,具有如下优点:
[0093]
(1)在cgan生成器一端,引入encoder

decoder框架,并在encoder

decoder框架中引入注意力机制,改进了cgan模型结构,提升了模型的可靠性;
[0094]
(2)运用数据增强技术,增加训练数据量,提升cgan模型准确率;
[0095]
(3)提出了新的食谱生成评价机制,更能满足人们个性化的食谱定制需求。
[0096]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0097]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1