首页 / 专利库 / 信号处理 / 时钟树 / 一种基于FPGA实现的决策森林系统及决策森林推理方法

一种基于FPGA实现的决策森林系统及决策森林推理方法

阅读:292发布:2020-05-11

专利汇可以提供一种基于FPGA实现的决策森林系统及决策森林推理方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于FPGA实现的决策森林系统及决策森林推理方法,属于 机器学习 领域。本发明基于路径回溯模 块 与分类模块的架构在FPGA上实现 决策树 ,有利于将训练好的决策树MATLAB代码自动转换成Verilog代码,而不需要人为在EDA工具中手动实现大量决策树。采用自顶向下的设计结构,将每棵决策树都作为一个子模块并行运行,快速部署的同时保证 精度 ,且消耗的 硬件 资源更少。基于流 水 线技术在FPGA上实现多数投票法,在顶层模块中调用决策树子模块并对子模块的结果进行统一处理,从而提高推理速度。通过异步FIFO模块跨时钟域传输数据,使其应用更广泛。本发明所提供的推理实现方法原则上适用于通过任意训练 算法 生成的决策树。,下面是一种基于FPGA实现的决策森林系统及决策森林推理方法专利的具体信息内容。

1.一种基于FPGA实现的决策森林系统,其特征在于,该系统包括:
基于FPGA的多个决策树子系统、异步FIFO模和基于FPGA的多数投票法子系统;
各个决策树子系统之间相互独立且并行运行,每个决策树子系统包含:第一时钟控制器、路径回溯模块和分类模块;其中,
所述第一时钟控制器为同步时钟,用于控制路径回溯模块和分类模块;
所述路径回溯模块用于获取已训练的决策树中所有从叶节点到根节点的回溯路径,并得到待分类数据在该决策树中的分类路径;
所述分类模块用于根据所述路径回溯模块输出的分类路径,得到待分类数据在该决策树中的分类结果,并将分类结果传递给基于FPGA的多数投票法子系统;
所述异步FIFO模块用于对多个决策树子系统和多数投票法子系统之间的跨时钟域数据传输;
所述多数投票法子系统包含:第二时钟控制器、计数模块、类别数量比较器及投票结果输出模块;其中,
所述第二时钟控制器为同步时钟,用于控制计数模块、类别数量比较器及投票结果输出模块;
所述计数模块用于对各个分类模块得到的分类结果,按照类别进行计数;
所述类别数量比较器用于从计数模块得到的计数结果中找出数量最大值;
所述投票结果输出模块用于输出数量最大值所对应的分类类别。
2.如权利要求1所述的系统,其特征在于,对单条路径中的结点相“与”,对相同分类类别的不同路径相“或”,得到该分类类别的分类路径。
3.如权利要求1所述的系统,其特征在于,哪个分类路径对应的变量为“真”,即表示分类结果为该分类路径所对应的类别。
4.如权利要求1所述的系统,其特征在于,第二时钟控制器的时钟频率≥第一时钟控制器的时钟频率。
5.如权利要求1所述的系统,其特征在于,整个多数投票法子系统用流线技术实现,若模块需要耗时N个时钟周期,则流水需要N级。
6.一种基于权利要求1至5任一项所述的决策森林系统的决策森林推理方法,其特征在于,该方法包括以下步骤:
S1.通过由决策树子系统构建的若干棵决策树,对待分类数据进行并行分类预测,得到若干个分类结果;
S2.经由多数投票法子系统中的流水线操作,得到若干棵决策树分类结果中数量最大值;
S3.将数量最大值对应的分类类别,作为整个决策森林系统的推理结果。
7.如权利要求6所述的方法,其特征在于,步骤S2包括以下步骤:
S21.通过异步FIFO模块缓存从决策树子系统中获取数据流,实现数据的跨时钟域传输;
S22.经计数模块对多棵决策树所得到的分类结果进行不同类别上的计数,可用多级流水;
S23.经类别数量比较器从计数模块得到的计数结果中找出数量最大值 , 可用多级 流水。

说明书全文

一种基于FPGA实现的决策森林系统及决策森林推理方法

技术领域

[0001] 本发明属于机器学习技术领域,更具体地,涉及一种基于FPGA实现的决策森林系统及决策森林推理方法。

背景技术

