CN110659420B - 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法 - Google Patents
一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法 Download PDFInfo
- Publication number
- CN110659420B CN110659420B CN201910912761.7A CN201910912761A CN110659420B CN 110659420 B CN110659420 B CN 110659420B CN 201910912761 A CN201910912761 A CN 201910912761A CN 110659420 B CN110659420 B CN 110659420B
- Authority
- CN
- China
- Prior art keywords
- layer
- node
- data
- menu
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 25
- 238000012549 training Methods 0.000 claims description 48
- 239000013598 vector Substances 0.000 claims description 44
- 235000013305 food Nutrition 0.000 claims description 29
- 238000003062 neural network model Methods 0.000 claims description 27
- 239000000463 material Substances 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 20
- 235000012054 meals Nutrition 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 235000016709 nutrition Nutrition 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 13
- 230000035764 nutrition Effects 0.000 claims description 13
- 238000004140 cleaning Methods 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 claims description 3
- 210000002569 neuron Anatomy 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 2
- 238000009401 outcrossing Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 7
- 239000000306 component Substances 0.000 description 6
- 235000005911 diet Nutrition 0.000 description 6
- 230000037213 diet Effects 0.000 description 5
- 208000017667 Chronic Disease Diseases 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 206010020772 Hypertension Diseases 0.000 description 3
- 206010012601 diabetes mellitus Diseases 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 235000015097 nutrients Nutrition 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 235000013311 vegetables Nutrition 0.000 description 3
- 239000003814 drug Substances 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000001631 hypertensive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 235000021048 nutrient requirements Nutrition 0.000 description 2
- 235000015277 pork Nutrition 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000137 annealing Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 235000015278 beef Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 235000013339 cereals Nutrition 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000378 dietary effect Effects 0.000 description 1
- 235000015872 dietary supplement Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 235000004280 healthy diet Nutrition 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 235000004213 low-fat Nutrition 0.000 description 1
- 235000013372 meat Nutrition 0.000 description 1
- 235000019198 oils Nutrition 0.000 description 1
- 235000018102 proteins Nutrition 0.000 description 1
- 102000004169 proteins and genes Human genes 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 235000013619 trace mineral Nutrition 0.000 description 1
- 239000011573 trace mineral Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H20/00—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
- G16H20/60—ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to nutrition control, e.g. diets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Nutrition Science (AREA)
- Medical Informatics (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Epidemiology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法,首先对蒙特卡洛搜索树进行构建并初始化和对深度神经网络进行构建与训练,以上步骤完成后,预测数据会被同时输入到蒙特卡洛搜索树与深度神经网络模型中,经过两个模型计算并输出结果,最后合并两者作为最后的模型输出,完成个性化配餐。本发明针对个性化配餐,在海量菜谱库情况下,解决个性化、效率性、鲁棒性等问题。
Description
技术领域
本发明涉及人工神经网络分类及智能算法相结合技术领域,具体涉及一种深度智能的营养配餐方法。
背景技术
从“五谷为养,五果为助,五畜为益,五菜为充”的《黄帝内经》、“药补不如食补”的中医经验积累、“民以食为天”的老百姓民间流传,到“营养金字塔”的中国营养学会食物指南,可见营养配餐无处不在。营养配餐是一种科学健康的饮食方式,它以科学的营养理论为指导,建议对主食类、蛋白类、蔬果类、油脂类等均衡摄入,通过配合丰富多样的食材,以达到平衡营养、保持健康的效果。
依托互联网信息化的技术,近年来涌现出大量营养配餐软件与配餐系统,其核心为配餐方法。目前的配餐方法大部分是基于智能算法来解决,步骤为分析配餐的具体需求,建立线性规划模型,定义好目标函数及约束条件,基于最优化的设计算法,例如模糊优化、蚁群算法、遗传算法、退火算法等,最后求解最优化问题。这种方法的过程对于工程实现与落地过于复杂,例如过程中会思考到“什么是最优菜谱标准?”。另外,对于高生活质量要求的今天,更多消费者开始提出更个性化配餐要求,例如饮食热量平衡、慢性疾病饮食、个人生活习惯等等。
发明内容
针对现有技术的不足,本发明旨在提供一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法,针对个性化配餐,在海量菜谱库情况下,解决个性化、效率性、鲁棒性等问题。
为了实现上述目的,本发明采用如下技术方案:
一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法,包括如下步骤:
S1、基于菜谱库构建蒙特卡洛搜索菜谱树:
S1.1、由营养专业人员进行菜谱收集、分类整理和审核后形成菜谱库;
S1.2、根据步骤S1.1形成的菜谱库构建菜谱树;
所述菜谱树设置为五层;第一层为成份层,用于构造食材的成份数据;第二层为食材层,用于构造食材数据;第三层为菜谱层,用于构造菜谱数据;第四层为菜谱的分类层,表示各菜谱所属的分类;第五层看作为虚拟根节点;每层的节点i具有带条件概率分布评分k表示条件,x表示每个节点所表示的具体内容;
S1.3、通过模拟抽样的方法,冷启动菜谱树初始化参数;
其中,其中,v为节点v′的父节点,N(·)表示节点被访问的次数,Q(·)表示节点的累计收益值,即成功配餐次数;NN(·)表示深度神经网络;c是一个常量参数,通常设为α为UCT与深度神经网络之间的权重关系;在本步骤中,设置α=1;
初始化的步骤对所有条件k都需要遍历模拟一次,统计出各个k值下的评分的分布情况;
S2、构建深度神经网络模型:
S2.1、对数据样本进行预处理:
S2.2、确定深度神经网络模型结构,所述深度神经网络模型包括输入层、嵌入层、特征交叉层、关注网络层、隐含层、输出层;所述输入层用于将输入数据进行数据向量化;所述嵌入层用于将向量映射到实数域表示的空间;所述特征交叉层用于进行特征的交叉组合;所述关注网络层用于对各个特征和特征组合进行关注网络计算;所述隐含层用于对关注网络层的计算结果进行隐含计算;输出层用于输出最终结果;
S2.3、深度神经网络模型训练;
S3、综合深度神经网络模型和蒙特卡洛搜索菜谱树完成个性化配餐:
S3.1、在蒙特卡洛搜索菜谱树搜索阶段,从输入的预测数据中抽取蒙特卡洛搜索菜谱树的节点的约束条件k,例如高血压风、糖尿病风险等等;基于约束条件k,从虚拟根节点开始,每一层都选择UCT值最大的节点并展开该节点的下一层,一直到菜谱层,最终获取该层的所有菜谱分布UCTi(x|k);
在深度神经网络模型预测阶段,在输入层把预测数据经过清洗,转化为深度神经网络的输入格式,然后嵌入层、特征交叉层、关注网络层、隐含层分别对输入数据依次进行嵌入处理、特征组合、关注网络和隐含计算,经输出层输出计算结果,并获取前S个菜谱,得到另一个菜谱分布NN(x);
S3.5、模拟配餐:遍历集合food_set中的食材,依设定的个性化条件计算食材的各个成份的量,试图模拟配餐;
S3.6、配餐反馈:从当前节点自下向上反馈蒙特卡洛搜索菜谱树节点,对节点访问参数加1;然后进行营养配餐的验证判断是否满足设定的条件,如果全部满足,表示成功配餐,对节点的价值变量Q进行修改,反馈Q值加1,否则任一项不满足,表示配餐不成功,对节点的价值变量Q进行修改,反馈Q值加0,并获取下一个菜谱直至成功配餐为止;
S3.7、输出成功配餐的菜谱。
进一步地,步骤S1.3中,初始化的步骤对所有条件k都需要遍历模拟一次,统计出各个k值下的评分的分布情况,每次的过程是基于传统的蒙特卡洛搜索树进行:
2)展开:当选择了某个节点之后,将下一层进行展开;
3)模拟:当选择最后成份层的节点之后,把各成份取出,按照设定的个性化条件进行模拟配餐;
4)反馈:判断模拟配餐的结果,看是否满足个性化条件完成一轮配餐并向上回溯反馈结果,如果配餐成功,反馈节点评分为1,否则反馈节点评分为0;
S1.4、判断菜谱树是否初始化完成,如果完成,初始化结束,否则转至步骤S1.3。
进一步地,步骤S2.1中,所述预处理包括对数据进行清洗、集成、变换和归约、处理数据空缺值、噪声数据;另外,还包括连接数据离散化处理。
进一步地,步骤S2.2中,输入层对输入数据的处理过程如下:
1.1)定义好每个数据所属的域Fi,设共有C个域;
1.2)对域Fi进行独立one-hot编码vi;
1.3)构造多类域样本x=[v1,v2,v3,…,vn],其中[,]表示把多个向量以连接的方式合并成一个新向量。
更进一步地,步骤S2.2中,嵌入层的数据处理过程如下:
计算域Fi对应的特征向量ei,公式如下:
更进一步地,步骤S2.2中,特征交叉层的数据处理过程如下:
所有特征向量的组合计算采用全连接来计算:
定义交叉函数Bpq(·)如下:
其中,ep表示域Fp嵌入转换后的向量,eq表示域Fq嵌入转换后的向量;Bp,q表示Fp与Fq交叉之后的新特征;表示ep变换的学习参数矩阵,表示eq变换的学习参数矩阵,R表示实数集;bpq表示学习参数;
最后,特征交叉层中,特征交叉结果表示为交叉矩阵H:
H=tanh(stack(B0,0,B1,1,B1,2,...,B1,C,B2,1,...,BC,C));
更进一步地,步骤S2.2中,关注网络层的数据处理过程如下:
为获取ai,j,本引入多层感知机(MLP),其形式化定义如下:
更进一步地,步骤S2.2中,所述隐含层按如下公式对数据进行计算:
l=Re LU(W5c+b5)
其中c∈Rt表示关注机制的组合结果,t代表隐含层规模,b5∈R表示学习参数。
更进一步地,步骤S2.2中,所述输出层的数据处理过程如下:
对于多分类的输出层,多个神经元的输出映射到(0,1)的区间内,采用Softmax作为激活函数:
o=soft max(W6l+b6)
其中l∈Rt表示隐含层的输出结果,W6∈Rt×s,t代表隐含层规模,s表示食谱数,b6∈R表示学习参数。
进一步地,步骤S2.3的具体过程如下:
S2.3.1、探索性训练
S2.3.1.1、清洗样本数据;
S2.3.1.2、设置深度训练参数:对于学习率lr、迭代次数num_epochs、每批次大小batch_size设置范围及步长,枚举离散优化器Optimizers={SDG,Momentum,NesterovMomentum,AdaGrad,RMSProp,Adam};
S2.3.1.3、数据划分为训练集与测试集,并构建相关数据生成器;
S2.3.1.4、设置最大的搜索次数L;
S2.3.1.5、随机从各个指标中获相关参数值;
S2.3.1.6、遍历相关参数集合并训练模型,完成训练后保存模型;
S2.3.1.7、采用测试集数据基于准确率指标估计模型;
S2.3.1.8、如果当前模型比最优化模型准确率高,更新当前模型为最优模型;
S2.3.1.9、判断是否满足最大搜索次数L,如果是,搜索结束,输出最优化模型及对应参数lr′、num_epochs′、batch_size′、optimizers',否则,转至步骤S2.3.1.5;
S2.3.2、正式训练:
S2.3.2.1、清洗样本数据;
S2.3.2.2、设置探索性训练阶段得到的最优化模型参数:lr′、num_epochs′、batch_size′、optimizer′;
S2.3.2.3、构建训练数据生成器;
S2.3.2.4、训练模型,基于损失函数更新模型参数;
S2.3.2.5、训练结束,保存最终的深度神经网络模型。
本发明的有益效果在于:
1、深度人工神经网络与逻辑性相结合。与基于纯深度人工神经网络相比,本发明增加了蒙特卡洛搜索树,打破只采用传统人工神经网络黑盒子观念并植入可推理逻辑性;同时,蒙特卡洛搜索树可解决海量菜谱的效率问题;引入基于蒙特卡洛搜索树模型,可分析与挖掘配餐与慢性病条件关系,同时,也可以分析菜谱库的效用性;
2、深度学习模型由特征组合、关注网络相结合组成。特征组合可有效地发现特征交叉组合而成的新特征对配餐的作用性分布;而对于关注网络,用来计算特征以及特征组合的新特征对配餐的权重值定量性,用作特征与结果相关性解释。
附图说明
图1为本发明实施例的实施流程图;
图2为本发明实施例的蒙特卡洛搜索菜谱树结构示意图;
图3为本发明实施例的深度神经网络模型结构示意图;
图4为本发明实施例的MLP-ATT结构示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
本实施例提供一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法,如图1所示,包括如下步骤:
S1、基于菜谱库构建蒙特卡洛搜索菜谱树:
S1.1、由营养专业人员进行菜谱收集、分类整理和审核后形成菜谱库;
S1.2、根据所述菜谱库构建菜谱树;
所述菜谱树设置为五层,如图2所示;第一层为成份层,用于构造食材的成份数据,例如三大营养素、微量元素等;第二层为食材层,用于构造食材数据,例如“牛肉”、“猪肉”等;第三层为菜谱层,用于构造菜谱数据;第四层为菜谱的分类层,表示各菜谱所属的分类,例如“一荤一素”等;该层是一个组合层,可包含多层;第五层看作为虚拟根节点。
其中,v为节点v′的父节点,N(·)表示节点被访问的次数,Q(·)表示节点的累计收益值,即成功配餐次数;NN(·)表示深度神经网络;c是一个常量参数,通常设为α为UCT与深度神经网络之间的权重关系;在本步骤中,由于处于菜谱树的冷启动初始化阶段,因此设置α=1,则只用了UCT的计算方法,不用涉及到深度神经网络的内容。
初始化的步骤对所有条件k都需要遍历模拟一次,统计出各个k值下的评分的分布情况,每次的过程是基于传统的蒙特卡洛搜索树进行:
2)展开:当选择了某个节点之后,将下一层进行展开。例如选择了菜谱的分类层中的“一荤一素”节点,向下展开菜谱层中的所有相关节点,按1)中的选择原则再进行选择菜谱,例如选择“豆芽炒肉丝”,以此类推,继续展开;
3)模拟:当选择最后成份层的节点之后,把各成份取出,按照设定的个性化条件进行模拟配餐,例如按饮食平衡、低脂低糖低盐等相关个性化条件进行模拟配餐;
4)反馈:判断模拟配餐的结果,看是否满足个性化条件完成一轮配餐并向上回溯反馈结果,如果配餐成功,反馈节点评分为1,否则反馈节点评分为0;
S1.4、判断菜谱树是否初始化完成,如果完成,初始化结束,否则转至步骤S1.3。
S2、构建深度神经网络模型:
本实施例中,计算节点评分采用UCT算法与深度神经网络相结合来完成,对于深度神经网络,是通过多层神经网模型来实现对于深度神经网络的训练方法,具体通过如下三个方面来实现:
S2.1、对数据样本进行预处理:
所述预处理包括对数据进行清洗、集成、变换和归约、处理数据空缺值、噪声数据以及连接数据离散化处理等;
S2.2、深度神经网络模型结构
在本实施例中,所述深度神经网络模型结构如图3-4所示,包括6层:
1)L1输入层
输入层的输入数据为结构化数据,是深度神经网络模型接触数据的第一步;输入层首先对输入数据进行数据向量化,处理步骤如下:
1.1)定义好每个数据所属的域Fi,例如年龄域、身高域、血压域等,假设共有C个域;
1.2)对域Fi进行独立one-hot编码vi;
1.3)构造多类域样本x=[v1,v2,v3,…,vn],其中[,]表示把多个向量以连接的方式合并成一个新向量;
2)L2嵌入层
嵌入层解决one-hot编码高维稀疏向量带来的维度灾难问题,把one-hot编码的向量映射到实数域表示的空间中。
具体地,计算域Fi对应的特征向量ei,公式如下:
3)L3特征交叉层
L3特征交叉层的向量由全连接与交叉函数计算的结果组成。
详见图3,模型L2层中,除了每个特征向量之外,还有标记为“1”的特征,标记为“1”表示所有的特征向量的组合;所有特征向量计算采用全连接来计算:
定义交叉函数Bpq(·)如下:
其中,ep表示域Fp嵌入转换后的向量,eq表示域Fq嵌入转换后的向量;Bp,q表示Fp与Fq交叉之后的新特征;表示ep变换的学习参数矩阵,表示eq变换的学习参数矩阵,R表示实数集;bpq表示学习参数;
最后,特征交叉层中,特征交叉结果表示为交叉矩阵H:
H=tanh(stack(B0,0,B1,1,B1,2,...,B1,C,B2,1,...,BC,C));
4)L4关注网络层:
其中,ai,j表示域Fp与域Fq交互的注意力得分,hi,j表示交叉矩阵H第i行第j列的元素。
为获取ai,j,本实施例中引入多层感知机(MLP),详细如图4如示,其形式化定义如下:
5)L5隐含层
l=Re LU(W5c+b5)
其中c∈Rt表示关注机制的组合结果,W5∈RM×t表示参数学习矩阵,t代表隐含层规模,b5∈R表示学习参数。
6)L6输出层
对于多分类的输出层,多个神经元的输出映射到(0,1)的区间内,采用Softmax作为激活函数:
o=soft max(W6l+b6)
其中l∈Rt表示隐含层的输出结果,W6∈Rt×s,t代表隐含层规模,s表示食谱数,b6∈R表示学习参数。
S2.3、模型训练
对于模型训练,详细请查看图1的右半部分所示,本实施例中,模型训练分为探索性与正式训练两种,图1中所示的虚线表示探索性,实线表示正式训练。
训练过程是模型学习数据样本的过程,主要涉及到的训练参数:学习率lr,迭代次数num_epochs,每批次大小batch_size。
训练过程中,模型更新的衡量标准是能过损失函数来判定,本实施例中采用softmax的交叉熵损失函数:
训练优化器用来更新模型参数,使模型具有学习能力的核心组件,优化器采用梯度下降法,为了加速梯度下降,基于梯度下降加入动量优化,另外,在学习率的自适应方面加入了自适应学习机制。在本实施例中,选择的优化器集合为:
{SDG,Momentum,Nesterov Momentum,AdaGrad,RMSProp,Adam}
S2.3.1、探索性训练
通过探索性训练实验来决定深度学习参数。本实施例中,采用随机搜索方法来处理:
S2.3.1.1、清洗样本数据;
S2.3.1.2、设置深度训练参数;对于学习率lr、迭代次数num_epochs、每批次大小batch_size设置范围及步长,枚举离散优化器Optimizers={SDG,Momentum,NesterovMomentum,AdaGrad,RMSProp,Adam};
S2.3.1.3、样本数据划分为训练集与测试集,并构建相关数据生成器;
S2.3.1.4、设置最大的搜索次数L;
S2.3.1.5、随机从各个指标中获相关参数值;
S2.3.1.6、遍历相关参数集合并训练模型,完成训练后保存模型;
S2.3.1.7、采用测试集数据基于准确率指标估计模型;
S2.3.1.8、如果当前模型比最优化模型准确率高,更新当前模型为最优模型;
S2.3.1.9、判断是否满足最大搜索次数L,如果是,搜索结束,输出最优化模型及对应参数lr′、num_epochs′、batch_size′、optimizers',否则,转至步骤S2.3.1.5。
S2.3.2、正式训练
相对于探索性训练阶段,正式训练利用探索性训练阶段得到的最优化模型参数:lr′、num_epochs′、batch_size′、optimizers',具体过程包括:
S2.3.2.1、清洗样本数据;
S2.3.2.2、设置探索性训练阶段得到的最优化模型参数:lr′、num_epochs′、batch_size′、optimizer′;
S2.3.2.3、构建训练数据生成器;
S2.3.2.4、训练模型,基于损失函数更新模型参数;
S2.3.2.5、训练结束,保存最终的深度神经网络模型;
S3、综合深度神经网络模型和蒙特卡洛搜索菜谱树完成个性化配餐;
步骤S1和S2的主要工作分别是对蒙特卡洛搜索菜谱树进行构建并初始化和对深度神经网络进行构建与训练。以上步骤完成后,应用流程如图1所示,预测数据会被同时输入到蒙特卡洛搜索树与深度神经网络模型中,经过两个模型计算并输出结果,最后合并两者作为最后的模型输出,具体过程如下:
S3.1、在蒙特卡洛搜索菜谱树搜索阶段,从输入的预测数据中抽取蒙特卡洛搜索菜谱树的节点的约束条件k,例如高血压风、糖尿病风险等等;基于约束条件k,从虚拟根节点开始,每一层都选择UCT值最大的节点并展开该节点的下一层,一直到菜谱层,最终获取该层的所有菜谱分布UCTi(x|k);
在深度神经网络模型预测阶段,在输入层把预测数据经过清洗,转化为深度神经网络的输入格式,然后嵌入层、特征交叉层、关注网络层、隐含层分别对输入数据依次进行嵌入处理、特征组合、关注网络和隐含计算,经输出层输出计算结果,并获取前S个菜谱,得到另一个菜谱分布NN(x);
S3.5、模拟配餐:遍历集合food_set中的食材,依设定的个性化条件计算食材的各个成份的量,试图模拟配餐;
S3.6、配餐反馈:从当前节点自下向上反馈蒙特卡洛搜索菜谱树节点,对节点访问参数加1;然后进行营养配餐的验证判断是否满足设定的条件,如果全部满足,表示成功配餐,对节点的价值变量Q进行修改,反馈Q值加1,否则任一项不满足,表示配餐不成功,对节点的价值变量Q进行修改,反馈Q值加0,并获取下一个菜谱直至成功配餐为止;
验证判断可以包括是否满足营养饮食均衡的验证、是否满足能量阈值范围、是否满足慢性病的饮食原则、是否在某慢性病的营养素的相关范围内、是否满足营养专家自定义的相关规则、是否满足用户的个性化定义规则,包括用户宗教信仰、饮食喜好等条件。
S3.7、输出成功配餐的菜谱,并把菜谱记录到待审查样本库,为下一轮离线深度训练作准备。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法,其特征在于,包括如下步骤:
S1、基于菜谱库构建蒙特卡洛搜索菜谱树:
S1.1、由营养专业人员进行菜谱收集、分类整理和审核后形成菜谱库;
S1.2、根据步骤S1.1形成的菜谱库构建菜谱树;
所述菜谱树设置为五层;第一层为成份层,用于构造食材的成份数据;第二层为食材层,用于构造食材数据;第三层为菜谱层,用于构造菜谱数据;第四层为菜谱的分类层,表示各菜谱所属的分类;第五层看作为虚拟根节点;每层的节点i具有带条件概率分布评分k表示条件,x表示每个节点所表示的具体内容;
S1.3、通过模拟抽样的方法,冷启动菜谱树初始化参数;
其中,其中,v为节点v′的父节点,N(·)表示节点被访问的次数,Q(·)表示节点的累计收益值,即成功配餐次数;NN(·)表示深度神经网络;c是一个常量参数;α为UCT与深度神经网络之间的权重关系;在本步骤中,设置α=1;
初始化的步骤对所有条件k都需要遍历模拟一次,统计出各个k值下的评分的分布情况;
S2、构建深度神经网络模型:
S2.1、对数据样本进行预处理:
S2.2、确定深度神经网络模型结构,所述深度神经网络模型包括输入层、嵌入层、特征交叉层、关注网络层、隐含层、输出层;所述输入层用于将输入数据进行数据向量化;所述嵌入层用于将向量映射到实数域表示的空间;所述特征交叉层用于进行特征的交叉组合;所述关注网络层用于对各个特征和特征组合进行关注网络计算;所述隐含层用于对关注网络层的计算结果进行隐含计算;输出层用于输出最终结果;
S2.3、深度神经网络模型训练;
S3、综合深度神经网络模型和蒙特卡洛搜索菜谱树完成个性化配餐:
S3.1、在蒙特卡洛搜索菜谱树搜索阶段,从输入的预测数据中抽取蒙特卡洛搜索菜谱树的节点的约束条件k;基于约束条件k,从虚拟根节点开始,每一层都选择UCT值最大的节点并展开该节点的下一层,一直到菜谱层,最终获取该层的所有菜谱分布UCTi(x|k);
在深度神经网络模型预测阶段,在输入层把预测数据经过清洗,转化为深度神经网络的输入格式,然后嵌入层、特征交叉层、关注网络层、隐含层分别对输入数据依次进行嵌入处理、特征组合、关注网络和隐含计算,经输出层输出计算结果,并获取前S个菜谱,得到另一个菜谱分布NN(x);
S3.5、模拟配餐:遍历集合food_set中的食材,依设定的个性化条件计算食材的各个成份的量,试图模拟配餐;
S3.6、配餐反馈:从当前节点自下向上反馈蒙特卡洛搜索菜谱树节点,对节点访问参数加1;然后进行营养配餐的验证判断是否满足设定的条件,如果全部满足,表示成功配餐,对节点的价值变量Q进行修改,反馈Q值加1,否则任一项不满足,表示配餐不成功,对节点的价值变量Q进行修改,反馈Q值加0,并获取下一个菜谱直至成功配餐为止;
S3.7、输出成功配餐的菜谱。
2.根据权利要求1所述的方法,其特征在于,步骤S1.3中,初始化的步骤对所有条件k都需要遍历模拟一次,统计出各个k值下的评分的分布情况,每次的过程是基于传统的蒙特卡洛搜索树进行:
2)展开:当选择了某个节点之后,将下一层进行展开;
3)模拟:当选择最后成份层的节点之后,把各成份取出,按照设定的个性化条件进行模拟配餐;
4)反馈:判断模拟配餐的结果,看是否满足个性化条件完成一轮配餐并向上回溯反馈结果,如果配餐成功,反馈节点评分为1,否则反馈节点评分为0;
S1.4、判断菜谱树是否初始化完成,如果完成,初始化结束,否则转至步骤S1.3。
3.根据权利要求1所述的方法,其特征在于,步骤S2.1中,所述预处理包括对数据进行清洗、集成、变换和归约、处理数据空缺值、噪声数据;另外,还包括连接数据离散化处理。
4.根据权利要求1所述的方法,其特征在于,步骤S2.2中,输入层对输入数据的处理过程如下:
1.1)定义好每个数据所属的域Fi,设共有C个域;
1.2)对域Fi进行独立one-hot编码vi;
1.3)构造多类域样本x=[v1,v2,v3,…,vn],其中[,]表示把多个向量以连接的方式合并成一个新向量。
6.根据权利要求5所述的方法,其特征在于,步骤S2.2中,特征交叉层的数据处理过程如下:
所有特征向量的组合计算采用全连接来计算:
B0,0(e)=W3 0e+b3;
其中,W3 0∈RM×T,R表示实数集,T表示所有域嵌入形成的向量维度,即T=M×C,e=[e1,e2,...,eC]表示嵌入层输出的编码信息,b3表示学习参数;B0,0表示所有特征向量的组合信息;
定义交叉函数Bpq(·)如下:
其中,ep表示域Fp嵌入转换后的向量,eq表示域Fq嵌入转换后的向量;Bp,q表示Fp与Fq交叉之后的新特征;表示ep变换的学习参数矩阵,W3 q表示eq变换的学习参数矩阵,W3 q∈RM×M,R表示实数集;bpq表示学习参数;
最后,特征交叉层中,特征交叉结果表示为交叉矩阵H:
H=tanh(stack(B0,0,B1,1,B1,2,...,B1,C,B2,1,...,BC,C));
8.根据权利要求7所述的方法,其特征在于,步骤S2.2中,所述隐含层按如下公式对数据进行计算:
l=ReLU(W5c+b5)
其中c∈Rt表示关注机制的组合结果,t代表隐含层规模,b5∈R表示学习参数;W5∈RM×t表示参数学习矩阵。
9.根据权利要求8所述的方法,其特征在于,步骤S2.2中,所述输出层的数据处理过程如下:
对于多分类的输出层,多个神经元的输出映射到(0,1)的区间内,采用Softmax作为激活函数:
o=soft max(W6l+b6)
其中l∈Rt表示隐含层的输出结果,W6∈Rt×s,t代表隐含层规模,s表示食谱数,b6∈R表示学习参数。
10.根据权利要求1所述的方法,其特征在于,步骤S2.3的具体过程如下:
S2.3.1、探索性训练
S2.3.1.1、清洗样本数据;
S2.3.1.2、设置深度训练参数:对于学习率lr、迭代次数num_epochs、每批次大小batch_size设置范围及步长,枚举离散优化器Optimizers={SDG,Momentum,NesterovMomentum,AdaGrad,RMSProp,Adam};
S2.3.1.3、数据划分为训练集与测试集,并构建相关数据生成器;
S2.3.1.4、设置最大的搜索次数L;
S2.3.1.5、随机从各个指标中获相关参数值;
S2.3.1.6、遍历相关参数集合并训练模型,完成训练后保存模型;
S2.3.1.7、采用测试集数据基于准确率指标估计模型;
S2.3.1.8、如果当前模型比最优化模型准确率高,更新当前模型为最优模型;
S2.3.1.9、判断是否满足最大搜索次数L,如果是,搜索结束,输出最优化模型及对应参数lr′、num_epochs′、batch_size′、optimizers',否则,转至步骤S2.3.1.5;
S2.3.2、正式训练:
S2.3.2.1、清洗样本数据;
S2.3.2.2、设置探索性训练阶段得到的最优化模型参数:lr′、num_epochs′、batch_size′、optimizer′;
S2.3.2.3、构建训练数据生成器;
S2.3.2.4、训练模型,基于损失函数更新模型参数;
S2.3.2.5、训练结束,保存最终的深度神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912761.7A CN110659420B (zh) | 2019-09-25 | 2019-09-25 | 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912761.7A CN110659420B (zh) | 2019-09-25 | 2019-09-25 | 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110659420A CN110659420A (zh) | 2020-01-07 |
CN110659420B true CN110659420B (zh) | 2022-05-20 |
Family
ID=69039109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910912761.7A Active CN110659420B (zh) | 2019-09-25 | 2019-09-25 | 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659420B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340221B (zh) * | 2020-02-25 | 2023-09-12 | 北京百度网讯科技有限公司 | 神经网络结构的采样方法和装置 |
CN112488301B (zh) * | 2020-12-09 | 2024-04-16 | 孙成林 | 一种基于多任务学习和注意力机制的食品反演方法 |
CN113704388A (zh) * | 2021-03-05 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 多任务预训练模型的训练方法、装置、电子设备和介质 |
CN113128121B (zh) * | 2021-04-22 | 2022-05-31 | 中国电子科技集团公司第二十九研究所 | 基于强化学习与蒙特卡洛搜索树的mimo雷达布站方法 |
CN113704098B (zh) * | 2021-08-18 | 2023-09-22 | 武汉大学 | 一种基于蒙特卡洛搜索树种子调度的深度学习模糊测试方法 |
CN113782109A (zh) * | 2021-09-13 | 2021-12-10 | 烟台国工智能科技有限公司 | 基于蒙特卡洛树的反应物推导方法及逆向合成推导方法 |
CN117877608B (zh) * | 2024-03-13 | 2024-05-28 | 烟台国工智能科技有限公司 | 基于经验网络的蒙特卡洛树搜索逆合成规划方法及装置 |
CN118280601A (zh) * | 2024-04-07 | 2024-07-02 | 佛山科学技术学院 | 一种基于半监督学习的抗癌药物敏感性评估方法及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102056192A (zh) * | 2010-11-09 | 2011-05-11 | 广东石油化工学院 | 基于核密度估计与非参数置信传播的wsn网内数据融合方法 |
CN104778370A (zh) * | 2015-04-20 | 2015-07-15 | 北京交通大学 | 基于蒙特卡洛仿真求解动态故障树模型的风险分析方法 |
CN105956968A (zh) * | 2016-05-26 | 2016-09-21 | 程欧亚 | 一种高考志愿人工智能填报系统及方法 |
CN106709345A (zh) * | 2015-11-17 | 2017-05-24 | 武汉安天信息技术有限责任公司 | 基于深度学习方法推断恶意代码规则的方法、系统及设备 |
CN106971051A (zh) * | 2017-04-19 | 2017-07-21 | 民航成都电子技术有限责任公司 | 一种航班保障服务时间估算方法及系统 |
CN107038477A (zh) * | 2016-08-10 | 2017-08-11 | 哈尔滨工业大学深圳研究生院 | 一种非完备信息下的神经网络与q学习结合的估值方法 |
CN107391906A (zh) * | 2017-06-19 | 2017-11-24 | 华南理工大学 | 基于神经网络和图谱结构的健康饮食知识网络构建方法 |
CN107665254A (zh) * | 2017-09-30 | 2018-02-06 | 济南浪潮高新科技投资发展有限公司 | 一种基于深度学习的菜谱推荐方法 |
CN108241610A (zh) * | 2016-12-26 | 2018-07-03 | 上海神计信息系统工程有限公司 | 一种文本流的在线主题检测方法和系统 |
CN108630293A (zh) * | 2018-03-16 | 2018-10-09 | 众安信息技术服务有限公司 | 一种营养配餐方法和装置 |
CN108826824A (zh) * | 2018-08-01 | 2018-11-16 | 珠海格力电器股份有限公司 | 一种冰箱的控制方法、装置、存储介质及冰箱 |
CN109447152A (zh) * | 2018-10-29 | 2019-03-08 | 中国石油大学(华东) | 一种基于蒙特卡洛树搜索和神经网络的故障预测方法 |
CN110119804A (zh) * | 2019-05-07 | 2019-08-13 | 安徽大学 | 一种基于强化学习的爱恩斯坦棋博弈算法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445701B (zh) * | 2016-09-21 | 2018-01-09 | 腾讯科技(深圳)有限公司 | 数据处理方法和装置 |
US10133275B1 (en) * | 2017-03-01 | 2018-11-20 | Zoox, Inc. | Trajectory generation using temporal logic and tree search |
-
2019
- 2019-09-25 CN CN201910912761.7A patent/CN110659420B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102056192A (zh) * | 2010-11-09 | 2011-05-11 | 广东石油化工学院 | 基于核密度估计与非参数置信传播的wsn网内数据融合方法 |
CN104778370A (zh) * | 2015-04-20 | 2015-07-15 | 北京交通大学 | 基于蒙特卡洛仿真求解动态故障树模型的风险分析方法 |
CN106709345A (zh) * | 2015-11-17 | 2017-05-24 | 武汉安天信息技术有限责任公司 | 基于深度学习方法推断恶意代码规则的方法、系统及设备 |
CN105956968A (zh) * | 2016-05-26 | 2016-09-21 | 程欧亚 | 一种高考志愿人工智能填报系统及方法 |
CN107038477A (zh) * | 2016-08-10 | 2017-08-11 | 哈尔滨工业大学深圳研究生院 | 一种非完备信息下的神经网络与q学习结合的估值方法 |
CN108241610A (zh) * | 2016-12-26 | 2018-07-03 | 上海神计信息系统工程有限公司 | 一种文本流的在线主题检测方法和系统 |
CN106971051A (zh) * | 2017-04-19 | 2017-07-21 | 民航成都电子技术有限责任公司 | 一种航班保障服务时间估算方法及系统 |
CN107391906A (zh) * | 2017-06-19 | 2017-11-24 | 华南理工大学 | 基于神经网络和图谱结构的健康饮食知识网络构建方法 |
CN107665254A (zh) * | 2017-09-30 | 2018-02-06 | 济南浪潮高新科技投资发展有限公司 | 一种基于深度学习的菜谱推荐方法 |
CN108630293A (zh) * | 2018-03-16 | 2018-10-09 | 众安信息技术服务有限公司 | 一种营养配餐方法和装置 |
CN108826824A (zh) * | 2018-08-01 | 2018-11-16 | 珠海格力电器股份有限公司 | 一种冰箱的控制方法、装置、存储介质及冰箱 |
CN109447152A (zh) * | 2018-10-29 | 2019-03-08 | 中国石油大学(华东) | 一种基于蒙特卡洛树搜索和神经网络的故障预测方法 |
CN110119804A (zh) * | 2019-05-07 | 2019-08-13 | 安徽大学 | 一种基于强化学习的爱恩斯坦棋博弈算法 |
Non-Patent Citations (3)
Title |
---|
AlphaX:eXploring Neural Architectures with Deep Neural Networks and Monte Carlo Tree Search;Linnan Wang 等;《arXiv:1903.11059v1》;20190326;1-15 * |
Deep Learning for Reward Design to Improve Monte Carlo Tree Search in ATARI Games;Xiaoxiao Guo 等;《arXiv:1604.07095v1》;20160426;1-7 * |
个性化健康饮食推荐服务研究;李越;《中国优秀博硕士学位论文全文数据库(硕士) 工程科技I辑》;20170515(第05期);B025-7 * |
Also Published As
Publication number | Publication date |
---|---|
CN110659420A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110659420B (zh) | 一种基于深度神经网络蒙特卡洛搜索树的个性化配餐方法 | |
CN114398961B (zh) | 一种基于多模态深度特征融合的视觉问答方法及其模型 | |
Adolphs et al. | Ledeepchef deep reinforcement learning agent for families of text-based games | |
CN111652291A (zh) | 一种基于组稀疏融合医院大数据建立学生成长画像的方法 | |
CN110516085A (zh) | 基于双向注意力的图像文本互检索方法 | |
CN105468596B (zh) | 图片检索方法和装置 | |
CN106295186A (zh) | 一种基于智能推理的辅助疾病诊断的方法与系统 | |
CN106778014A (zh) | 一种基于循环神经网络的患病风险预测方法 | |
CN110033022A (zh) | 文本的处理方法、装置和存储介质 | |
CN107665254A (zh) | 一种基于深度学习的菜谱推荐方法 | |
Han et al. | CookGAN: Meal image synthesis from ingredients | |
CN112836027A (zh) | 用于确定文本相似度的方法、问答方法及问答系统 | |
US20210366022A1 (en) | Matching users with visual items | |
CN116417115B (zh) | 妊娠期糖尿病患者个性化营养方案推荐方法及系统 | |
CN110097928A (zh) | 一种基于肠道菌群预测组织微量元素含量的预测方法和预测模型 | |
CN115280422A (zh) | 食物推荐方法、装置、存储介质及电子设备 | |
Olkiewicz et al. | Emotion-based image retrieval—An artificial neural network approach | |
Rahman et al. | A deep CNN approach to detect and classify local fruits through a web interface | |
Sadhasivam et al. | Diet and workout recommendation using ML | |
CN112037888B (zh) | 生理健康特征数据的监控方法、装置、设备及存储介质 | |
Al-Saffar et al. | Nutrition information estimation from food photos using machine learning based on multiple datasets | |
CN115273176A (zh) | 一种基于生命体征和表情的疼痛多算法客观评估方法 | |
Wang et al. | A Brain-inspired Computational Model for Human-like Concept Learning | |
Ihsan et al. | Gray Level Co-Occurrence Matrix Algorithm and Backpropagation Neural Networks for Herbal Plants Identification | |
CN115438206A (zh) | 基于三元融合神经网络用于图像和菜谱的跨模态检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |