机器学习中用于不平衡缓解和数据集大小缩减的自适应采样

文档序号:1957984 发布日期:2021-12-10 浏览:17次 >En<

阅读说明:本技术 机器学习中用于不平衡缓解和数据集大小缩减的自适应采样 (Adaptive sampling for imbalance mitigation and data set size reduction in machine learning ) 是由 蔡竞霄 S·阿格尔沃 S·伊蒂库拉 V·瓦拉达拉珍 A·雅科夫列夫 N·阿格尔沃 于 2020-04-09 设计创作,主要内容包括:根据实施例,一种方法包括从数据集生成第一数据集样本,计算第一数据集样本和机器学习模型的第一验证分数,以及确定第一验证分数和第二验证分数之间验证分数的差异是否满足第一标准。如果验证分数的差异不满足第一标准,那么该方法包括从数据集生成第二数据集样本。如果验证分数的差异确实满足第一标准,那么该方法包括更新收敛值并确定更新后的收敛值是否满足第二标准。如果更新后的收敛值满足第二标准,那么该方法包括返回第一数据集样本。如果更新后的收敛值不满足第二标准,那么该方法包括从数据集生成第二数据集样本。(According to an embodiment, a method includes generating a first data set sample from a data set, calculating a first validation score for the first data set sample and a machine learning model, and determining whether a difference in validation scores between the first validation score and a second validation score satisfies a first criterion. If the difference in the verification scores does not satisfy the first criterion, the method includes generating a second data set sample from the data set. If the difference in the verification scores does meet the first criterion, the method includes updating the convergence value and determining whether the updated convergence value meets a second criterion. If the updated convergence value satisfies the second criterion, the method includes returning the first data set sample. If the updated convergence value does not satisfy the second criterion, the method includes generating a second data set sample from the data set.)

具体实施方式

在以下描述中,为了解释的目的,阐述了许多具体细节以提供对本公开的(一个或多个)示例实施例的透彻理解。但是,将显而易见的是,可以在没有这些具体细节的情况下实践(一个或多个)示例实施例。在其它情况下,众所周知的结构和设备以框图形式示出以避免不必要地使(一个或多个)示例实施例模糊。

总体概述

本文描述了一种自适应数据采样(ADS)技术,该技术被执行以减少资源需求同时维持良好的ML模型性能。ADS技术在训练和调整期间广泛适用于ML应用或管道的不同阶段。此外,ADS技术很有用,因为它同时解决了数据集过大和不平衡带来的挑战。

ADS技术对数据集进行子采样,同时平衡给定ML模型的效率和模型性能。一般而言,模型性能是指ML模型的质量或“拟合优度(goodness-of-fit)”。模型性能可以由验证分数表征,诸如交叉验证分数。效率通常是指以较少的资源(诸如计算时间和硬件要求)获得良好模型性能的能力。

ADS技术通过允许在给定数据集和模型的速度和分数性能之间进行权衡来提供灵活性。ADS技术在评估数据集的子样本时考虑关注的模型,这有助于从给定的ML模型中获得更有用的结果。

更特别地,ADS技术利用迭代贪婪方法,在每次迭代中对关注的模型进行性能评估。ADS技术从大数据集的较小子样本开始,并贪婪地增加样本数量以收敛于良好的验证分数。这种组合为每次迭代提供质量预测作为参考,以基于是否满足停止标准来确定何时结束迭代。因此,ADS技术通过避免过度或非生产性的子采样并同时减少数据集中的类冗余,在维持高模型性能方面是有效的。模型和数据集样本的联合评估有助于维持良好的模型性能和数据集信息,这有助于在速度和分数性能之间实现最佳平衡。

ADS技术的停止标准包括基于迭代之间验证分数变化的第一阈值,以及基于满足第一阈值的连续迭代的第二阈值。停止标准和其它ADS参数可针对不同情况或需要进行定制,以允许ADS技术在速度和验证分数之间实现期望的平衡。

ADS技术可以应用于许多不同的算法,诸如自动机器学习或AutoML管道,以获得减小数据集大小的益处和最小化分数性能降级的益处。减小数据集大小有助于提供使超参数探索可基于较大数据集的代表性较小子集进行追踪的益处。此外,减小数据集大小有助于提供减少训练和调整时间的益处。减少训练和调整时间往往会降低实现ML模型的硬件要求,这进而允许资源较少的用户为其数据处理应用采用和实现ML模型。此外,ADS技术为关注的数据集和模型保持了良好的分数性能,这由于更好的性能和更快的速度之间的最小固有权衡而放大了节省时间工作的价值。总之,由于ADS技术的适应性和多功能性,它可以有用地应用于具有任何调查模型的各种数据集。

示例自适应数据采样技术

ML模型的使用正作为一种用于各种目的的无处不在的工具在各个行业中传播。例如,ML模型用于目标/对象分类和回归任务。一般而言,分类任务可以涉及根据数据集中的数据条目的属性确定数据条目属于哪个类。例如,给定动物属性列表,诸如头部形状、鼻子长度、尾巴长度和重量,分类任务可以是识别属性属于哪个动物类别(例如,狗、猫、马等)。回归任务类似于分类任务,但回归任务不是识别数据条目所属的离散类,而是推断数值,例如,预测房屋的市场价格。

图1是根据实施例的ADS技术的流程图或处理100。包括机架服务器、个人计算机、大型机、虚拟计算机或其它计算设备的一个或多个处理器的计算系统可以被配置为执行图1的ADS技术。在方框102处,计算系统访问要在ML模型中使用的给定数据集。数据集可以包括多个类,并且每个类中的数据样本表示特征或属性。在示例中,给定数据集包括三个类A、B和C,其中类A有200,000个样本,类B有50,000个样本,类C有1,000个样本。

在方框104处,计算系统通过对数据集进行欠采样以生成原始数据集的数据集样本或子样本来开始ADS技术的迭代。计算系统可以执行随机欠采样以生成数据集样本。在对上述三类数据集应用随机欠采样的示例中,计算系统通过从每个原始类A、B和C中随机选择一定数量的样本来生成具有相同三个类A、B和C的数据集样本。在这个示例中,计算系统基于可定制的ADS参数确定样本数量。例如,ADS参数可以指定最小类大小为100个样本,因此计算系统从每个原始类A、B和C中随机选择100个样本来生成数据集样本。随机选择的100个样本被包含到数据集样本的相应类A、B和C中。在方框104处,计算系统在生成数据集样本之后修改ADS参数以通过可定制的因子(例如,1.5)增加每类的最小样本的数量。如果存在方框104的后续迭代,那么计算设备被配置为使用每类最小样本的增加数量来生成新的更大的数据集样本。

计算系统还可以使用其它采样方法,诸如分层采样或不平衡采样。分层采样是一种按比例对类进行采样以创建子采样数据集的方法。对上述数据集应用分层采样可能产生子采样数据集,该数据集包括来自每个类的与每个类相对于数据集的大小成比例的一定数量的样本,例如,来自类A的20,000个样本、来自类B的5,000个样本,以及来自类C的100个样本。例如,不平衡采样包括一种使用聚类算法的方法,该聚类算法被应用以找到每个类的均值或中心样本并选择与该均值或中心最接近的一定数量的样本。

在方框106处,计算系统对关注的模型和子采样的数据集评估模型性能。在实施例中,计算系统通过使用关注的模型为生成的子采样数据集计算验证分数(VS),诸如交叉验证分数,来评估模型性能。在另一个实施例中,计算系统通过使用例如均方误差计算验证分数来评估回归任务的模型性能。

根据处理100,计算系统基于是否满足停止标准来确定是否结束迭代。停止标准包括由方框108和114表示的两部分。在方框108处,计算系统确定模型性能是否满足第一标准。根据示例,计算系统确定在当前迭代的方框106处计算的验证分数与在先前迭代的方框106处计算的验证分数之间的差异是否满足第一阈值。在这个示例中,当前和先前的迭代可以是连续的迭代。如果验证分数的差异落在第一阈值内,例如小于给定的阈值(例如,0.01),那么计算系统确定满足第一标准。

如果不满足第一标准,那么在方框110处,计算系统更新收敛值以递减收敛值或将收敛值重置为零。然后,计算系统在方框104处生成另一个数据集样本。更特别地,在方框104的后续迭代中,计算系统基于来自每一类的样本的增加数量生成新的、更大的数据集样本。

如果满足第一标准,那么在方框112处,计算系统通过递增收敛值来更新收敛值。然后,在方框114处,计算系统确定是否满足第二标准。根据示例,计算系统使用更新后的收敛值来确定已满足第一条件(第一阈值)的连续迭代的数量是否超过第二阈值,第二阈值是所需的连续迭代的数量(例如,0、1、2、3等)。收敛值表示已满足第一条件的连续迭代的数量。

如果满足第二标准,那么在方框116处,计算系统返回当前采样数据集,该数据集是原始数据集的子样本,其有助于减少资源需求并且还提供关注的ML模型的良好性能。

如果不满足第二标准,那么计算系统在方框104处生成另一个数据集样本。更特别地,在方框104的后续迭代中,计算系统基于修改后的ADS参数和来自每一类的样本的增加数量生成更大的数据集样本。

表1提供了示例伪代码或算法,其可以由计算系统的一个或多个处理器执行以执行图1的ADS技术。

表1

ADS参数用于控制和定义算法,并且包括类大小参数(msc)、类大小增长因子(α)、分数差异阈值参数和连续收敛次数阈值。更特别地,msc指定数据集的每一类中的最少样本的数量,其中给定的数据集潜在地包含多个类。在表1的示例伪代码中,ci是指类i中样本的原始数量,并且是指在采样的迭代j期间由随机欠采样器(RandomUnderSampler)从类i中选择的样本的数量。在实施例中,计算系统的一个或多个处理器执行代码以生成包括一个或多个类的数据集样本Ds,但忽略大多数类大小小于msc的数据集和具有少于msc的样本的数据集类(|ci|<msc)。在另一个实施例中,ADS算法不是忽略具有比msc少的样本的数据集类,而是将这些类的所有样本包括在数据集样本中。

根据ADS算法,msc在每次迭代中增长一个因子α,这允许算法从有助于导致可忽略的分数损失的有利的较小样本大小开始。在一个示例中,α=1.5。阈值参数threshold1是指定最小分数变化阈值的数字,并且对应于方框108的第一阈值。表1的代码将分数指定为通过评估关注的模型M和当前数据集Ds确定的验证分数(vs)。参数threshold2对应于方框114的第二阈值,并且是指定其中分数变化低于threshold1的最小连续迭代的整数。将参数threshold2与收敛值(表1中的“convergence”)进行比较。收敛值最初被设置为零,并取决于是否满足基于threshold1的第一标准而递减/重置或递增(另参见图1的方框110、112)。如果收敛值大于threshold2,那么满足停止标准比,此时ADS算法结束并返回当前迭代的最终采样数据集Ds。这个最终采样数据集在被评估的所选择的模型M上的分数损失可忽略不计,同时还提供运行时的显著改进。

技术益处和应用

图2和图3进一步演示了ADS处理和该技术的有效性。图2是示出根据实施例的验证分数和样本大小之间的关系的图。更具体地,图2示出了与每类样本的数量相比较的来自线性SVC ML模型的交叉验证(CV)分数202。图3是示出根据实施例的验证分数差异和样本大小之间的关系的图。更特别地,图3示出了与每类样本的数量相比较的在ADS技术的执行期间线性SVC ML模型的两个连续验证分数之间的差异302。

在图2和图3的每一个中,水平虚线204、304和垂直虚线206、306的交叉点分别表示ADS技术将停止并返回数据集样本的位置。图2和图3表明,CV分数在最初快速增加后达到平稳状态,然后尽管数据集样本大小增加(例如,每类500个增加到21,197个样本)但CV分数没有显著变化。因此,ADS技术的停止点提供了良好的模型性能,同时保持数据集样本大小相对低,这提高了效率。

还进行了其它基准测试,并且结果表明,对于各种ML模型,诸如Ada提升分类器、决策树分类器、额外树分类器、高斯NB、Keras MLP分类器、线性SVC、逻辑回归、MLP分类器、随机森林分类器、SVC和XGB分类器,与单独分层采样相比,本ADS技术的交叉验证分数始终较高(高0.02至0.06)。

测试还表明,本ADS技术始终产生更高的样本比率。例如,已发现ADS技术与单独使用固定样本大小设置的分层采样相比,平均多保留约20%的数据点。这的原因是ADS技术倾向于在减小数据集大小的同时保持模型分数性能。

ADS技术也可以有益地集成到自动ML(AutoML)管道中,以减少所需的总计算时间,而不会造成明显的分数性能损失。根据实施例,ADS技术应用于AutoML的超参数调整阶段,这通常是AutoML阶段(特征选择、超参数调整和模型选择)中最耗时的。更具体地,ADS技术可以用于产生数据集的充分表示的子样本,其中子样本的大小从原始数据集显著减小。使用这种充分表示且较小的数据集子样本有助于大大减少超参数评估和调整的计算负担,从而为超参数处理和整个管道带来节省时间的益处。进一步的结果是,在AutoML中使用ADS技术扩展了用例并使AutoML对各种项目的采用更具吸引力。

测试表明,与没有使用ADS技术的AutoML管道相比,将ADS技术集成到AutoML中将执行AutoML管道的总时间平均减少大约一半。此外,测试表明,在AutoML中集成ADS技术可能导致大约0.003的召回宏的可忽略不计的分数性能损失。此外,ADS技术的多功能性允许将该技术应用于AutoML管道的其它阶段,以提供进一步的益处。

硬件概述

根据一个实施例,本文描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行这些技术,或者可以包括数字电子设备(诸如被持久地编程为执行这些技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)),或者可以包括被编程为根据固件、存储器、其它存储装置或组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备还可以将定制的硬连线逻辑、ASIC或FPGA与定制编程相结合,以实现这些技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或者结合硬连线和/或程序逻辑以实现这些技术的任何其它设备。

例如,图4是图示可以在其上实现本发明实施例的计算机系统400的框图。计算机系统400包括总线402或用于传送信息的其它通信机制,以及与总线402耦合以处理信息的硬件处理器404。硬件处理器404可以是例如通用微处理器。

计算机系统400还包括耦合到总线402的主存储器406,诸如随机存取存储器(RAM)或其它动态存储设备,用于存储将由处理器404执行的信息和指令。存储器406还可以用于存储在执行由处理器404执行的指令期间的临时变量或其它中间信息。这些指令当存储在处理器404可访问的非瞬态存储介质中时,使计算机系统400成为被定制以执行指令中指定的操作的专用机器。

计算机系统400还包括耦合到总线402的只读存储器(ROM)408或其它静态存储设备,用于存储用于处理器404的静态信息和指令。提供了存储设备410(诸如磁盘、光盘或固态驱动器)并将其耦合到总线402,用于存储信息和指令。

计算机系统400可以经由总线402耦合到输出设备412(诸如显示器),用于向计算机用户显示信息。包括字母数字键和其它键的输入设备414耦合到总线402,用于将信息和命令选择传送到处理器404。另一种类型的用户输入设备是控制设备416(诸如鼠标、轨迹球或光标方向键),用于将方向信息和命令选择传送到处理器404并用于控制输出设备412上的光标移动。这种控制设备通常在两个轴上具有两个自由度,第一轴(例如,x)和第二轴(例如,y),这允许设备指定平面中的位置。

计算机系统400可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(它们与计算机系统相结合,使计算机系统400成为或将计算机系统400编程为专用机器)来实现本文所述的技术。根据一个实施例,响应于处理器404执行包含在存储器406中的一个或多个指令的一个或多个序列,计算机系统400执行本文所述的技术。这些指令可以从另一个存储介质(诸如存储设备410)读入到主存储器406中。包含在存储器406中的指令序列的执行使得处理器404执行本文所述的处理步骤。在替代实施例中,可以使用硬连线的电路系统代替软件指令或与软件指令组合。

如本文使用的术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固体驱动器,诸如存储设备410。易失性介质包括动态存储器,诸如存储器406。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。

存储介质不同于传输介质但可以与传输介质结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线402的导线。传输介质也可以采用声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。

各种形式的介质可以参与将一个或多个指令的一个或多个序列传送到处理器404以供执行。例如,指令最初可以在远程计算机的磁盘或固态驱动器上携带。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统400本地的调制解调器可以在电话线上接收数据并使用红外发送器将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路系统可以将数据放在总线402上。总线402将数据传送到主存储器406,处理器404从主存储器406检索并执行指令。由主存储器2406接收的指令可以可选地在由处理器404执行之前或之后存储在存储设备410上。