[0002] 集成学习是机器学习中的一种重要的方法。集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能。整个集成学习不依赖任何单一模型,而是集体进行预测。决策森林是并行式集成学习方法最著名的代表之一,其多样性是通过使用不同的训练数据子集来获得的。决策森林是以决策树为基学习器和以多数投票法为集成方式所构成的一种集成学习方法,也可进一步在决策树的训练过程中引入随机属性选择,以增强泛化性能。
[0003] 尽管决策森林在很多现实任务中都展现出强大的性能,但是它的缺点妨碍了决策森林的广泛应用,特别是基于硬件场景的应用。为了生成未标记数据实例的分类,在获得最终分类之前,需要按照每个模型对该实例进行分类。因此,对于推理速度是主要问题的一些应用(例如挖掘数据流),分类集成可能无法及时产生。
[0004] 决策树作为集成学习中的基学习器,利用树状结构进行判定并决策,可以是分类树也可以是回归树。决策树的训练过程中需要对结点进行最优属性划分,有很多常见的最优属性划分策略,比如基于信息增益、基尼系数等等。现有技术中公开了多种决策森林训练过程所使用的算法,但是,其在FPGA中推理的实现方法还未成熟,有待进一步完善。

发明内容

[0005] 针对现有技术的缺陷和改进需求,本发明提供了一种基于FPGA实现的决策森林系统及决策森林推理方法,其目的在于在保证精度的前提下极大地提高决策森林在硬件部署中的推理速度,解决了决策森林对性能的需求,同时其跨时钟域的设计使得决策森林及其相似技术可以得到更广泛的实际应用。
[0006] 为实现上述目的,按照本发明的第一方面,提供了一种基于FPGA实现的决策森林系统,该系统包括:
[0007] 基于FPGA的多个决策树子系统、异步FIFO模和基于FPGA的多数投票法子系统;
[0008] 各个决策树子系统之间相互独立且并行运行,每个决策树子系统包含:第一时钟控制器、路径回溯模块和分类模块;其中,
[0009] 所述第一时钟控制器为同步时钟,用于控制路径回溯模块和分类模块;
[0010] 所述路径回溯模块用于获取已训练的决策树中所有从叶节点到根节点的回溯路径,并得到待分类数据在该决策树中的分类路径;
[0011] 所述分类模块用于根据所述路径回溯模块输出的分类路径,得到待分类数据在该决策树中的分类结果,并将分类结果传递给基于FPGA的多数投票法子系统;
[0012] 所述异步FIFO模块用于对多个决策树子系统和多数投票法子系统之间的跨时钟域数据传输;
[0013] 所述多数投票法子系统包含:第二时钟控制器、计数模块、类别数量比较器及投票结果输出模块;其中,
[0014] 所述第二时钟控制器为同步时钟,用于控制计数模块、类别数量比较器及投票结果输出模块;
[0015] 所述计数模块用于对各个分类模块得到的分类结果,按照类别进行计数;
[0016] 所述类别数量比较器用于从计数模块得到的计数结果中找出数量最大值;
[0017] 所述投票结果输出模块用于输出数量最大值所对应的分类类别。
[0018] 具体地,对单条路径中的结点相“与”,对相同分类类别的不同路径相“或”,得到该分类类别的分类路径。
[0019] 具体地,哪个分类路径对应的变量为“真”,即表示分类结果为该分类路径所对应的类别。
[0020] 具体地,第二时钟控制器的时钟频率≥第一时钟控制器的时钟频率。
[0021] 具体地,整个多数投票法子系统用流线技术实现,若模块需要耗时N个时钟周期,则流水需要N级。
[0022] 为实现上述目的,按照本发明的第二方面,第一方面所述的决策森林系统的决策森林推理方法,该方法包括以下步骤:
[0023] S1.通过由决策树子系统构建的若干棵决策树,对待分类数据进行并行分类预测,得到若干个分类结果;
[0024] S2.经由多数投票法子系统中的流水线操作,得到若干棵决策树分类结果中数量最大值;
[0025] S3.将数量最大值对应的分类类别,作为整个决策森林系统的推理结果。
[0026] 具体地,步骤S2包括以下步骤:
[0027] S21.通过异步FIFO模块缓存从决策树子系统中获取数据流,实现数据的跨时钟域传输;
[0028] S22.经计数模块对多棵决策树所得到的分类结果进行不同类别上的计数,可用多级流水;
[0029] S23.经类别数量比较器从计数模块得到的计数结果中找出数量最大值,可用多级流水。
[0030] 总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
[0031] (1)本发明基于路径回溯模块与分类模块的架构,在FPGA上实现决策树,该架构有利于将训练好的决策树MATLAB代码自动转换成Verilog代码,而不需要人为在EDA工具中手动实现大量决策树。
[0032] (2)本发明采用自顶向下的设计结构,将每棵决策树都作为一个子模块并行运行,从而实现在FPGA中的大规模快速部署的同时保证精度,且消耗的硬件资源更少。
[0033] (3)本发明基于流水线技术在FPGA上实现多数投票法,在多数投票法顶层模块中调用决策树子模块并对子模块的结果进行统一处理,从而提高推理速度。
[0034] (4)本发明通过异步FIFO模块,满足并行分类的决策树子系统与多数投票法子系统所在不同时钟域的需求,达到跨时钟域数据传输的目的,使其应用更广泛。
[0035] (5)本发明所提供的推理实现方法原则上适用于通过任意训练算法生成的决策树。附图说明
[0036] 图1为本发明实施例提供的一种基于FPGA实现的决策森林系统结构示意图;
[0037] 图2为本发明实施例提供的决策树子系统结构示意图;
[0038] 图3为本发明实施例提供的多数投票法子系统结构示意图;
[0039] 图4为本发明实施例提供的决策树实施例Verilog伪代码描述图;
[0040] 图5为本发明实施例提供的决策森林实施例分类仿真结果图。

