使用对于自主数据库服务的自适应采样启用高效的机器学习模型推理的制作方法

文档序号:33346937发布日期:2023-03-04 03:52阅读:59来源:国知局
使用对于自主数据库服务的自适应采样启用高效的机器学习模型推理的制作方法

1.本发明涉及数据库管理系统(dbms)的诸如实时的自优化。本文是用于估计数据库内容统计的自适应即时(just-in-time)采样技术,机器学习(ml)模型可以使用数据库内容统计来预测节省计算机资源(诸如执行时间和存储空间)的配置设置。


背景技术:

2.数据库服务的调谐自动化可以依赖于用户数据统计。在生产系统上收集数据统计的成本很高并且会消耗宝贵的计算机资源。现有的数据库引擎使用专门的统计搜集模块来收集并持续维护数据统计,这会降低系统吞吐量。这些模块是有限的,因为统计在需要时并不总是可用的,因此调谐自动化有时不应期望使用这些模块。例如,收集可以被关闭以在高服务器负载期间最小化开销。另一个示例是分析下推引擎的情况。在这种情况下,统计收集被延后,直到数据被卸载到分析引擎中以提高效率。卸载之前统计的不可用性导致使卸载前决策自动化的问题,诸如确定分析集群中计算机和/或数据库实例的数量、最优数据格式、数据压缩和数据布局。
3.为了解决这些问题,一些数据库系统促进按需的统计收集,诸如在直方图创建期间。这可以确保数据统计总是可用,但是有两个问题:
4.·
按需统计收集可以非常耗时,对收集的统计进行数据库调谐分析也是如此;以及
5.·
按需收集的统计的类型是硬编码的(通常用于查询优化)。如果调谐自动化随着时间的推移和/或对统计的质量和类型的依赖性改变,那么定制统计是困难且不合适的。
6.另一种解决方案是使用现有的结构化查询语言(sql)数据库系统提供的采样来手动收集数据库调谐之前所需的统计。这可以加快调谐分析时间并促进调谐自动化以定制所需的统计。但是,这种方法仍然有局限性:
7.·
性能仍然是瓶颈,因为采样是表尺寸的函数。即使是分析工作负载中使用的大型表的1%样本尺寸也会代价高昂的。
8.·
该特征要求知道样本尺寸(通常以表尺寸的百分比表示)。先验地知道最优样本百分比是困难的,并且在开始收集之前无法知道统计的质量是否足够。
9.·
过度采样会造成性能瓶颈,而采样不足会造成模型推理的不准确,尤其是在针对小表或非常小的样本百分比,样本扫描返回空或接近空结果的情况下。
10.因此,现有方法不适合从大型数据集按需收集统计,诸如特征提取,诸如用于本文呈现的机器学习(ml)模型推理。
附图说明
11.在图中:
12.图1是描绘示例数据库管理系统(dbms)的框图,该dbms使用机器学习(ml)和最小
数据采样来自优化以节省诸如执行时间、易失性存储器和/或持久性存储之类的计算机资源;
13.图2是描绘示例自优化过程的流程图,dbms可以执行该过程以自主地重新配置从而节省诸如时间和空间之类的计算机资源;
14.图3是描绘演示可以组合的附加设计选择的示例性实施例的框图;
15.图4是图示可以在其上实现本发明的实施例的计算机系统的框图;
16.图5是图示可以用于控制计算系统的操作的基本软件系统的框图。
具体实施方式
17.在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。但是,将明白的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地混淆本发明。
18.总体概述
19.本文的自主数据库服务可以通过从数据库管理员卸载繁重的任务来显著降低运营成本。诸如数据库调谐、更新和修补之类的耗时操作可以被自动化,以便还减少人为错误。本文的自主服务依赖于训练的机器学习(ml)模型,这些ml模型可以优化工作负载性能、提高可用性或降低服务成本。本文的ml模型在生产系统中实时做出决定。低时延调谐自动化对于交互式用户体验可能是重要的,并且还避免对系统吞吐量产生不当影响。实时调谐分析的一个方面是它依赖于从用户内容中提取面向数据的特征,这会变得耗时。使用静态(预先计算的)元数据不足以做出准确的调谐预测,因此有必要高效地按需收集数据统计。由于输入/输出(i/o)瓶颈,用于收集统计的现有方法使此类分析速度变慢,并且随着数据尺寸增长,问题变得更糟。
20.本文的方法基于在不牺牲ml模型准确性的情况下最小化统计收集开销的自适应采样。本文的技术一般适用于数据库管理系统(dbms)并且随着ml模型在生产系统中的演化,促进统计类型和期望的准确性的快速定制。
21.本文的统计收集方法专为ml模型设计。这促进使用自适应采样算法进行高效的ml模型推理。这也促进ml模型随时间演化所需的统计的快速重新校准,如下所示:
22.·
用于ml推理的自适应采样:这种方法使用迭代采样算法通过用消耗统计的ml模型推理建立反馈循环来收集统计。这个反馈循环促进收集过程自适应地继续,直到达到收敛准则,在这种情况下收集过程终止。这提高了收集效率,其中过度采样会变得昂贵。它还提高了统计质量,因为收集过程由消费者反馈循环本身引导,从而也解决了采样不足的问题。
23.·
快速重新校准:随着ml模型在生产系统中演化,所需统计的类型和质量要求可以改变。本文的方法提供接口以轻松地重新调整类型和质量要求。首先,统计计算和收敛准则作为用户定义的接口而暴露。这促进定制,而无需对数据库引擎的核心源代码进行昂贵的改变。其次,寻找最优统计收集配置参数的过程是自动化的。例如,样本尺寸增加和统计增量阈值是在重用相同迭代采样算法的离线模型训练阶段期间确定的。
24.·
提高自主服务的效率:可以更高效地搜集统计数据,因为可以防止过度采样问题。一旦统计的质量令人满意,统计收集的过程就停止,从而避免不必要的i/o开销。
25.·
最小化用于开发和部署的端到端时间:本文的采样方法面向正在服务的ml模型。随着ml模型的老化和不断演化,用于改变收集统计的准则的成本变得最低。不要求改变数据库引擎中的核心源代码。随着模型被更新,只有用户定义的接口需要被调整。
26.专为机器学习设计的统计收集是新颖的,如上述统计收集的快速重新校准方面那样。这些技术改进可以容易地结合到同类最佳的dbms产品中,诸如关系dbms(rdbms)。
27.在实施例中,计算机重复地对数据库内容进行采样,直到满足动态收敛准则。在一系列采样迭代的每次迭代中,对数据库表的行的子集进行采样,并基于被采样的行的子集调整数据库表的内容统计的估计。在检测到动态收敛之后,机器学习(ml)模型立即或最终基于内容统计估计来预测用于dbms的配置设置的最优值。
28.1.0示例数据库管理系统
29.图1是描绘实施例中的示例数据库管理系统(dbms)100的框图。dbms 100使用机器学习(ml)和最小数据采样来进行自优化以节省计算机资源,诸如执行时间、易失性存储器和/或持久性存储。
30.dbms 100可以由一个或多个计算机托管,诸如机架服务器,例如刀片、个人计算机、大型机、虚拟计算机或其它计算设备。当计算机100具有多个计算机时,这些计算机通过通信网络互连。dbms100可以包含数据库,该数据库包含表,诸如110,诸如关系表或列族。
31.数据库表110可以驻留在易失性和/或非易失性存储装置中。数据库表110可以具有许多行0-9和列,并且每列可以被存储为与数据库表110的行一样多的值。数据库表110具有示例列,其包含示例整数值,诸如-100和40,如图所示。例如,存储在第6行的示例列中的值为200,如图所示。
32.dbms 100可以收集关于数据库表110的各种静态和动态统计,例如行计数、复合键中的列的计数以及值分布。在实施例中,可以诸如根据数据操纵语言(dml)语句动态地添加、移除或修改内容。这种内容操纵会使数据库表110的动态统计波动,这可以使一些或所有先前收集的统计失效。例如,删除第6行会使示例列的算术平均值减小。
33.在各种实施例中,数据库表110具有固定的或不断演化的模式,该模式可以或可以不被更改,诸如根据可以添加或重新定义列、约束和索引的数据定义语言(ddl)语句。这种示意性更改虽然看似静态,但会使数据库表110的动态统计波动。例如在各种实施例中,动态统计可以通过以下发生波动:a)重新定义示例列以仅存储无符号整数,或b)在示例列上创建唯一索引。
34.在任何情况下,dbms 100的性能特点都可以取决于数据库表110的动态统计。例如,当数据库表110的行很少时,将数据库表110完全加载到易失性存储器中不会使得虚拟存储器抖动。但是,当数据库表110具有数十亿行时,将数据库表110完全加载到易失性存储器中会造成虚拟存储器的过度抖动,这会招致时延,诸如i/o(输入/输出)等待(iowait),诸如由于机械盘的旋转时延或轨道寻找。因此,dbms 100可以通过以可能依赖于数据库表110的动态统计的方式配置自身及其操作来自优化性能。
35.在所示示例中,示例列的基数是数据库表110的重要动态统计。列的基数是列中的不同值(distinct value)的计数,诸如根据例如不同值的数量(ndv)之类的度量。dbms 100可以使用这种列基数来配置直方图、散列表或索引,诸如用于数据的分组、排序或接合。例如,配置具有更多桶/区间的散列表会减少散列冲突(即,时间),但增加存储器需求(即,空
间)。因此,散列表配置可能需要时间和空间之间的性能权衡。查找最优数量的区间可以取决于示例列的基数。
36.示例列的实际基数如图所示为五,这意味着示例列包含五个不同的值,示例列中的值是那五个不同值的副本。实际基数可以通过索引的扫描被精确测量,或者如果没有索引可用,那么通过表扫描检查所有表行0-9中存储在示例列中的所有值,包括副本。由于i/o,表扫描是缓慢的并且会造成以下方面的抖动:a)虚拟存储器,或b)数据库高速缓存,诸如行高速缓存或数据块高速缓存。除了基数之外,其它动态统计可以需要表扫描,诸如针对示例列的其它值统计,诸如最小值、最大值、算术平均值、统计模式、方差、标准偏差和熵。例如,此类值统计可以揭示数据歪斜,数据歪斜可能诸如通过诱导散列函数的偏差或多级散列树的不平衡来使次优配置的散列表的性能降级。
37.dbms 100改为通过以下方式避免对那些动态统计中任何一个进行表扫描:a)仅对可用值的子集进行采样,以及b)从被采样的值估计(一个或多个)动态统计。例如,如果加速是单一的,那么采样可用值的百分之一会导致与表扫描相比加速100倍。虽然较小的样本量更能加速统计估计,但样本尺寸越小,统计的估计就越不准确。
38.因此,样本尺寸调整需要在更快的估计与由于不准确性而可能减慢dbms 100和/或增加存储器消耗的次优数据库配置之间进行权衡。例如,当数据库表有数十亿行时,十分之一或百分之一的样本尺寸可以提供足够的准确性,从而几乎最优地配置dbms 100。但是,对示例列中所示的值的百分之十进行采样提供的估计基数为一,这以五分之一是不准确的,在一些场景中,这会由于造成错误配置而显著降级dbms 100的性能。
39.因此,样本尺寸,作为可用数据的百分比或作为值的数量,不应当是固定的。样本尺寸应当取决于可用数据中(诸如,在示例列中)的值分布。在以下情况下会出现技术困境:a)使用采样来避免表扫描,b)样本尺寸取决于值分布,以及c)检测值分布需要应当被避免的表扫描。本文的方法通过递增地增加样本尺寸直到基于如下协作的内容统计估计130、机器学习模型140、最优值150、配置设置160和采样迭代a-c动态检测到统计收敛来克服这个技术问题。
40.2.0示例自优化过程
41.图2是描绘示例自优化过程的流程图,dbms 100可以执行该过程以自主地重新配置从而节省计算机资源(诸如时间和空间),如上面讨论的。参考图1讨论图2。
42.图2的过程分两个阶段进行。步骤201-203在采样阶段的迭代a-c期间重复地发生。步骤204-205在紧接着或最终跟随采样阶段的调谐阶段期间发生。步骤203检测采样阶段何时应当停止。
43.可以在诸如a-c之类的采样迭代序列的每次迭代中重复步骤201-202。各种实施例或场景中的各种原因可以发起迭代序列。示例发起原因包括:dml语句准备,诸如开放式数据库连接性(odbc)准备的语句、查询计划的开始或完成,以及dbms 100的自主性,诸如:使工作负载波动(诸如需求尖峰或闲置或抖动)、诸如通过定时器被调度、阶段性(诸如用于归档或报告或提取/翻译/加载(etl))、资源的可用性(诸如磁盘空间或易失性存储器)、示意图(诸如表截断或索引创建),或数据库触发。
44.步骤201对数据库表110的行0-9的子集进行采样。在每次采样迭代a-c中,步骤201将累积样本尺寸增加某个量,在各种实施例中,该量是固定的,诸如如图所示的或动态调整
的。如每次迭代中所示,将另外两个样本添加到累积样本中,该累积样本在迭代b中增长到四个并且在迭代c中增长到六个。
45.一旦添加到累积样本中,样本就将保留在所有后续迭代的累积样本中。对于累积样本,每次迭代都会添加样本的不相交集合。例如,在迭代a中被采样的第4行将不会在后续迭代中被采样,即使第4行保留在用于所有后续迭代b-c的累积样本中。但是,相同或不同迭代的不同被采样行可能巧合地具有重复值。例如,迭代c中的两个样本巧合地具有相同的值。
46.直到迭代c才对第7行和第9行进行采样,这使得累积样本包括第1-2、4-5、7和9行。一些行从未被采样,诸如第3、6和8行。通常大多数或几乎所有行在迭代的序列中都不会被采样,尤其是如果数据库表有很多行的话。
47.在这个示例中,对行进行采样需要对存储在该行的示例列中的值进行采样。其它示例中的单个样本可以包括多个列的值:同一行或同一雪花实例,诸如在线分析处理(olap)期间返回的多维星形。例如,单个样本可能需要几个结构化查询语言(sql)运算符、表达式和/或用户定义的函数(udf)。由于表达式处理,存储在同一表列的不同行中的不同值会产生相同的样本值。例如,表示不同相应日期的两个不同时间戳会产生相同的被采样月。
48.步骤202基于当前采样迭代的行的子集的样本和/或累积样本来调整数据库表110的内容统计估计。例如,示例列中的最小值可以是在迭代a中可被估计为零的内容统计。所估计的最小值在迭代b中将减小到-100并且在迭代c中不变。在实施例中,所估计的最小值可以按比例缩放,诸如与采样比率成反比。例如,当累积样本中包括一半的可用数据时,估计的最小值可以加倍。
49.如图所示,示例列的基数可以是内容统计。随着被采样,在相应的迭代a-c中有2-4个累积的不同值。如图所示,估计的基数可以根据累积采样比率被反向缩放,使得估计的基数(如由步骤202调整的)在相应的迭代a-c中可以是10、7.5和6.7。如图所示,实际基数为五。因此,基于增加的累积样本尺寸,步骤202的重复调整增加了所估计的基数的准确性。
50.但是,准确性的提高会随着每次迭代而减少。如图所示,迭代b将估计的基数修订了25%,但迭代c仅修订了11%。因此,内容统计的重复估计或多或少单调地收敛于实际统计。
51.在随后的迭代中,朝着实际统计的进展速率通常会降低。因此,早期迭代的统计显著性增加,而后期迭代的统计显著性降低。因此,较晚的迭代不如较早的迭代重要并且可以被避免以节省时间和电力而不过度降低准确性。
52.每次迭代的结束可以是步骤203,其检测是否满足一个或多个动态收敛准则。在各种实施例中,如果满足一个或所有收敛准则,那么迭代停止并且步骤204可以立即或最终发生。如果步骤203没有检测到动态收敛,那么通过在下一次迭代中重复步骤201-202来继续迭代。
53.各种实施例可以具有各种动态收敛阈值,诸如:最大迭代次数、最大时间、最大累积样本尺寸、最大累积采样比率和内容统计估计的最小百分比或绝对变化。如图所示,步骤203可以通过检测以下情况而停止迭代:发生了三次迭代、迭代花费了超过900毫秒、超过一半的可用数据被累积采样,和/或估计的基数在迭代c中变化小于15%。实施例可以将迭代
扩展到超过诸如估计变化百分比之类的收敛阈值,例如以至少实现以下的最小量:迭代次数、时间、累积样本尺寸和/或累积采样比率。在各种实施例或示例中,相应的udf可以计算以下之一:一次或所有迭代的样本尺寸、累积的不同值或其它基于采样的事实、估计的统计(诸如估计的基数、迭代之间的估计的百分比或绝对变化,以及收敛检测)。
54.内容统计估计130是:a)所估计的示例列的基数,b)采样阶段的结果,以及c)由步骤202中的最后一次迭代c计算。基于内容统计估计130,机器学习(ml)模型140在步骤204中预测用于dbms100的配置设置160的最优值150。例如,配置设置160可以是以位或字节为单位的散列值宽度,较宽的散列值可能通过最小化散列冲突而反直觉地更快,并且较窄的散列值可能反直觉地使得散列表消耗更多存储器。因此,配置设置160可能需要时间与空间之间的权衡,最优值150是预测的所谓甜蜜点,其可以取决于诸如内容统计估计130之类的动态条件。
55.计算最优值150可能需要数学优化,这是ml模型140的目的。ml模型140可以从数字和/或符号输入(包括内容统计估计,诸如130)预测/推断最优值150。在各种示例中ml模型140可以是随机森林、线性或逻辑回归器、人工神经网络(ann)或支持向量机(svm)。在这个示例中,ml模型140已经被训练,诸如通过强化学习,诸如用训练数据的语料库,诸如通过梯度下降和/或如本文稍后讨论的。取决于配置设置160的性质,最优值150可以是数字的或分类的/符号的。例如,最优值150可以是诸如配置切换之类的布尔值或诸如选择列举的散列表种类之一或列举的散列函数之一的分类值。
56.在步骤205中,dbms 100通过将最优值150指派给配置设置160来自主地重新配置自身。在另一个示例中,步骤205可以将相应的最优值指派给多个配置设置,诸如散列值宽度、散列区间计数、以及散列函数,诸如制定、配置和/或执行查询计划所需的。多个配置设置可以具有由相同或不同模型种类的相同或不同ml模型预测的相应最优值。例如,可以通过同一个线性回归器来预测散列值宽度和散列区间计数,并且可以通过svm来选择散列函数。各个最优值可以不共享、共享其部分或所有的可用输入,诸如内容统计估计,诸如130。例如,线性回归器和svm可以接受相同的内容统计估计130作为输入,但svm可能需要附加的输入,该附加的输入包括对相同或不同数据库表的相同或不同表列的其它内容统计的估计。
57.取决于场景,相同的被采样的表行2可以在同一采样迭代期间贡献来自相同或不同列的(一个或多个)值以估计不同的内容统计。例如,来自示例列的相同被采样值会影响估计的基数、估计的最大值和估计的算术平均值。在另一个示例中,同一被采样表行2的不同列为不同的内容统计的估计贡献了相应的值,诸如相应的方差。
58.因为采样迭代期间的动态收敛取决于数据库表的内容和统计的语义,所以对于不同的内容统计,收敛可能出现同一采样阶段的相应不同迭代中。例如,示例列的基数估计在迭代c中收敛,但同一个示例列的最小值或模式的估计可能需要附加的迭代。同样,对于同一数据库表的不同的相应列,相同的基数估计函数可以在不同的迭代中收敛。例如,同一数据库表中同一整数数据类型的两列的方差估计可以在不同的迭代中收敛,即使这两个估计都具有相同的表行可供采样。
59.ml模型140应当在部署到生产环境中之前在实验室中进行训练。在实施例中,ml模型140是用语料库训练的,该语料库包括:真实的数据库内容,诸如来自生产,诸如当训练需
要采样时和/或,在监督式学习的情况下,在训练中避免对数据库内容的需要的实际内容统计(诸如当训练避免采样时)。
60.在实施例中,ml模型140的监督式训练包括验证和/或测试阶段,该阶段需要:a)基于估计的内容统计调用ml模型140,该估计的内容统计基于采样实际内容来预测第一最优值150,和b)基于相同实际内容的实际统计调用ml模型140以预测用于相同配置设置160的第二最优值150。在验证或测试期间,第一和第二最优值150可以与分数比较或以其它方式评估ml模型140的适合度/就绪情况。
61.如上面所解释的,ml模型140参与调谐阶段的步骤204并且只需要被调用一次,使得最优值150只被计算一次。一个实施例还可以将ml模型140结合到检测何时停止采样阶段的步骤203中。如上面所解释的,步骤203的动态收敛检测可以监视估计的内容统计(诸如估计的基数)的相对或绝对变化量值。
62.实施例可以在每次采样迭代中的步骤203中附加地或代替地调用ml模型140以监视对重复计算的最优值150的改变的相对或绝对量值。例如,当最优值150改变了小于相对或绝对阈值量时,收敛发生。因此,ml模型140可以参与检测何时停止迭代采样的反馈控制循环。
63.3.0示例性实施例
64.图3是描绘以下示例性实施例的框图,该示例性实施例演示可以与本文早先呈现的实施例组合的附加设计选择。这些附加设计选择不是本文先前呈现的实施例的要求。
65.在实验研究期间,示例性实施例对总尺寸为100gb(4亿行)的数据库表进行了采样。对于数据库表的三列,自适应地估计了平均列字符串长度统计。统计数据收敛于仅0.01%的样本尺寸,与0.1%的固定样本尺寸相比提供了10倍的加速,并且与所有可用行的表扫描相比提供了900倍的加速。
66.示例性实施例可以利用用户定义的组件来实现,以供在包括ml模型推断的中央统计收集循环内使用。这些用户定义的组件i-iv是:
67.i.所收集的统计的类型;
68.ii.效用函数320,其定义收集的统计与推理结果之间的反馈循环;
69.iii.收敛准则函数330,其确定多早终止收集过程;以及
70.iv.自适应采样340提供将以上组件i-iii连接在一起的中央循环。
71.用户定义的组件i-iv中的每一个的细节如下:
72.i.用户定义的统计310:各种需要的统计数据定义ml模型推理的特征输入。例如,特定特征可以是文本列中其字符串长度超过100个字符的值的计数。提供用户定义的统计310接口促进用户的直接定制。用于用户定义的统计310的接口包括:统计值计算函数312、统计状态313和统计目标数据类型311,这将在后面讨论。
73.ii.用户定义的效用函数320:用户定义的效用函数320在ml模型推理(统计消费者)与收集过程(统计生产者)之间建立反馈循环。如本文稍后讨论的,这促进根据用户定义的质量准则331来测量统计的质量,而不是根据所收集的个体统计的准确性。用户定义的效用函数320返回被用于确定统计收集的终止条件的单个分数。ml模型推理可以要求收集多个统计,这些统计随后直接地或者通过附加转换被用作特征。但是,并非所有特征对推理过程都同样重要。用户定义的效用函数320可以是确定所收集的统计的充分质量准则331的重
要机制。例如,在简单的线性回归模型用例中,用户定义的效用函数320可以是ml模型推理值本身,其中ml模型输出可以被用于确定所收集的统计(输入特征)的效用。对于更复杂的模型,可以使用特征等级的加权平均来实现这种函数。
74.iii.用户定义的收敛准则330:示例性实施例中的中心思想之一是确定何时终止统计收集过程。早期终止减少ml模型推理的整体时延并提高效率。由用户定义的效用函数320产生的分数被用于在给定某个用户定义的收敛准则330(终止策略)的情况下确定终止。如本文稍后讨论的,可以有多个协同工作的收敛准则。
75.iv.自适应采样340:上面定义的组件i-iii使用中央循环捆绑在一起,中央循环自适应地增加为计算统计而访问的数据量。最终,循环基于用户定义的效用函数320分数和收敛准则330终止。这个循环的主要职责在本文稍后呈现。
76.3.1用于用户定义的统计类型的示例性接口用于用户定义的统计310的接口包括统计元素q-s如下:
77.q.统计目标数据类型311:这个映射使用户能够限制对于特定数据类型的统计收集。例如,用户可能只想计算字符串类型列的平均字符串长度统计,因为固定宽度列的宽度统计已经可以使用表元数据(诸如关系模式)获得。
78.r.统计计算函数312:用户定义的函数,其实现用于计算统计的算法。这可以是用于与基数相关的统计的计数器的直接增量,或者可以是复杂的算法(诸如hyperloglog)以计算不同值的数量(ndv)。
79.s.统计状态313:统计计算算法要求存储器内统计状态313。对于计算平均值,这可以是存储运行计数和求和值以计算平均值的整数。对于hyperloglog++,与hyperloglog相比,它具有增加的准确性和减少的存储器使用,这可以是压缩草图表示以对不同值的数量保持跟踪。
80.3.2示例性动态收敛准则
81.动态收敛准则330的各种组合(诸如t-w)可以如下一起工作:
82.t.统计质量331:使用这个策略,如果由用户定义的效用函数320提供的分数基本上没有改变(即,超过用户提供的阈值),那么终止收集过程。
83.u.数据量332:收集期间访问的最大行数可以作为故障安全机制进行界定。如果用户定义的效用函数320不收敛,那么这个策略将防止扫描整个表。
84.v.时间预算333:此外,收集过程可以由持续时间界定,以便在合理的时间内完成统计。如果表不可用(由于锁定)会延迟或阻止收集过程,那么这将特别有用。
85.w.数据库活动334:用于ml模型推理的统计收集应当在生产系统上执行,这是有风险的,因为生产需求波动性会危及可靠性、可用性和可服务性(ras),诸如在需求尖峰期间。例如,统计收集会在最坏的可能时间进一步加重系统压力。代替地,收集可以暂时推迟到数据库活动较少时,或者统计收集过程可以在意外的需求尖峰期间提前终止。
86.3.3用于自适应采样的示例性中央循环
87.用于自适应采样的中央循环340的主要职责x-z如下:
88.x.验证341:中央循环执行所有元数据检查以确保用户有权访问数据并且支持用于使用本文早先定义的统计目标类型映射的收集的数据类型。这个循环执行错误处置并跳过任何数据源,以防出现不受支持的类型或由于锁定、访问权限或损坏导致数据不可用。
89.y.迭代采样342:该方法使用由数据库存储引擎提供的样本迭代器来访问统一的随机样本。可以以行粒度或行的集合(例如,512行或包含固定或变化量的行的一个数据库块)执行迭代式采样342。样本迭代器提供对新数据的访问,以增加每一步的总样本尺寸。该方法确保在访问新样本时计算用于所有列的所有统计。对于每个新样本,使用统计计算函数并且基于到目前为止采样的数据更新统计状态313。
90.z.自适应收敛343:一旦样本被处理,就计算来自用户定义的效用函数320的输出并且测试收敛准则330以确定收集过程的结束。这确保收集过程以合理的质量早期终止。
91.3.4示例性ml模型生命周期
92.由于ml模型随着时间的推移而演化,它们可能需要在生产系统上被重新训练和重新部署。这可以要求基于数据统计对输入特征集合的改变。示例性实施例基于易于更新的用户定义的接口。接口作为数据库udf对象被实现,因此更新与内部数据库引擎代码库隔离。
93.在更新用户定义的接口之后,剩下的唯一任务是用于自适应采样算法340的配置参数调谐。这可以包括配置参数,诸如收敛准则增量阈值、最大行数限制和每次迭代中的样本增加尺寸。虽然配置参数可以容易地手动调谐,但实验依赖于涉及经训练的ml模型本身的自动化过程,诸如本文前面呈现的实施例所讨论的。这些配置参数与图1的配置设置160不同。
94.用户可以在离线ml模型训练期间使用真实的统计。一旦ml模型经过训练,就通过计算使用真实统计的ml模型推断与使用自适应采样340的技术的ml模型推断之间的偏差来发现配置参数。作为配置参数的函数,梯度下降可以被用于如本文稍后讨论的那样最小化诸如反向传播期间的偏差。
95.4.0数据库概述
96.本发明的实施例在数据库管理系统(dbms)的上下文中使用。因此,提供示例dbms的描述。
97.一般而言,服务器(诸如数据库服务器)是集成的软件组件和计算资源(诸如存储器、节点和节点上用于执行集成的软件组件的进程)的分配的组合,其中软件和计算资源的组合专用于代表服务器的客户端提供特定类型的功能。数据库服务器支配并促进对特定数据库的访问,处理客户端访问数据库的请求。
98.用户通过向数据库服务器提交命令来与dbms的数据库服务器交互,这些命令使数据库服务器对存储在数据库中的数据执行操作。用户可以是在与数据库服务器交互的客户端计算机上运行的一个或多个应用。多个用户在本文中也可以统称为用户。
99.数据库包括存储在持久性存储器机制(诸如一组硬盘)上的数据和数据库字典。数据库由其自己单独的数据库字典定义。数据库字典包括定义包含在数据库中的数据库对象的元数据。实际上,数据库字典定义了数据库的大部分内容。数据库对象包括表、表列和表空间。表空间是用于存储各种类型的数据库对象(诸如表)的数据的一个或多个文件的集合。如果数据库对象的数据被存储在表空间中,那么数据库字典将数据库对象映射到保持该数据库对象的数据的一个或多个表空间。
100.dbms参考数据库字典以确定如何执行提交给dbms的数据库命令。数据库命令可以访问由字典定义的数据库对象。
101.数据库命令可以是数据库语句的形式。为了让数据库服务器处理数据库语句,数据库语句必须符合由数据库服务器支持的数据库语言。由许多数据库服务器支持的数据库语言的一个非限制性示例是sql,包括诸如oracle(诸如oracle database 11g)之类的数据库服务器支持的专有形式的sql。sql数据定义语言(“ddl”)指令被发布给数据库服务器以创建或配置数据库对象,诸如表、视图或复杂类型。数据操纵语言(“dml”)指令被发布给dbms以管理存储在数据库结构中的数据。例如,select、insert、update和delete是一些sql实施方式中常见的dml指令的示例。sql/xml是在对象-关系数据库中操纵xml数据时使用的sql的常见扩展。
102.多节点数据库管理系统由共享对同一数据库的访问的互连节点构成。通常,节点经由网络互连并在不同程度上共享对共享存储装置的访问,诸如共享对一组盘驱动器和存储在其上的数据块的访问。多节点数据库系统中的节点可以是经由网络互连的一组计算机的形式,诸如工作站和/或个人计算机。可替代地,节点可以是网格的节点,网格由与机架上的其它服务器刀片互连的服务器刀片形式的节点组成。
103.多节点数据库系统中的每个节点都托管数据库服务器。服务器(诸如数据库服务器)是集成的软件组件和计算资源(诸如存储器、节点和节点上用于在处理器上执行集成的软件组件的进程)的分配的组合,软件和计算资源的组合专用于代表一个或多个客户端执行特定功能。
104.来自多节点数据库系统中多个节点的资源可以分配给运行特定数据库服务器的软件。来自节点的软件和资源分配的每个组合是本文被称为“服务器实例”或“实例”的服务器。数据库服务器可以包括多个数据库实例,其中一些或全部在单独的计算机上(包括单独的服务器刀片)运行。
105.4.1查询处理
106.查询是表达式、命令或命令的集合,当其被执行时使得服务器对数据的集合执行一个或多个操作。查询可以指定要从中确定(一个或多个)结果集合的(一个或多个)源数据对象,诸如(一个或多个)表、(一个或多个)列、(一个或多个)视图或(一个或多个)快照。例如,(一个或多个)源数据对象可以出现在结构化查询语言(“sql”)查询的from子句中。sql是众所周知的用于查询数据库对象的示例语言。如本文所使用的,术语“查询”被用于指表示查询的任何形式,包括数据库语句形式的查询和用于内部查询表示的任何数据结构。术语“表”是指由查询引用或定义并表示行的集合的任何源对象,诸如数据库表、视图或内联查询块(诸如内联视图或子查询)。
107.查询可以在加载(一个或多个)对象时逐行对来自(一个或多个)源数据对象的数据执行操作,或者在已加载(一个或多个)对象后对(一个或多个)整个源数据对象执行操作。可以使由某个(一些)操作生成的结果集合可用于(一个或多个)其它操作,并且,以这种方式,结果集合可以基于某些准则被过滤掉或缩小范围,和/或与其它(一个或多个)结果集合和/或(一个或多个)其它源数据对象接合或组合。
108.子查询是查询的一部分或组成部分,它不同于查询的(一个或多个)其它部分或(一个或多个)组成部分,并且可以与查询的(一个或多个)其它部分或(一个或多个)组成部分分开评估(即,作为单独的查询)。查询的其它部分或组成部分可以形成外部查询,该外部查询可以包括或者可以不包括其它子查询。在为外部查询计算结果时,可以单独评估嵌套
在外部查询中的子查询一次或多次。
109.一般而言,查询解析器接收查询语句并生成查询语句的内部查询表示。通常,内部查询表示是相互关联的数据结构的集合,其表示查询语句的各种组成部分和结构。
110.内部查询表示可以是节点的图的形式,每个相互关联的数据结构与节点并与所表示的查询语句的组成部分对应。内部表示通常在存储器中生成,用于评估、操纵和变换。
111.硬件概述
112.根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备(诸如被持久地编程为执行这些技术的一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、asic或fpga与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。
113.例如,图4是图示可以在其上实现本发明实施例的计算机系统400的框图。计算机系统400包括总线402或用于传送信息的其它通信机制,以及与总线402耦合以处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。
114.计算机系统400还包括耦合到总线402的主存储器406,诸如随机存取存储器(ram)或其它动态存储设备,用于存储将由处理器404执行的信息和指令。主存储器406还可以用于存储在由处理器404执行的指令的执行期间的临时变量或其它中间信息。当存储在处理器404可访问的非暂态存储介质中时,这些指令使计算机系统400成为被定制以执行指令中指定的操作的专用机器。
115.计算机系统400还包括耦合到总线402的只读存储器(rom)408或其它静态存储设备,用于存储用于处理器404的静态信息和指令。存储设备410(诸如磁盘、光盘或固态驱动器)被提供并耦合到总线402,用于存储信息和指令。
116.计算机系统400可以经由总线402耦合到显示器412(诸如阴极射线管(crt)),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备414耦合到总线402,用于将信息和命令选择传送到处理器404。另一种类型的用户输入设备是光标控件416(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器404并用于控制显示器412上的光标移动。这种输入设备通常在两个轴上具有两个自由度,第一轴(例如,x)和第二轴(例如,y),这促进设备指定平面中的位置。
117.计算机系统400可以使用定制的硬连线逻辑、一个或多个asic或fpga、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统400成为或将计算机系统400编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器404执行包含在主存储器406中的一个或多个指令的一个或多个序列,计算机系统400执行本文的技术。这些指令可以从另一个存储介质(诸如存储设备410)读入到主存储器406中。包含在主存储器406中的指令序列的执行使得处理器404执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。
118.如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非暂态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质
包括例如光盘、磁盘或固态驱动器,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光学数据存储介质、任何具有孔图案的物理介质、ram、prom和eprom、flash-eprom、nvram、任何其它存储器芯片或盒。
119.存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线402的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
120.各种形式的介质可以参与将一个或多个指令的一个或多个序列传送到处理器404以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统400本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线402上。总线402将数据传送到主存储器406,处理器404从主存储器406检索并执行指令。由主存储器2406接收的指令可以可选地在由处理器404执行之前或之后存储在存储设备410上。
121.计算机系统400还包括耦合到总线402的通信接口418。通信接口418提供耦合到网络链路420的双向数据通信,其中网络链路420连接到本地网络422。例如,通信接口418可以是集成服务数字网(isdn)卡、电缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口418可以是局域网(lan)卡,以提供与兼容lan的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口418发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。
122.网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路420可以提供通过本地网络422到主计算机424或到由互联网服务提供商(isp)426操作的数据设备的连接。isp 426进而通过全球分组数据通信网络(现在通常称为“互联网”428)提供数据通信服务。本地网络422和互联网428都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链路420上并通过通信接口418的信号(其携带去往或来自计算机系统400的数字数据)是传输介质的示例形式。
123.计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在互联网示例中,服务器430可以通过互联网428、isp 426、本地网络422和通信接口418发送对应用程序的所请求代码。
124.接收到的代码可以在被接收到时由处理器404执行,和/或存储在存储设备410或其它非易失性存储器中以供稍后执行。
125.软件概述
126.图5是可以用于控制计算系统400的操作的基本软件系统500的框图。软件系统500及其组件,包括它们的连接、关系和函数,仅仅是示例性的,并且不意味着限制(一个或多个)示例实施例的实现。适于实现(一个或多个)示例实施例的其它软件系统可以具有不同的组件,包括具有不同的连接、关系和函数的组件。
127.软件系统500被提供用于指导计算系统400的操作。可以存储在系统存储器(ram)406和固定存储装置(例如,硬盘或闪存)410上的软件系统500包括内核或操作系统(os)510。
128.os 510管理计算机操作的低级方面,包括管理进程的执行、存储器分配、文件输入和输出(i/o)以及设备i/o。表示为502a、502b、502c...502n的一个或多个应用可以被“加载”(例如,从固定存储装置410传送到存储器406中)以供系统500执行。意图在计算机系统400上使用的应用或其它软件也可以被存储为可下载的计算机可执行指令集,例如,用于从互联网位置(例如,web服务器、app商店或其它在线服务)下载和安装。
129.软件系统500包括图形用户界面(gui)515,用于以图形(例如,“点击”或“触摸手势”)方式接收用户命令和数据。进而,这些输入可以由系统500根据来自操作系统510和/或(一个或多个)应用502的指令来操作。gui 515还用于显示来自os 510和(一个或多个)应用502的操作结果,用户可以提供附加的输入或终止会话(例如,注销)。
130.os 510可以直接在计算机系统400的裸硬件520(例如,(一个或多个)处理器404)上执行。可替代地,管理程序或虚拟机监视器(vmm)530可以介于裸硬件520和os 510之间。在这个配置中,vmm 530充当os 510与计算机系统400的裸硬件520之间的软件“缓冲”或虚拟化层。
131.vmm 530实例化并运行一个或多个虚拟机实例(“客户机”)。每个客户机包括“客户”操作系统(诸如os 510),以及被设计为在客户操作系统上执行的一个或多个应用(诸如(一个或多个)应用502)。vmm 530向客户操作系统呈现虚拟操作平台并管理客户操作系统的执行。
132.在一些实例中,vmm 530可以促进客户操作系统(os)如同它直接在计算机系统400的裸硬件520上运行一样运行。在这些实例中,被配置为直接在裸硬件520上执行的客户操作系统的相同版本也可以在vmm 530上执行而无需修改或重新配置。换句话说,vmm 530可以在一些情况下向客户操作系统提供完全硬件和cpu虚拟化。
133.在其它实例中,客户操作系统可以被专门设计或配置为在vmm530上执行以提高效率。在这些实例中,客户操作系统“意识到”它在虚拟机监视器上执行。换句话说,vmm 530可以在某些情况下向客户操作系统提供半虚拟化。
134.计算机系统进程包括硬件处理器时间的分配、以及存储器的分配(物理和/或虚拟)、用于存储由硬件处理器执行的指令的存储器的分配,用于存储由硬件处理器执行指令所生成的数据,和/或用于当计算机系统进程未运行时在硬件处理器时间的分配之间存储硬件处理器状态(例如,寄存器的内容)。计算机系统进程在操作系统的控制下运行,并且可以在计算机系统上执行的其它程序的控制下运行。
135.云计算
136.本文一般地使用术语“云计算”来描述计算模型,该计算模型使得能够按需访问计算资源的共享池,诸如计算机网络、服务器、软件应用和服务,并且促进以最少的管理工作或服务提供商交互来快速提供和释放资源。
137.云计算环境(有时称为云环境或云)可以以各种不同方式实现,以最好地适应不同要求。例如,在公共云环境中,底层计算基础设施由组织拥有,该组织使其云服务可供其它组织或公众使用。相反,私有云环境一般仅供单个组织使用或在单个组织内使用。社区云旨在由社区内的若干组织共享;而混合云包括通过数据和应用可移植性绑定在一起的两种或更多种类型的云(例如,私有、社区或公共)。
138.一般而言,云计算模型使得先前可能由组织自己的信息技术部门提供的那些职责
中的一些改为作为云环境内的服务层来输送,以供消费者使用(根据云的公共/私人性质,在组织内部或外部)。取决于特定实现,由每个云服务层提供或在每个云服务层内提供的组件或特征的精确定义可以有所不同,但常见示例包括:软件即服务(saas),其中消费者使用在云基础设施上运行的软件应用,同时saas提供者管理或控制底层云基础设施和应用。平台即服务(paas),其中消费者可以使用由paas的供应者支持的软件编程语言和开发工具,以开发、部署和以其它方式控制它们自己的应用,同时paas提供者管理或控制云环境的其它方面(即,运行时执行环境下的一切)。基础设施即服务(iaas),其中消费者可以部署和运行任意软件应用,和/或提供进程、存储装置、网络和其它基础计算资源,同时iaas提供者管理或控制底层物理云基础设施(即,操作系统层下面的一切)。数据库即服务(dbaas),其中消费者使用在云基础设施上运行的数据库服务器或数据库管理系统,同时dbaas提供者管理或控制底层云基础设施和应用。
139.给出上述基本计算机硬件和软件以及云计算环境是为了说明可以用于实现(一个或多个)示例实施例的基本底层计算机组件。但是,(一个或多个)示例实施例不必限于任何特定的计算环境或计算设备配置。代替地,根据本公开,(一个或多个)示例实施例可以在本领域技术人员鉴于本公开将理解为能够支持本文给出的(一个或多个)示例实施例的特征和函数的任何类型的系统体系架构或处理环境中实现。
140.机器学习模型
141.使用特定的机器学习算法来训练机器学习模型。一旦被训练,就将输入应用于机器学习模型以进行预测,该预测在本文中也可以被称为谓词输出或输出。输入的属性可以被称为特征,并且特征的值在本文中可以被称为特征值。
142.机器学习模型包括模型数据表示或模型产物。模型产物包括参数值,这些参数值在本文中可以被称为theta值,并且由机器学习算法将其应用于输入以生成预测的输出。训练机器学习模型需要确定模型产物的theta值。theta值的结构和组织取决于机器学习算法。
143.在监督式训练中,训练数据被监督式训练算法用来训练机器学习模型。训练数据包括输入和“已知的”输出。在实施例中,监督式训练算法是迭代过程。在每次迭代中,机器学习算法将模型产物和输入应用于生成预测输出。使用目标函数计算预测的输出与已知的输出之间的误差或方差。实际上,目标函数的输出基于迭代中模型产物的特定状态来指示机器学习模型的准确性。通过应用基于目标函数的优化算法,可以调节模型产物的theta值。优化算法的示例是梯度下降。可以重复迭代,直到实现期望的准确性或满足某个其它准则为止。
144.在软件实施方式中,当将机器学习模型称为接收输入、执行和/或生成输出或谓词时,执行机器学习算法的计算机系统处理将模型产物应用于输入以生成预测的输出。计算机系统处理通过执行被配置为引起算法执行的软件来执行机器学习算法。
145.机器学习(ml)擅长的问题类别包括聚类、分类、回归、异常检测、预测和降维(即,简化)。机器学习算法的示例包括决策树、支持向量机(svm)、贝叶斯网络、诸如遗传算法(ga)之类的随机算法以及诸如人工神经网络(ann)之类的连接主义拓扑。机器学习的实施方式可以依赖于矩阵、符号模型以及分层和/或关联的数据结构。同类最佳的机器学习算法的参数化(即,可配置)实施方式可以在开源库中找到,诸如google的用于python和c++的
tensorflow或佐治亚理工学院的用于c++的mlpack。shogun是开源c++ml库,其带有用于几种编程语言(包括c#、ruby、lua、java、matlab、r和python)的适配器。
146.人工神经网络
147.人工神经网络(ann)是在高级别对由有向边互连的神经元系统进行建模的机器学习模型。在分层前馈神经网络的上下文中描述神经网络的概述。其它类型的神经网络共享下面描述的神经网络的特点。
148.在诸如多层感知器(mlp)之类的分层前馈网络中,每一层包括一组神经元。分层的神经网络包括输入层、输出层和被称为隐藏层的一个或多个中间层。
149.输入层和输出层中的神经元分别被称为输入神经元和输出神经元。隐藏层或输出层中的神经元在本文中可以被称为激活神经元。激活神经元与激活函数相关联。输入层不包含任何激活神经元。
150.从输入层和隐藏层中的每个神经元出发,在后续的隐藏层或输出层中存在一条或多条指向激活神经元的有向边。每条边与权重相关联。从神经元到激活神经元的边表示从神经元到激活神经元的输入,如由权重调节的。
151.对于神经网络的给定输入,神经网络中的每个神经元具有激活值。对于输入神经元,激活值只是该输入的输入值。对于激活神经元,激活值是激活神经元的相应激活函数的输出。
152.从特定神经元到激活神经元的每条边表示特定神经元的激活值是激活神经元的输入,即,激活神经元的激活函数的输入,如由边的权重调节的。因此,后续层中的激活神经元表示特定神经元的激活值是对激活神经元的激活函数的输入,如由边的权重调节的。激活神经元可以具有指向激活神经元的多条边,每条边表示来自源起源神经元的激活值(如由边的权重调节的)是激活神经元的激活函数的输入。
153.每个激活神经元与偏置相关联。为了生成激活神经元的激活值,将神经元的激活函数应用于加权的激活值和偏置。
154.神经网络的说明性数据结构
155.神经网络的产物可以包括权重和偏置的矩阵。训练神经网络可以迭代地调节权重和偏置的矩阵。
156.对于分层的前馈网络以及其它类型的神经网络,产物可以包括边w的一个或多个矩阵。矩阵w表示从层l-1到层l的边。假设层l-1和l中神经元的数量分别为n[l-1]和n[l],那么矩阵w的维度为n[l-1]列和n[l]行。
[0157]
特定层l的偏置也可以存储在具有n[l]行、一列的矩阵b中。
[0158]
矩阵w和b可以作为向量或数组存储在ram存储器中,或以逗号分隔的值集合存储在存储器中。当产物被持久存储在持久性存储装置中时,矩阵w和b可以以压缩和/串行化形式或其它合适的持久性形式存储为逗号分隔的值。
[0159]
应用于神经网络的特定输入包括每个输入神经元的值。特定输入可以被存储为向量。训练数据包括多个输入,每个输入被称为样本集合中的样本。每个样本包括每个输入神经元的值。样本可以存储为输入值的向量,而多个样本可以存储为矩阵,矩阵中的每一行是一个样本。
[0160]
当将输入应用于神经网络时,将为隐藏层和输出层生成激活值。对于每一层,激活
layer perceptron”中讲授了用于前馈多层感知器(mlp)的示例数学公式和技术,包括矩阵运算和反向传播。
[0168]
模型训练可以是监督式的,或者是非监督式的。对于监督式训练,对于训练集中的每个示例已经知道期望的(即,正确的)输出。训练集是通过(例如,人类专家)预先为每个示例指派分类标签来配置的。例如,用于光学字符识别的训练集可以具有各个字母的模糊照片,并且专家可以根据显示的是哪个字母来预先标记每张照片。如上面所解释的,误差计算和反向传播发生。
[0169]
因为需要在训练期间发现期望的输出,所以涉及更多的是非监督式模型训练。非监督式训练可以更容易采用,因为不需要人类专家来预先标记训练示例。因此,非监督式训练节省人力。实现非监督式训练的自然方式是利用自动编码器,它是一种ann。自动编码器用作具有两个层集合的编码器/解码器(编解码器)。第一层集合将输入示例编码为在模型训练期间需要被学习的浓缩代码。第二层集合对浓缩代码进行解码,以重新生成原始输入示例。两个层集合作为一个组合的ann一起进行训练。误差被定义为原始输入与解码后重新生成的输入之间的差异。在充分训练之后,解码器或多或少确切地输出原始输入。
[0170]
对于每个输入示例,自动编码器都依赖于浓缩代码作为中间格式。中间浓缩代码最初不存在,而是仅通过模型训练而出现,这可能与直觉相反。非监督式训练可以基于意外相关性的特征和区别来实现中间编码的词汇表。例如,在监督式训练期间使用了哪些示例和哪些标签可以取决于人类专家对问题空间的理解有些不科学(例如,轶事)或不完整。而非监督式训练则或多或少地完全基于统计趋势来发现合适的中间词汇表,该统计趋势由于通过重新生成解码而产生的内部反馈来以足够的训练可靠地收敛到最优性。在标题为“auto-encoder enhanced self-diagnostic components for model monitoring”的相关美国专利申请no.14/558,700中教导了自动编码器的实现和集成技术。该专利申请将监督式或非监督式ann模型提升为第一类对象,其适合管理技术,诸如模型开发期间(诸如训练期间)的监视和治理。
[0171]
随机森林
[0172]
随机森林或随机决策森林是学习方法的全体,这些学习方法在训练阶段期间构造随机生成的节点和决策树的集合。森林的不同决策树被构造成诸如通过特征自举聚合(装袋)各自随机限制为仅数据集特征维度的特定子集。因此,随着决策树的增长,决策树获得准确度,而不会被迫过度拟合训练数据,就像如果决策树被迫学习数据集的所有特征维度时将会发生的那样。可以基于来自不同决策树的预测的平均值(或其它积分,诸如soft max)来计算预测。
[0173]
随机森林超参数可以包括:number-of-trees-in-the-forest(森林中树的数量)、maximum-number-of-features-considered-for-splitting-a-node(考虑用于拆分节点的最大特征数量)、number-of-levels-in-each-decision-tree(每个决策树中的级数)、minimum-number-of-data-points-on-a-leaf-node(叶节点上数据点的最小数量)、method-for-sampling-data-points(采样数据点的方法),等等。
[0174]
在前面的说明书中,已经参考众多具体细节描述了本发明的实施例,这些细节可以从实现到实现有所变化。因而,说明书和附图应被视为说明性而非限制性的。本发明范围的唯一和排他性指示,以及申请人意图作为本发明范围的内容,是以发布这种权利要求书
的具体形式从本技术发布的权利要求书集合的字面和等同范围,包括任何后续更正。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1