计算机系统400还包括耦合到总线402的通信接口418。通信接口418提供耦合到网络链路420的双向数据通信,其中网络链路420连接到网络422。例如,通信接口418可以是集成服务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口418可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。还可以实现无线链路。在任何此类实现中,通信接口418都发送和接收携带表示各种类型信息的数字数据流的电信号、电磁信号或光信号。

网络链路420通常通过一个或多个网络向其它数据设备提供数据通信。例如,网络链路420可以提供通过本地网络422到主计算机424或到由互联网服务提供商(ISP)426操作的数据设备的连接。ISP 426进而通过全球分组数据通信网络(现在通常称为“互联网”428)提供数据通信服务。本地网络422和互联网428都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链路420上并通过通信接口418的信号(其将数字数据携带到计算机系统400和从计算机系统400携带数字数据)是传输介质的示例形式。

计算机系统400可以通过(一个或多个)网络、网络链路420和通信接口418发送消息和接收数据,包括程序代码。在互联网示例中,服务器430可以通过互联网428、ISP 426、本地网络422和通信接口418发送对应用程序的所请求代码。

接收到的代码可以在被接收到时由处理器404执行,和/或存储在存储设备410或其它非易失性存储器中以供稍后执行。

软件概述

图5是可以用于控制计算系统400的操作的基本软件系统500的框图。软件系统500及其组件,包括它们的连接、关系和函数,仅仅是示例性的,并且不意味着限制(一个或多个)示例实施例的实现。适于实现(一个或多个)示例实施例的其它软件系统可以具有不同的组件,包括具有不同的连接、关系和函数的组件。

提供软件系统500用于指导计算系统400的操作。可以存储在系统存储器(RAM)406和固定存储装置(例如,硬盘或闪存)410上的软件系统500包括内核或操作系统(OS)510。

OS 510管理计算机操作的低级方面,包括管理进程的执行、存储器分配、文件输入和输出(I/O)以及设备I/O。表示为502A、502B、502C...502N的一个或多个应用可以被“加载”(例如,从固定存储装置410传送到存储器406中)以供系统500执行。意图在计算机系统400上使用的应用或其它软件也可以被存储为可下载的计算机可执行指令集,例如,用于从互联网位置(例如,Web服务器、app商店或其它在线服务)下载和安装。

软件系统500包括图形用户界面(GUI)515,用于以图形(例如,“点击”或“触摸手势”)方式接收用户命令和数据。进而,这些输入可以由系统500根据来自操作系统510和/或(一个或多个)应用502的指令来操作。GUI 515还用于显示来自OS 510和(一个或多个)应用502的操作结果,用户可以提供附加的输入或终止会话(例如,登出)。

OS 510可以直接在计算机系统400的裸硬件520(例如,(一个或多个)处理器404)上执行。可替代地,管理程序或虚拟机监视器(VMM)530可以插入在裸硬件520和OS 510之间。在这个配置中,VMM 530充当OS 510与计算机系统400的裸硬件520之间的软件“缓冲”或虚拟化层。

VMM 530实例化并运行一个或多个虚拟机实例(“客人机”)。每个客人机包括“客人”操作系统(诸如OS 510),以及被设计为在客户操作系统上执行的一个或多个应用(诸如(一个或多个)应用502)。VMM 530向客人操作系统呈现虚拟操作平台并管理客人操作系统的执行。

在一些实例中,VMM 530可以允许客人操作系统(OS)如同它直接在计算机系统500的裸硬件520上运行一样运行。在这些实例中,被配置为直接在裸硬件520上执行的客人操作系统的相同版本也可以在VMM 530上执行而无需修改或重新配置。换句话说,VMM 530可以在一些情况下向客人操作系统提供完全硬件和CPU虚拟化。

在其它实例中,客人操作系统可以被专门设计或配置为在VMM 530上执行以提高效率。在这些实例中,客人操作系统“意识到”它在虚拟机监视器上执行。换句话说,VMM 530可以在某些情况下向客户操作系统提供半虚拟化。