具体实施方式

[0041] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0042] 本发明的整体构思为:通过构建决策森林系统的两个重要组成部分,决策树子系统和多数投票法子系统,来达到在FPGA中进行决策森林推理的目的。其中,基于路径回溯模块与分类模块的架构实现决策树,基于流水线技术实现多数投票法。
[0043] 如图1所示,本发明提供一种基于FPGA实现的决策森林系统,该系统包括:
[0044] 基于FPGA的多个决策树子系统,各个决策树子系统之间相互独立且并行运行,如图2所示,每个决策树子系统包含:第一时钟控制器、路径回溯模块、分类模块;
[0045] 其中,所述第一时钟控制器为同步时钟,用于控制路径回溯模块和分类模块,所述路径回溯模块用于获取已训练的决策树中所有从叶节点到根节点的回溯路径,并得到待分类数据在该决策树中的分类路径,所述分类模块用于根据所述路径回溯模块输出的分类路径,得到待分类数据在该决策树中的分类结果,并将分类结果传递给基于FPGA的多数投票法子系统;
[0046] 基于FPGA的多数投票法子系统,如图3所示,所述多数投票法子系统包含:第二时钟控制器、计数模块、类别数量比较器及投票结果输出模块;
[0047] 其中,所述第二时钟控制器为同步时钟,用于控制计数模块、类别数量比较器及投票结果输出模块,所述计数模块用于对各个分类模块得到的分类结果,按照类别进行计数,所述类别数量比较器用于从计数模块得到的计数结果中找出数量最大值,所述投票结果输出模块用于输出数量最大值所对应的分类类别。
[0048] 异步FIFO模块,所述异步FIFO模块用于对多个决策树子系统和多数投票法子系统之间的跨时钟域数据传输。
[0049] 本发明中,决策森林系统采用自顶向下的设计结构,将每棵决策树都作为一个子模块并行运行,然后在多数投票法顶层模块中调用这些子模块并对子模块的结果进行统一处理。具体地,在FPGA实现中,为了满足并行分类的决策树子系统与多数投票法子系统所在不同时钟域的需求,部署异步FIFO以达到跨时钟域数据传输的目的。
[0050] 决策树是一种常见的机器学习方法,可用于回归或分类,通常由特征选择、决策树的生成和决策树的剪枝等步骤产生,可利用MATLAB工具预先训练生成若干棵决策树,每棵训练好的决策树与一个决策树子系统对应。
[0051] 具体地,所述FPGA的选取需要满足实现的所有决策树逻辑占用和IO端口占用的资源消耗需求,FPGA的资源包括LUT、Register、BRAM和IOB等。
[0052] 所述决策树子系统包含:第一时钟控制器、路径回溯模块、分类模块。
[0053] 具体地,所述第一时钟控制器所产生的时钟能满足路径回溯模块的组合逻辑延时需求,更进一步地,可利用分级流水拆分较大组合逻辑以保证高速的性能。
[0054] 具体地,所述路径回溯模块通过对决策树中的每个叶结点进行回溯找到从根结点到叶结点的路径,并把叶结点中相同分类类别的路径进行相“或”操作(实际上整体就是布尔逻辑,EDA工具中的逻辑综合器会自动优化该布尔逻辑)得到若干分类路径。所述从根结点到叶结点的路径都是属性变量和分离值之间比较后的“与”运算,树中结点分离的依据一般而言为基尼系数。
[0055] 具体地,所述分类模块对由路径回溯模块得到的逻辑进行时序判断,在某一时刻哪个分类路径对应的变量为“真”,即表示分类结果为该分类路径所对应的类别。
[0056] 多数投票法,如果某个分类类别统计的数量(即票数)最多,那么就将该分类类别作为决策森林的输出;如果同时获得最高票的有多个分类类别,那么就按照声明顺序输出最早声明的那个分类类别,可描述为 x表示待分类数据,h表示决策树,T表示决策森林中决策树的数量,cj表示第j个类别,H表示决策森林。
[0057] 所述多数投票法系统包含:第二时钟控制器、计数模块以及类别数量比较器。
[0058] 具体地,所述第二时钟控制器的时钟频率与决策树系统中的并不一定完全相同。一般而言,基于流水线的多数投票法系统可实现的时钟频率会比决策树系统高,因为多数投票系统中的每一个模块的组合逻辑延迟相对较低。
[0059] 具体地,所述计数模块用于对多棵决策树所得到的分类结果进行不同类别上的计数。当决策树棵数较大时,计数模块所需要的时钟周期数也会相应增多。例如,有10棵决策树时,计数模块耗时2个时钟周期;若有200棵决策树时,则计数模块耗时4个时钟周期,即流水需要四级。
[0060] 具体地,所述类别数量比较器用于从计数模块得到的计数结果中找出数量最大值。根据类别种类的多少,计数模块所需要的时钟周期数也不尽相同,这是一种弹性的设计。例如,类别只有2类,计数模块耗时1个时钟周期;若类别有4类,则计数模块耗时2个时钟周期,即流水需要两级。
[0061] 所述整个多数投票法子系统用流水线技术实现,若模块需要耗时N个时钟周期,则流水需要N级。
[0062] 所述异步FIFO模块包含一个双端口的RAM,用于跨时钟域之间的数据记录与传输,保证数据间的正确传递,可直接调用EDA工具中的IP核实现。
[0063] 本发明还提供了一种基于上述系统的决策森林推理方法,该方法包括以下步骤:
[0064] 步骤S1.通过由决策树子系统构建的若干棵决策树,对待分类数据进行并行分类预测,得到若干个分类结果。
[0065] 通过以下实施例进一步说明:假设决策树输入属性表示成{x1,x2,x3,x4},分类类别为{0,1,2},三种代表分类类别的变量表示成{class0,class1,class2}。若分类类别为0的叶节点有N0个,那么就有N0条相关的路径,分别表示成{10,20,...,N0};同理,分类类别为1的叶节点有N1个,分类类别为2的叶节点有N2个。该决策树实施例Verilog伪代码描述如图4所示,路径回溯模块主要由组合逻辑构成,分类模块主要由时序逻辑构成。
[0066] 进一步地,图4中第1-3行表示对每种分类类别进行路径的遍历,把所有相同分类的路径进行相“或”运算。除非特殊情况,测试数据输入之后,{class0,class1,class2}中只有一个值为“真”,其余两个为“假”,即分类结果一定是唯一的。第4-9行表示之后在每个时钟的上升沿,找到{class0,class1,class2}三者之中为“真”的那个并作为输出的分类类别。
[0067] 步骤S2.经由多数投票法子系统中的流水线操作,得到若干棵决策树分类结果中数量最大值。
[0068] 步骤S2包括以下步骤:
[0069] S21.通过异步FIFO模块缓存从决策树子系统中获取数据流,实现数据的跨时钟域传输。
[0070] S22.经计数模块对多棵决策树所得到的分类结果进行不同类别上的计数,可用多级流水。
[0071] S23.经类别数量比较器从计数模块得到的计数结果中找出数量最大值,可用多级流水。
[0072] 步骤S3.将数量最大值对应的分类类别,作为整个决策森林系统的推理结果。
[0073] 通过以下实施例结果进一步说明。
[0074] 本实施例的条件如下:Fisher's Iris数据集有4个输入属性,分类类别有3种,分别表示为{0,1,2},该数据集共有150组数据。随机抽取其中的135组按照决策森林算法进行预训练,得到10棵决策树。基于此10棵决策树将决策森林推理过程在XILINX Artix-7系列中的XC7A35TFTG256-1开发板上进行实现,并用剩余15组数据对FPGA实现的系统进行测试。
[0075] 进一步地,本实施例中有10棵决策树,3种分类类别。本实施例中的多数投票法系统的计数模块使用了两级流水,类别数量比较器也使用了两级流水。
[0076] 进一步地,本实施例实现了时钟频率为100MHz的高速系统,整个决策森林实施例的测试分类仿真结果如图5所示。图中标识了四根黑色粗线,从左往右数第一根线表示决策树从此刻开始第一组测试数据的分类;然后经历6个时钟周期(6条流水)到达第二条线的时刻,表示开始输出第一个投票的结果;第二根线和第三根线之间是一个时钟周期,表示第一组数据的投票结果将持续一个时钟周期,而后进行第二个投票结果输出;第二个投票结果输出直到第四根线,如此往复,依次将15组测试数据的投票结果一一输出来。根据波形图,得到15个投票结果依次是021111220000110,对比下面10棵决策树的分类类别结果,可以发现多数投票法的结果符合预期。
[0077] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