计算机系统进程包括硬件处理器时间的分配,以及存储器的分配(物理和/或虚拟),存储器的分配用于存储由硬件处理器执行的指令,用于存储由硬件处理器执行指令所生成的数据,和/或用于当计算机系统进程未运行时在硬件处理器时间的分配之间存储硬件处理器状态(例如,寄存器的内容)。计算机系统进程在操作系统的控制下运行,并且可以在计算机系统上执行的其它程序的控制下运行。

机器学习模型

使用特定的机器学习算法来训练机器学习模型。一旦被训练,就将输入(例如,数据集)应用于机器学习模型以进行预测,该预测在本文中也可以被称为谓词输出或输出。输入的属性可以被称为特征,并且特征的值在本文中可以被称为特征值。

机器学习模型包括模型数据表示或模型人工产物。模型人工产物包括参数值,这些参数值在本文中可以被称为theta值,并且由机器学习算法将其应用于输入以生成预测的输出。训练机器学习模型需要确定模型人工产物的theta值。theta值的结构和组织取决于机器学习算法。

在监督式训练中,训练数据被监督式训练算法用来训练机器学习模型。训练数据包括输入和“已知的”输出。在实施例中,监督式训练算法是迭代过程。在每次迭代中,机器学习算法都将模型人工产物和输入应用于生成预测输出。使用目标函数计算预测的输出与已知的输出之间的误差或方差。实际上,目标函数的输出基于迭代中模型人工产物的特定状态来指示机器学习模型的准确度。通过应用基于目标函数的优化算法,调节模型人工产物的theta值。优化算法的示例是梯度下降。可以重复迭代,直到实现期望的准确度或满足某个其它准则为止。

在软件实施方式中,当将机器学习模型称为接收输入、执行和/或生成输出或谓词时,执行机器学习算法的计算机系统处理将模型人工产物应用于输入,以生成预测的输出。计算机系统处理通过执行被配置为引起算法执行的软件来执行机器学习算法。

机器学习(ML)擅长的问题类别包括聚类、分类、回归、异常检测、预测和降维(即,简化)。机器学习算法的示例包括决策树、支持向量机(SVM)、贝叶斯网络、诸如遗传算法(GA)之类的随机算法以及诸如人工神经网络(ANN)之类的连接主义拓扑。机器学习的实施方式可以依赖于矩阵、符号模型以及分层和/或关联的数据结构。最佳类型的机器学习算法的参数化(即,可配置)实施方式可以在开源库中找到,诸如Google的用于Python和C++的TensorFlow或佐治亚理工学院的用于C++的MLPack。Shogun是开源C++ML库,其带有用于几种编程语言(包括C#、Ruby、Lua、Java、Matlab、R和Python)的适配器。

人工神经网络

人工神经网络(ANN)是在高级别对由有向边互连的神经元系统进行建模的机器学习模型。在分层前馈神经网络的上下文中描述神经网络的概述。其它类型的神经网络共享下面描述的神经网络的特点。

在诸如多层感知器(MLP)之类的分层前馈网络中,每一层包括一组神经元。分层的神经网络包括输入层、输出层和被称为隐藏层的一个或多个中间层。

输入层和输出层中的神经元分别被称为输入神经元和输出神经元。隐藏层或输出层中的神经元在本文中可以被称为激活神经元。激活神经元与激活函数相关联。输入层不包含任何激活神经元。

从输入层和隐藏层中的每个神经元出发,在后续的隐藏层或输出层中存在一条或多条指向激活神经元的有向边。每条边与权重相关联。从神经元到激活神经元的边表示从神经元到激活神经元的输入,如由权重调节的。

对于神经网络的给定输入,神经网络中的每个神经元具有激活值。对于输入神经元,激活值只是该输入的输入值。对于激活神经元,激活值是激活神经元的相应激活函数的输出。

从特定神经元到激活神经元的每条边表示特定神经元的激活值是激活神经元的输入,即,激活神经元的激活函数的输入,如由边的权重调节的。因此,后续层中的激活神经元表示特定神经元的激活值是对激活神经元的激活函数的输入,如由边的权重调节的。激活神经元可以具有指向激活神经元的多条边,每条边表示来自源起源神经元的激活值(如由边的权重调节的)是激活神经元的激活函数的输入。

每个激活神经元与偏置相关联。为了生成激活神经元的激活值,将神经元的激活函数应用于加权的激活值和偏置。

神经网络的说明性数据结构

神经网络的人工产物可以包括权重和偏置的矩阵。训练神经网络可以迭代地调节权重和偏置的矩阵。

对于分层的前馈网络以及其它类型的神经网络,人工产物可以包括边W的一个或多个矩阵。矩阵W表示从层L-1到层L的边。假设层L-1和L中神经元的数量分别为N[L-1]和N[L],那么矩阵W的维度为N[L-1]列和N[L]行。

用于特定层L的偏置也可以存储在具有N[L]行的一列的矩阵B中。

矩阵W和B可以作为向量或数组存储在RAM存储器中,或以逗号分隔的值集合存储在存储器中。当人工产物被持久存储在持久性存储装置中时,矩阵W和B可以以压缩和/串行化形式或其它合适的持久性形式存储为逗号分隔的值。

应用于神经网络的特定输入包括每个输入神经元的值。特定输入可以被存储为向量。训练数据包括多个输入,每个输入被称为样本集合中的样本。每个样本包括每个输入神经元的值。样本可以存储为输入值的向量,而多个样本可以存储为矩阵,矩阵中的每一行是一个样本。

当将输入应用于神经网络时,将为隐藏层和输出层生成激活值。对于每一层,激活值可以被存储在矩阵A的一列中,该矩阵对于层中的每个神经元具有一行。在用于训练的向量化方法中,激活值可以存储在矩阵中,矩阵中对于训练数据中每个样本有一列。

训练神经网络要求存储和处理附加矩阵。优化算法生成用于调节权重W和偏置B的矩阵的导数值的矩阵。生成导数值可以使用并要求存储在计算每一层的激活值时生成的中间值的矩阵。

神经元和/或边的数量确定了实现神经网络所需的矩阵的尺寸。神经网络中神经元和边的数量越少,矩阵和存储矩阵所需的存储器就越小。此外,越少数量的神经元和边减少了应用或训练神经网络所需的计算量。越少的神经元意味着在训练期间需要计算的激活值越少和/或需要计算的导数越少。

用于实现神经网络的矩阵的特性与神经元和边对应。矩阵W中的单元格表示从L-1层到L层中的神经元的特定边。激活神经元表示包括激活函数的层的该激活函数,。L层中的激活神经元与矩阵W中用于L层和L-1层之间的边的权重的行以及矩阵W中用于L层和L+1层之间的边的权重的列对应。在执行神经网络期间,神经元还与针对该层存储在矩阵A中并由激活函数生成的一个或多个激活值对应。

ANN适合进行数据并行化的向量化,其可以利用向量硬件,诸如单指令多数据(SIMD),诸如利用图形处理单元(GPU)。矩阵分区可以实现水平缩放,例如利用对称多处理(SMP),诸如利用多核中央处理单元(CPU)和/或多个协处理器(诸如GPU)。ANN内的前馈计算可以在每个神经层只有一步的情况下发生。基于前一层的激活值的加权传播来计算一层中的激活值,使得针对每个后续层依次计算值,诸如顺序地为每个后续层计算值,诸如利用for循环的相应迭代。分层强加了不可并行化的计算的排序。因此,网络深度(即,层数)可以造成计算时延。深度学习需要赋予多层感知器(MLP)多层。每一层实现数据抽象,而复杂的(即,具有几个输入的多维)抽象则需要实现级联处理的多层。基于可重用矩阵的ANN的实施方式和用于前馈处理的矩阵运算在神经网络库中很容易获得并且可并行化,诸如Google的用于Python和C++的TensorFlow、用于C++的OpenNN以及哥本哈根大学的快速人工神经网络(FANN)。这些库还提供模型训练算法,诸如反向传播。

反向传播

ANN的输出可以或多或少是正确的。例如,识别字母的ANN可能会将I误认为是L,因为这些字母具有相似的特征。正确的输出可以具有(一个或多个)特定的值,而实际的输出可以具有稍不同的值。可以根据损失函数将正确输出与实际输出之间的算术或几何差异测量为误差,使得零表示无误差(即,完全准确)的行为。对于任何层中的任何边,正确输出与实际输出之间的差异是增量值。

反向传播需要通过ANN的层向ANN内的所有连接边以不同的数量向后分发误差。误差的传播造成对边权重的调节,这取决于每条边上的误差的梯度。通过将边的误差增量乘以上游神经元的激活值来计算边的梯度。当梯度为负时,边对网络贡献的误差的量值越大,边的权重应当减少越多,这就是负加强。当梯度为正时,正加强需要增加其激活会减少误差的边的权重。边权重根据边的梯度的百分比进行调节。梯度越陡,调节越大。并非所有边权重都调节相同的量。随着模型训练以附加的输入样本继续进行,ANN的误差应当下降。当误差稳定(即,停止减少)或消失在阈值以下(即,接近零)时,训练可以停止。ChristopherM.Bishop在相关参考文献“EXACT CALCULATION OF THE HESSIAN MATRIX FOR THE MULTI-LAYER PERCEPTRON”中讲授了用于前馈多层感知器(MLP)的示例数学公式和技术,包括矩阵运算和反向传播。

模型训练可以是监督式的,或者是非监督式的。对于监督式训练,对于训练集中的每个示例已经知道期望的(即,正确的)输出。训练集是通过(例如,人类专家)预先为每个示例指派分类标签来配置的。例如,用于光学字符识别的训练集可以具有各个字母的模糊照片,并且专家可以根据示出哪个字母预先标记每张照片。如上面所解释的,误差计算和反向传播发生。

因为需要在训练期间发现期望的输出,所以涉及更多的非监督式模型训练。非监督式训练可以更容易采用,因为不需要人类专家来预先标记训练示例。因此,非监督式训练节省人力。实现非监督式训练的自然方式是利用自动编码器,它是一种ANN。自动编码器用作具有两个层集合的编码器/解码器(编解码器)。第一层集合将输入示例编码为在模型训练期间需要被学习的浓缩代码。第二层集合对浓缩代码进行解码,以重新生成原始输入示例。两个层集合作为一个组合的ANN一起进行训练。误差被定义为原始输入与解码后重新生成的输入之间的差异。在充分训练之后,解码器或多或少确切地输出原始输入。

对于每个输入示例,自动编码器都依赖于浓缩代码作为中间格式。中间浓缩代码最初不存在,而是仅通过模型训练而出现,这可能与直觉相反。非监督式训练可以基于意外相关性的特征和区别来实现中间编码的词汇表。例如,在监督式训练期间使用了哪些示例和哪些标签可以取决于人类专家对问题空间的理解有些不科学(例如,轶事)或不完整。而非监督式训练则或多或少地完全基于统计趋势来发现合适的中间词汇表,该统计趋势由于通过重新生成解码而产生的内部反馈来以足够的训练可靠地收敛到最优性。在标题为“AUTO-ENCODER ENHANCED SELF-DIAGNOSTIC COMPONENTS FOR MODEL MONITORING”的相关美国专利申请No.14/558,700中教导了自动编码器的实现和集成技术。该专利申请将监督式或非监督式ANN模型提升为第一类对象,其适合管理技术,诸如模型开发期间(诸如训练期间)的监视和治理。

随机森林

随机森林或随机决策森林是学习方法的全体,这些学习方法在训练阶段期间构造随机生成的节点和决策树的集合。森林的不同决策树被构造成诸如通过特征自举聚合(装袋)各自随机限制为仅数据集特征维度的特定子集。因此,随着决策树的增长,决策树获得准确度,而不会被迫过度拟合训练数据,就像如果决策树被迫学习数据集的所有特征维度时将会发生的那样。可以基于来自不同决策树的预测的平均值(或其它积分,诸如softmax)来计算预测。

随机森林超参数可以包括: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(采样数据点的方法),等等。

在前面的说明书中,已经参考众多具体细节描述了本发明的实施例,这些细节可以从实现到实现有所变化。因而,说明书和附图应被视为说明性而非限制性的。本发明范围的唯一和排他性指示,以及申请人意图作为本发明范围的内容,是以发布这种权利要求书的具体形式从本申请发布的权利要求书集合的字面和等同范围,包括任何后续更正。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用标签猜测对机器学习模型进行半监督训练

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!