CN114358305A - 移动ai - Google Patents
移动ai Download PDFInfo
- Publication number
- CN114358305A CN114358305A CN202111137759.0A CN202111137759A CN114358305A CN 114358305 A CN114358305 A CN 114358305A CN 202111137759 A CN202111137759 A CN 202111137759A CN 114358305 A CN114358305 A CN 114358305A
- Authority
- CN
- China
- Prior art keywords
- model
- data
- layers
- student
- performance
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
- Mobile Radio Communication Systems (AREA)
- Selective Calling Equipment (AREA)
- Telephone Function (AREA)
Abstract
本发明涉及一种移动AI。可以基于设备的硬件规格来优化机器学习模型以用于部署在设备上。获取并删减现有模型以减少模型的硬件资源消耗。经删减的模型然后基于训练数据来训练。经删减的模型还基于“教师”模型的集合来训练。然后评估经训练的模型的性能,并将其与性能要求进行比较,性能要求可以是基于设备的硬件规格。
Description
背景技术
本公开涉及机器学习,并且更具体地涉及优化机器学习模型的性能。
诸如神经网络的机器学习模型具有越来越广泛的应用。虽然它们可能是有益的,但是机器学习模型仍然具有相关联的缺点和成本。例如,训练模型可以是特别资源密集的,并且准确性通常与所需的计算资源不相关。
具体地,现代系统仍然不能在确保所部署的模型满足准确性和资源性能要求两者的同时在相对低功率的设备上自动地配置和部署机器学习模型。例如,低功率设备所利用的机器学习模型常常具有有限的性能(由于更先进的机器学习模型所需的硬件开销)。此外,在许多领域(例如医学),可能存在有限量的可用训练数据,使得训练新模型特别困难。因此,即使给定任务(诸如分类)可以经由现有技术的机器学习模型来可靠地完成,这样的模型也将可能在较低功率设备的给定硬件规格内艰难地执行。类似地,虽然许多现有技术模型可能能够以有限的硬件资源来工作,但是它们的性能(例如,准确性)通常由于它们的“轻量级”配置而变得糟糕。
发明内容
本公开的一些实施例可以被示出为第一方法。第一方法包括接收设备的硬件规格。第一方法还包括基于设备的硬件规格来确定性能要求。第一方法还包括获取具有层集合的机器学习模型。第一方法还包括获取教师模型。第一方法还包括从机器学习模型删除所述层集合中的一个或多个层,从而产生具有经删减的层集合的学生模型。第一方法还包括基于训练数据和教师模型来训练学生模型。第一方法还包括评估学生模型的性能并将学生模型的性能与性能要求进行比较。第一方法还包括确定(基于比较)选择具有最高性能的模型。该第一方法有利地使得能够基于设备的硬件规格将模型配置为在要求内运行,同时训练模型以满足性能标准。
本公开的一些实施例可以被示出为第二方法。第二方法包括如上所述的第一方法,其中(如上所述的第一方法的)训练包括将训练数据输入到学生模型和教师模型中,从学生模型接收学生特征,从教师模型接收教师特征,执行学生特征与教师特征之间的第一比较,从学生模型接收学生输出,执行学生输出与训练数据之间的第二比较,以及基于第一比较和第二比较来调整学生模型的经删减的层集合中的至少一层。该第二方法有利地使得能够将学生模型配置成与高级的教师模型类似地执行,尽管学生模型与教师模型相比具有显著减少的资源开销。
本公开的一些实施例可以被示出为第三方法。第三方法包括如上所述的第一方法,其中删除(如上所述的第一方法的)一个或多个层包括基于性能要求确定要删除的层的数量,基于该数量随机地选择一个或多个层,以及删除所选择的层。该第三方法有利地使得能够以改进的效率基于设备的硬件规格来删减模型。
本公开的一些实施例可以被示出为第四方法。第四方法包括获得已标记的数据。第四方法还包括获得未标记的数据。第四方法还包括将已标记的数据与未标记的数据进行比较。第四方法还包括基于比较来标记未标记的数据,从而产生弱标记的数据。第四方法还包括基于弱标记的数据再训练模型,从而产生再训练的模型。该第四方法有利地使得能够基于初始未标记的数据来再训练模型。
本公开的一些实施例可以被示出为第五方法。第五方法包括如上所述的第四方法。第五方法还包括从教师模型获得教师输出,其中(如上所述的第四方法的)再训练还基于硬标记的数据和教师输出。该第五方法有利地使得能够以改进的性能基于初始未标记的数据来再训练模型。
本公开的一些实施例可以被示出为第六方法。第六方法包括如上文所讨论的第四方法,其中(如上文所讨论的第四方法的)获得已标记的数据包括接收已标记的输入数据并且经由基于已标记的输入数据的模型来生成已标记的特征数据,其中已标记的特征数据是已标记的数据。此外,在第六方法中,(如上所讨论的第四方法的)获得未标记的数据包括收集未标记的输入数据并经由基于未标记的输入数据的模型生成未标记特征数据,其中,未标记的特征数据是未标记的数据。该第六方法有利地使得能够以改进的隐私安全性并且进一步以改进的功效基于初始未标记的数据来再训练模型。
本公开的一些实施例还可以被示出为计算机程序产品,其包括计算机可读存储介质,计算机可读存储介质中体现有程序指令,所述程序指令可由计算机执行以使计算机执行以上讨论的方法中的任何方法。这有利地使得能够基于设备的硬件规格将模型配置为在要求内运行,同时训练模型以满足性能标准。
本公开的一些实施例可以被示出为系统。该系统可以包括存储器和中央处理单元(CPU)。CPU可被配置为执行指令以执行上述方法中的任何一种。这有利地使得能够基于设备的硬件规格将模型配置为在要求内运行,同时训练模型以满足性能标准。
上述发明内容并非旨在描述本公开的每个所示实施例或每个实施方式。
附图说明
本申请中包括的附图被并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅说明某些实施例,而不限制本公开。随着以下详细描述的进行,并且在参考附图时,所要求保护的主题的各种实施例的特征和优点将变得显而易见,在附图中,相同的标号指示相同的部分,并且其中:
图1是根据本公开的多个实施例的高级自动复合知识提炼(distillation)方法。
图2是根据本公开的多个实施例的选择和删减模型以生成学生模型的示例图。
图3是根据本公开的多个实施例的用于部分地基于训练数据和多个教师模型来训练学生模型的数据流的示例图。
图4示出了根据本公开的多个实施例的基于未标记的数据来更新机器学习模型的高级方法。
图5是描绘根据本公开的多个实施例的、如何基于已知数据集自动标记未标记的所观察的数据的说明性示例的图。
图6示出了根据本公开的多个实施例的基于从未标记的输入数据得到的去标识的(deidentified)特征数据来更新机器学习模型的高级方法。
图7是描绘根据本公开的多个实施例的经由转导(transductive)学习来标记未标记的输入数据的示例的图。
图8示出了可以用于实现本公开的实施例的示例计算机系统的高级框图。
虽然本发明可以有各种修改和替换形式,但是其细节已经在附图中通过示例的方式示出并且将被详细描述。然而,应当理解,其目的不是将本发明限制于所描述的特定实施例。相反,本发明覆盖落入本发明的精神和范围内的所有修改、等效和替换。
具体实施方式
本公开的方面涉及用于关于设备的规格来优化模型的系统和方法。更具体的方面涉及一种系统,该系统用于获取机器学习模型结构、压缩该结构、训练经压缩的模型、评估经训练的模型的性能、以及选择具有最高性能的模型。
本公开的另外的方面涉及基于测量的数据来改进模型性能的系统和方法。本发明的更具体的方面涉及一种系统,该系统用于接收未标记的数据、将未标记的数据与已知数据进行比较、基于该比较来标记未标记的数据、以及基于新标记的数据来再训练模型。
本公开中描述的系统和方法经由“复合知识提炼”实现自动化的紧凑模型压缩,有利地使系统能够基于硬件规格和/或相关性能要求来优化机器学习模型,诸如神经网络。换句话说,虽然大多数现有技术系统接受准确性/速度与资源要求之间的折衷,但经由本发明的系统和方法训练的模型尽管在相对低功率的硬件(例如移动装置或腕戴式装置)上运行,也可被优化以最大化准确性和/或速度。
另外,根据本公开的系统和方法可以有利地使得能够训练模型以在甚至具有相对有限的训练数据集的情况下可靠地在较低功率设备上操作。
在本公开中,参考“机器学习模型”,为了简单起见,将其简写为“模型”。模型可以包括例如人工神经网络,诸如卷积神经网络(CNN)、多层感知器(MLP)、循环神经网络(RNN)、长期短期存储器(LSTM)RNN等。模型可以服务于许多不同的目的,诸如分类、预测等。通常,模型将接收数据的输入,并将数据传递通过多个“层”。例如,数据可以被输入到第一层,第一层将操纵数据(基于层的配置)并且产生一个或多个“特征”(通常被分组为“特征向量”)的输出。层的配置包括多个各种“通道”和“过滤器”,它们负责由层执行的数据操纵的较低级方面。
作为示例,输入数据可以是图像,其中第一层可以识别图像中的边缘,产生描述在图像中检测到的所有边缘(“特征”)的数据列表(“向量”)。然后,将由第一层生成的特征馈送到第二层,第二层执行进一步的操作并产生第二特征向量,依此类推。最终结果是最终的“输出”。如本文所使用的,“输出”是指模型的最终输出/决策/分类,除非另有说明。各层的布局/配置和顺序通常被称为模型的“结构”。
机器学习模型通常是“经训练的”,其中一个或多个层被调整以使得它们不同地修改其输入。作为简单的示例,第一层最初可以将输入乘以2,但是在训练过程期间,第一层可以被调整为将输入乘以1.5。当然,可以以更细微的方式调节更复杂的层。
根据本公开的系统和方法训练和/或优化的机器学习模型可以被优化以满足一个或多个性能要求。如本文所使用的性能要求可包括基于资源的要求(例如最大存储器占用、最大CPU使用、最大估计功耗等)、基于输出的要求(例如准确性评级、推断速度等)或两者的组合。
在许多领域中,即使是经过充分训练和审查的模型也可能随着时间的推移而失去准确性。虽然模型可以被配置为随着时间的推移学习(在一些情况下,这可能错误地导致模型的退化),但是准确性损失的另一常见原因可能是对模型的输入数据的改变。作为一个示例,患者的脑电图(EEG)数据可以随着时间的推移而自然地改变,甚至不管患者状况的改变。今天记录的健康患者的EEG可能与几年(或甚至几个月)之前的同一健康患者的EEG有很大的不同,即使它们在较小的时间跨度上保持相对一致。值得注意的是,这不是(必然)由超出患者自身生理学的任何因素引起的;脑电波的发射模式可简单地随时间“漂移”。虽然各种问题(例如疾病发作)的模式可能仍然保持相对一致,但是“背景”或“基线”状态可基本上改变到可能致使模型不能解析以检测这些重要模式的存在(或不存在)的程度。因此,最初在分类患者的EEG时准确的模型可能最终变得过时。虽然模型可以随时间被再训练或改进,但是已知的数据集在特别窄的领域(诸如神经学)中可能相对稀疏。
此外,由于背景/基线模式和/或噪声在患者之间可能显著变化,所以已知数据集可能不足以训练(或再训练)针对特定患者的模型。本领域的一个解决方案是周期性地记录来自患者的数据集,让专业人员(例如医疗提供者/专家)评估所记录的数据集并手动注释/标记它,并利用特定于患者的数据集来再训练模型。然而,这对于患者和专业人员来说可能是过分耗时、不方便和/或昂贵的。此外,这可能引起关于患者数据的敏感/个人可识别性质的关注。
本公开中描述的系统和方法还使得能够基于所观察的(即,初始未标记的)数据来提高机器学习模型的准确性,有利地提高模型的性能,而不需要手动注释所观察的数据。这可以允许模型随着时间的推移而逐渐增长以变得更鲁棒,即使在患者的生理漂移并且观察到新的模式(即,在模型的初始训练数据集中未表示的模式,或者可能是任何已知的数据集中未表示的模式)时。
图1是根据本公开的多个实施例的高级自动复合知识分布方法100。方法100有利地使得能够相对于特定于设备的性能要求来训练和优化机器学习模型。
方法100包括在操作102处收集性能要求和/或硬件规格。操作102可包括例如从诸如移动设备的设备接收描述设备的硬件(诸如可用的存储器、处理器制造商/型号等)的数据。性能要求可以从该数据中收集(特别是基于资源的要求,例如最大存储器占用)。在一些实施例中,操作102可包括接收硬件规格之外的基于输出的要求。例如,操作102可包括基于设备通常被使用的环境从用户或设备接收最小准确性评级、最小推断速度等。
方法100还包括在操作104处获取模型。操作104可包括例如从已知为准确的模型的储存库下载机器学习模型。在操作104处获取的模型可以是多个不同类型的模型(例如,CNN、RNN等)中的一个。值得注意的是,所获取的模型可以旨在用于与经由方法100创建和优化的模型不同的目的。作为示例,可执行方法100以训练和优化旨在部署在腕戴式计算设备上的疾病发作检测模型。操作104仍然可包括选择先前已经被训练以基于输入图像执行图像识别的所建立的CNN(例如EFFICIENTNET模型)。这是可能的,因为对于方法100,所选择的模型的结构(例如,各个层的组成)通常比所选择的模型的实际原始目的(例如,面部识别、下棋等)更重要。在操作104中访问的储存库可以是公众可用的、存储在云数据库中、存储在本地长期存储器中等。
方法100还包括在操作106处基于性能要求来删减所选择的机器学习模型。操作106可包括例如从所选择的模型中删除一个或多个层。在一些实施例中,操作106可包括从所选择的模型中删除一个或多个块(连续的层组)。在操作106处被选择用于删除的层和/或块可被随机地选择,可能具有一些约束,诸如选择与其他所选层相邻(或者在一些实施例中,不相邻的)的层。在一些实施例中,可以(部分地)基于在操作102处接收的性能要求来删除层。操作106可包括确定所选择的模型中的层的数量,并且删除层直到该数量低于阈值。模型中包括的层的总数(模型的“层计数”)是模型的资源要求的主要因素(其它因素可包括在每层中使用的滤波器的大小、每层的输出的分辨率/维度等)。例如,具有300层的模型通常将比具有100层的模型消耗基本上更多的存储器和CPU开销。鉴于此,可以基于例如设备硬件的最大存储器和/或CPU模型来确定阈值。阈值可以限制模型的某些属性(例如,最大层数、每层的最大信道数等)。作为示例,设备可以具有512兆字节(MB)的存储器(诸如随机存取存储器(RAM))和以120兆赫兹(MHz)操作的CPU。在生成阈值时可以考虑这些硬件规格。作为简单的示例,要部署在设备上的模型可具有r/10层(其中r是设备的总存储器,以MB为单位)或c/2层(其中c是设备的CPU的频率,以MHz为单位)中较低(四舍五入到最接近的整数)的最大层计数。因此,要部署在上述示例设备上的模型可以具有51层的最大层计数(因为512/10<120/2)。注意,这些度量不一定是模型的资源要求(例如,3层模型可能不一定需要30MB的RAM或者是如6层模型的资源密集的一半等)。在一些实施例中,阈值可以描述模型可以消耗的存储器的最大量、CPU开销的最大量等等。
经删减的所选模型在此被称为“学生模型”。值得注意的是,在一些实施例中,学生模型的剩余层(即,作为操作106的一部分而未被删除的层)可以保持相对不变。例如,层(单独的“神经元”等)的内部配置可以保持不受影响,从而使得学生模型能够保留原始选择的模型的部分结构。然而,删除的层和剩余的层之间的连接可能被切断,导致学生模型的准确性降低,或者甚至完全不能操作。在一些实施例中,不是(或除了)删减层,而是可以删除一个或多个层内的信道和/或滤波器,从而降低层的整体复杂度。
作为说明性示例,模型可具有6层(“层1-6”),其中每一层的输出被馈送到下一层的输入中(例如,层1-5中的每一个被“连接”到下一层)。换句话说,层1被连接到层2(意味着层1的输出被用作层2的输入),层2被连接到层3(意味着层2的输出被用作层3的输入),等等。这些层本身通常不相同;每一层将以不同的方式操纵其各自的输入,以便产生其单独的输出。在训练模型的过程中,层本身随着时间的推移而被开发(注意,在操作104处获取的模型已经被训练)。例如,层1可以操纵输入数据以产生输出特征向量,使得如果输入数据包括图像,则输出特征向量将描述图像的边缘。层2可操纵输入特征向量以产生输出特征向量,使得如果输入特征向量描述图像的边缘,则输出特征向量将描述图像中的识别形状,等等。因此,如果操作106包括删除层1,则输入数据可被直接馈送到层2。因此对层2的输入将不再是描述图像边缘的特征向量(相反,输入将是图像本身)。然而,由于层2本身未改变,层2将对输入数据执行与先前相同的操作。因此,层2的输出特征向量将不可能准确地描述图像的所识别形状。相反,层2的输出特征向量可以是一般不相关的“垃圾数据”。由于层3-6类似地不变,因此这种差异可能在整个模型中具有级联效应。结果,操作106的删除可能导致对模型的最终输出的准确性损失。值得注意的是,一些层可以仅对其输入进行微小修改。因此,取决于所删除的层,总体准确性损失的范围可以从相对较小到如此显著以致于使得模型在功能上不能操作。
虽然删减可能导致对整个模型的显著的准确性损失,但是模型的结构可能大部分保持完整。换句话说,模型可以处于这样的状态:通过一些训练以“桥接”由删除的层留下的“间隙”,模型可以恢复功能。继续上述示例,层3-6仍可如它们先前那样运行,因此如果层2可被调整以将输入图像转换成描述图像中的所识别形状的输出特征向量,则模型可返回以产生(相对)准确的结果。
方法100还包括在操作108处训练学生模型。操作108可包括例如将已知训练数据输入到学生模型中、接收来自学生模型的输出、将输出与已知结果进行比较、以及基于比较对学生模型的一个或多个层进行调整。操作108还可包括将训练数据输入到一个或多个“教师”模型(其它已建立的/已知良好的模型)中。操作108可包括从储存库选择教师模型;例如,教师模型可以是储存库中的其他模型,在操作104处从该储存库中选择模型。在一些实例中,操作108可利用给定储存库中的所有教师模型。在一些实例中,操作108可(例如,随机地)选择多个教师模型。作为示例,操作104可包括从具有15个模型的储存库中随机选择模型,并且操作108可包括利用剩余的14个模型中的一些或全部。在一些实例中,在操作108处,作为操作104的一部分而被选择的模型也可以被选择为教师模型。
在一些实施例中,作为操作108的一部分对学生模型的层所作的调整还可以基于来自教师模型的输出与学生模型的输出之间的比较。通常,在训练过程中,比较学生模型的输出(“学生输出”)和教师模型的输出(“教师输出”),以使它们之间的差异最小化。例如,如果学生输出与教师输出实质上不同,则即使输出与期望输出相对相似,也可以调整学生模型的层(例如,学生输出“35”可以与期望的输出“36”足够相似,但是如果教师输出是“37”,则学生模型的层仍然可被调整)。
在一些实施例中,不是(或除了)比较学生模型和教师模型的输出,操作108可包括比较由学生模型和教师模型的“中间”层输出的特征。在一些实施例中,可以随机选择被选择用于比较的学生模型层。在一些实施例中,可以基于删减来选择层;例如,可以选择最后已调整(或删除)层之后的第一未调整层。作为一个示例,在操作104处选择的模型可具有4个层A、B、C和D,并且操作106可包括删除层B。在这样的示例中,操作108可包括将由学生的层C输出的特征向量与由4层教师模型的层C输出的特征向量进行比较。作为附加示例,可以选择在第一已调整(或删除)层之前的最后一个未调整层(例如,可以将学生的层A的输出与教师的层B的输出进行比较)。对于具有与在操作104处选择的模型不同数量的层的教师模型,并且在操作106删减之后,可以基于层在模型内的顺序来选择层以用于输出比较(例如,可以选择由每个模型的倒数第二层输出的特征向量来用于比较)。这可以有利地使得能够训练学生模型以类似于教师模型的方式执行,尽管基本上更简单(由于操作106的删减)。
方法100还包括在操作110处评估经删减/训练的学生模型的性能。操作110可包括例如将不同的已知数据(例如,不同于训练数据的第二组已知数据)输入到学生模型中,并且在确定输出时分析学生模型的性能。作为示例,操作110可包括确定学生模型的准确性、推断速度(学生模型花费多长时间来确定输出)、内存占用(学生模型需要多少内存)、峰值CPU使用、估计功耗等。
方法100还包括在操作112处确定经训练的学生模型是否满足性能要求。操作112可包括例如将在操作110处确定的学生模型的性能与在操作102处收集的性能要求进行比较。作为示例,操作112可包括确定学生模型的内存使用是否低于由设备硬件指示的最大阈值、学生模型的推断速度是否高于由用户设置的最小值等等。
如果学生模型未能满足一个或多个性能要求(112“否”),则方法100继续生成新的学生模型并再次尝试,从在操作105处通过获取模型开始。操作105可以以与操作104基本类似的方式执行。值得注意的是,在操作105处选择的模型可以是在操作104处所选择的同一模型(或操作105的先前迭代)或者“新”模型(例如,尚未经由方法100删减/训练/评估的模型)。操作105可包括例如从储存库或其他外部源(可能包括在操作104处访问的源)选择模型。在一些实施例中,在操作104处选择的模型的副本可能已经被缓存,并且因此操作105可以包括加载副本。在一些实施例中,在操作105处选择的模型可以基于操作112的比较;例如,如果学生模型表现得比性能要求差得多,则操作105可包括选择新模型而不是先前使用的同一模型。在一些实施例中,可以跟踪趋势。例如,如果无论删减/训练如何,从特定模型生成的学生模型始终较差,则该特定模型都可能在操作105的后续迭代中被取消选择资格。
在操作105处选择了模型之后,则方法100返回以在操作106-110处删减、训练和评估模型,以生成新的学生模型。在一些实施例中,操作105可以在每次迭代中选择新模型,直到已经“尝试”了所有可用的模型。在一些情况下,可以通过选择相同的模型但不同地删减它来生成新的学生模型,诸如通过删除更多/更少/不同的层,但以相同的方式进行训练。即使仅不同地执行删减,这仍将导致不同的经训练的学生模型。因此,当在操作110处评估不同的学生模型时,可以确定其表现得比先前的模型更好(或更差)。在一些实例中,可以通过选择相同的模型、以相同的方式删减它(例如,在操作106处删除与在操作106的先前迭代处删除的层/块相同的层/块),但是在操作108处不同地训练它(诸如利用与在操作108的先前迭代处使用的数据集不同的数据集)来生成新的学生模型。在一些实例中,可以通过选择不同的模型,但是然后删减相同的层并以相同的方式训练来生成新的学生模型。因此,可以实现和考虑生成新学生模型的多种不同方法。
如果学生模型满足每个性能要求(112“是”),则方法100还包括在操作114处确定该模型是否表现得比先前模型差。操作114可包括例如将当前正在考虑的学生模型(“当前”学生模型)的性能与先前学生模型的集合的性能进行比较。当前学生模型的性能可以与该集合中每个先前学生模型的性能进行比较,或者与该集合中每个先前学生模型的性能的平均值或最大值进行比较。取决于实施例/用例,先前学生模型的集合可排除不满足操作112的性能要求的学生模型。取决于实施例/用例,先前学生模型的集合可以仅是所有先前学生模型或仅是一些(例如,仅紧接的先前学生模型、最后3个学生模型等)。
作为说明性示例,可能已经生成并评估了35个学生模型(称为“模型1”、“模型2”等)。模型2、模型32、模型33和模型35(其中,模型35是“当前”学生模型,出于该示例的目的)可能已经各自满足所有的性能要求,而模型1、模型3-31和模型34可能各自未能满足所有的性能要求。操作114因此可包括取决于使用情况和/或实施例将模型35的性能与以下模型的性能进行比较:模型34;模型32-34;模型33;模型2、32和33;模型1-34;所列出的组中的任何一个的平均值和/或最大值等。
性能比较可以按“类别”来组织;例如,操作114可以包括比较不同模型的所消耗的内存量、推断速度、准确性等。取决于实施例/用例,操作114可包括确定在每个性能类别、大多数类别或一个或多个类别的特定组中当前学生模型的性能是否优于先前学生模型的集合的性能。例如,当前学生模型的性能可以被认为“优秀”,如果它具有更高的准确性、更低的推断速度等。在一些实施例中,每个类别中的性能可用于计算总体性能评级(例如,从0到1的数字),其中,操作114可包括比较各种模型的性能评级。
如果当前学生模型的性能优于先前模型的集合的性能(114“否”),则方法100返回到操作105以生成并评估另一学生模型。这样,只要性能增加,就连续地生成(经由模型选择、删减和训练)并评估学生模型。如果当前学生模型是所生成的第一学生模型,则操作114可默认为114“否”。在当前学生模型比先前模型差(114“是”)之后,可退出循环,并且方法100可在操作116处通过选择具有最高性能的模型来结束。如本文所使用的“最高性能”可以指在一个或多个所评估的类别中具有最大性能(例如,最快的推断速度、最高的准确性、最低的资源要求等)的模型。在不同的模型在不同的类别中胜出的情况下,可以使一个模型优先于其它模型(例如,准确性),只要相应的最佳模型仍然满足剩余类别中的最低性能要求。如本领域普通技术人员将理解的,还考虑用于选择“最高性能”模型的其他标准。例如,学生模型在每个类别中的性能可以被分配可量化的评级(例如,范围从0到1)。性能要求可以以类似的方式由评级来表示。可以确定最小所需评级与每个模型的评级之间的差异,并且可以选择具有最高总差异(或最高平均差异等)的模型。
循环通过操作105-114有利地使得执行方法100的系统能够生成针对特定性能要求(例如设备的硬件规格)而优化的机器学习模型。在一些实施例中,在方法100可以前进到操作116之前,循环必须被执行最少次数。在一些实施例中,可能存在退出循环的其它条件,例如当前学生模型是否超过一组性能目标(例如,基于性能要求的较高阈值)、最大数量的模型是否已被尝试或超过性能要求等。在不同的使用情况下可以使用不同的条件。
图2是根据本公开的多个实施例的选择和删减模型以生成学生模型的示例图200。机器学习模型存储库202包括一组机器学习模型220、240、260和280(统称为“模型220-280”)。储存库202可包括例如所审查的经训练模型的在线数据库。模型220-280可以各自是不同类型的模型(例如,模型220可以是卷积神经网络,模型280可以是循环神经网络等),或者模型220-280中的一些(或甚至全部)可以是相同类型的模型。模型220-280可被训练来执行各种任务,诸如图像识别、自然语言处理等。
模型220-280中的每一个包括一个或多个层。模型220包括层222、224和226,模型240包括层242、244和246,模型260包括层262、264和266,而模型280包括层282、284和286(统称为层222-286)。层222-286被配置成接收数据的输入、操纵数据并产生输出。每一层的输入可以是第一层(即,层222、242、262或282)的初始输入数据集,或者是从更早的层输出的特征向量。
模型220-280中的一个可以被选择用作学生模型。在图2所示的示例中,如虚线框201所示,已经选择了模型240。在一些实施例中,可以实现各种选择标准以尝试选择“理想的”初始模型,诸如准确性:层计数比、内存占用、推断速度等。然而,在一些实施例中,随机选择可能是有益的,因为它实现起来相对简单并且执行起来较快。此外,由于删减和训练过程的不可预测的影响,随机选择可能仍然是比较有效的。模型240的选择可以以类似于关于在上文关于图1所讨论的方法100的操作104所描述的方式来执行。
在选择了模型240之后,删减它;在图2所示的示例中,模型240删除了层244,使得所得的学生模型241仅具有层242和层246。这可导致学生模型241与“原始”模型240相比具有更小的尺寸和资源要求。可以以类似于在上文关于图1所讨论的方法100的操作106的方式执行对要删除的层的选择。所删除的特定层可被随机地或者基于一个或多个标准来选择。例如,可以随机地选择一个或多个连续块(最小尺寸为层的总数的10%),可以选择中间的20个层,等等。尽管界限可根据性能要求来设置,但是所删除的层数也可以随机地确定。例如,被选择作为要在移动设备上实现的学生模型的基础的150层模型可删除100个层,而所删除的确切层可以随机地选择。
重要的是注意到模型220-280可能具有显著多于三层;机器学习模型通常具有几百层。然而,为了便于解释,模型220和280被描述为仅具有三层。类似地,虽然学生模型241具有比模型240更少的层,但是学生模型241仍然可以具有显著多于两层(可能更甚至是数百层)。另一方面,虽然学生模型241被描述为与模型220、240、260和280相比仅缺少单个层,但是学生模型241可以明显地具有比模型220-280中的任何一个显著更少的层。此外,模型220-280可不必具有相同的结构;作为说明性示例,一些用例可涉及每一个具有不同数量的层(但是全部15个具有至少200个层)的15个教师模型和具有30层的学生模型,而不是每一个具有3层的4个模型和具有2层的学生模型。
删减可导致显著的基于资源的性能改进。换言之,在删减之后,学生模型241可以比模型240显著地更“轻量”。例如,学生模型241可比模型240消耗显著更少的内存来操作。由此,当与模型240相比时,删减还可导致对学生模型241的显著准确性惩罚。这是因为层的连接和排序可能是模型有效性的关键组成部分,在一定程度上,即使对层的排序的微小改变也可能对模型的准确性具有主要影响。由于删减包括删除多个层,因此结果是学生模型241的准确性可能严重降低。然而,这些惩罚可以通过特殊训练来有利地减轻,例如下面参考图3所描述的。
图3是根据本公开的多个实施例的用于部分地基于训练数据302和多个教师模型320、360来训练学生模型340的数据流的示例图300。该训练可以导致学生模型的显著提高的准确性,这可以有利地减轻由于删减而遭受的准确性惩罚。训练数据302可以是已知的注释数据,例如描述特定病理(可能的癌生长、断骨等)的X射线图像序列、具有所诊断状况的患者的脑电图(EEG)图表序列等。
教师模型320和360可以是选自模型储存库的已建立/经预训练的模型。例如,教师模型320和360可对应于如上参考图2所述的模型储存库202的模型220和260。
数据302可以被输入到多个模型,诸如教师模型320和360以及学生模型340。例如,数据302可被输入到模型320的第一层322中。层322可生成特征323(诸如以特征向量的形式),特征323然后可以被输入到层324中。类似地,层324可操纵特征323,并且进而生成输出特征325。然后,特征325可被输入到最终层326中,从而产生输出328。在一些实施例中,输出328可与数据302的标记进行比较以检查教师模型320的准确性。然而,可以假设教师模型320的准确性足以训练学生模型340(从而使得不必将输出328与数据302进行比较)。
类似地,数据302可以被输入到模型360的第一层362中。层362可生成输出特征363,其然后可输入到层364中。类似地,层364可操纵特征363,并且进而生成输出特征365。然后,特征365可被输入到最终层366中,从而生成输出368。在一些实施例中,输出368可与数据302进行比较以检查教师模型360的准确性。然而,教师模型360的准确性可被假定为足以训练学生模型340(从而使得将输出368与数据302进行比较是不必要的)。
数据302也可被输入到学生模型340的第一层342中。第一层342可操纵输入数据302且生成第一输出特征343。然后,这些特征可被输入到层346中,以便生成学生输出348。输出348可以与输入数据302的已知值进行比较,并且可以基于该比较来对层342和346进行调整。然而,特征343还可以与特征323、325、363和365中的一个或多个进行比较。此外,对层342和346的调整可至少部分地基于这些比较。例如,如果特征342和特征323之间的差异相对较高,则对层342的权重所作的改变的幅度可以相对较高。这可有利地使得训练学生模型340能够在对准确性的成本最小的情况下(因为输出348与数据302的比较在层342/346被调整时仍然被考虑)以与教师模型320和360类似的方式(尽管教师模型320和360基本上更复杂,具有更多的层)来运行。
在本公开的全文中,参考各种形式的数据,特别是“已标记的”相对于“未标记的”数据。“已标记的”数据进一步被分成组:“硬”标记的数据(通常从外部源接收)和“弱”标记的数据。通常,硬标记的数据是指已经被分类、注释或以其他方式已知和理解的数据。例如,在图像识别的上下文中,已知数据可以是包括详述图像中描绘的项或对象的信息(即,元数据)的图像。作为附加示例,从公共健康数据库接收的心电图(ECG或EKG)可以是硬标记的数据,该公共健康数据库包括将ECG描述为正常心律(由一个或多个医学专业人员审查)的元数据。硬标记的数据可以从各种源公开地获得,诸如模型训练数据库、人工智能(AI)社区等。没有注释或标记的数据被称为“未标记的”数据。作为非限制性示例,原始传感器数据可以是未标记的数据。
如本文所用的,“弱”标记的数据是指先前未标记的数据,其已通过除由专业人员手动注释之外的方式标记,诸如经由根据本公开的系统和方法。“弱”名字可能暗示数据没有通过诸如人工注释的传统方式被标记并且没有被确认为被正确标记的事实。
此外,如本文所使用的“数据”可以指“输入数据”(诸如从设备记录的数据)或“特征数据”(诸如来自机器学习模型的中间层的输出)。作为示例,ECG(“输入数据”)可以被输入到模型的第一层中,该第一层可输出包含多个特征(“特征数据”)的特征向量。然后,特征向量可以被输入到模型的第二层,其可以进而输出第二特征向量(其特征也是特征数据),等等。输入数据是已标记的或未标记的。从已标记的输入数据生成的特征数据可以继承相同的标记。例如,已标记的ECG可以通过第一模型层被转换成第一特征向量。然后,可以基于ECG的标记来标记第一特征向量,从而产生已标记的特征数据。因此,获得数据可以指接收输入数据(诸如通过例如收集患者数据或下载标记数据)或生成特征数据(通过将特征数据输入到模型中并从模型的层中提取特征数据输出)。
图4示出了根据本公开的多个实施例的基于未标记的数据来更新机器学习模型的高级方法400。方法400可由例如其上安装有机器学习模型的设备(诸如计算机)来执行。方法400包括在操作402处收集数据。操作402可包括例如经由一个或多个传感器记录数据。在操作402处收集的数据可以是未标记的输入数据。例如,操作402可包括接收脑电图数据(例如,从一组电极读取数据的EEG的图像)。EEG数据是描绘正常的脑活动还是例如疾病发作,最初是未知的,因为数据是未标记的。
方法400还包括在操作404处接收已知数据。操作404可包括例如从在线数据库下载数据集、从本地存储设备加载数据集等。已知数据可包括已经由诸如专业人员/专家注释的一组测量。这种已知数据在本文中也被称为“硬”标记的数据。操作404可包括接收单个数据集或多个数据集。
方法400还包括在操作406处将已标记数据与未标记数据进行比较。操作406可包括例如计算未标记数据集的数据点和(一个或多个)已标记数据集的数据点之间的差。在一些实施例中,操作406可包括对数据进行聚类。作为非限制性的高级示例,数据集的每个数据点可被表示为X-Y坐标对,其中操作406可包括绘制每个数据点以识别在X-Y平面中彼此接近的数据点的组或“集群”。作为更具体的示例,可以绘制描述大脑功能的各种状态的一组已标记的、公开可用的EEG图像(每个图像用作对应于单个读数的“数据点”),使得类似标记的EEG图像彼此接近。换言之,被标记为描绘正常脑功能的EEG图像可被绘制在第一集群中,被标记为描绘第一类型的疾病发作的EEG图像可被绘制在第二集群中,被标记为描绘第二类型的疾病发作的EEG图像可被绘制在第三集群中,等等。用于绘制各种标记图像的算法可以被重复修改,直到图像根据它们的标记被聚类。然后,可以使用相同的算法绘制来自未标记数据的图像并将其组织为集群。在图5的图500中提供了这种比较的示例。操作406可包括通过转导(transduction)算法比较已标记和未标记的数据。
通过操作406识别的一些集群可能不包括来自未标记的数据集的任何数据点。作为示例,第一集群可包括每个ECG都被标记为“正常心律”的已知数据点,第二集群可包括每个ECG都被标记为“心房纤颤”的已知数据点,第三集群可包括每个ECG都被标记为“心室纤颤”的已知数据点,并且未标记的数据可以是针对特定患者测量的ECG的集合。未标记的数据集(例如,患者的ECG)可包括第一集群中的一些数据点和第二集群中的一些数据点,但不包括第三集群中的数据点。如果患者相对健康,没有心脏问题的历史,则未标记的数据可能不被期望包括描绘心室纤颤的ECG(因为心室纤颤通常跟随有心搏停止并且通常是致命的)。
方法400还包括在操作408处标记所收集的数据。操作408可包括确定经由操作402接收的未标记数据集中所包括的每个数据点的标记。操作408可包括基于操作406的比较来确定标记。例如,操作408可包括基于来自所接收的已知数据集的最相似数据点的标记来推断每个数据点的标记。在一些实施例中,操作408可由实现转导算法的计算机系统执行。由于经由操作408确定的标记不是以“传统”方式(诸如经由专业人员的人工分析和注释)确定的,因此经由操作408确定的标记可被认为是“弱”标记。
在一些实施例中,教师模型的输出可被认为是弱标记。作为说明性示例,未标记的数据可以被输入到教师模型中,教师模型可以进而输出包含表示7个目标类别(与7类疾病发作类型分类有关)的概率的7个条目的向量。可以对该向量应用argmax运算以找到具有最高概率的索引。向量的这个索引可以被认为是未标记数据的最可能的类别,并且因此可以被作为弱/合成标记来对待。
作为示例,第一未标记EEG图像(例如,经由操作402获得的所收集的患者数据)可在第一集群中,第一集群还包括多个标记图像(例如,来自经由操作404接收的已知“硬”标记数据集的EEG图像)。操作408可包括识别第一集群中的已标记的EEG图像中的每一个都被标记为“正常脑活动”,并且因此将该第一标记分配给第一未标记图像(以及第一集群中的任何其他未标记数据点)。因此,第一未标记EEG图像可被分配“弱”标记,其将图像识别为描绘“正常脑活动”。
操作408还可包括将所确定的标记分配给数据集(诸如通过将包括标记的元数据添加到数据集)。元数据还可以指示标记是“弱”标记。
在一些情况下,不是每个数据点都可以被标记;例如,未标记的数据点可以位于经由操作406识别的集群外部或直接位于其之间(“未标记的异常值”)。用于处理未标记异常值的过程可以根据实施例/使用情况而变化。例如,在一些实施例中,操作408还可包括从未标记数据集中丢弃未标记的异常值。在一些实施例中,操作408还可以包括基于“最佳猜测”(例如,最靠近异常值的集群)来标记未标记的异常值,或者操作408可包括诸如通过实现不同的算法(例如,最近邻居)来执行附加的“通过”以尝试标记异常值。基于阈值比较,数据点可被认为是“异常值”;可以定义描述未标记的数据点和已标记的数据点(或集群的中心)之间的最大差的差阈值。如果未标记的数据点与最接近的已标记的数据点(或最接近的已标记的数据点的集群)相差大于差阈值的量,则未标记的数据点可被认为是异常值。
方法400还包括在操作410处再训练机器学习模型。机器学习模型可能已经被训练来分析或分类输入数据,诸如经由操作402收集的数据。随着输入数据的性质改变,模型可能随着时间的推移而失去准确性,这可以通过再训练来减轻。具体地,操作410可包括使用弱标记数据作为用于再训练机器学习模型的训练数据。例如,操作410可包括将弱标记数据输入到模型,从模型接收输出,计算输出和标记之间的误差,基于误差调整模型的层,并重复直到误差不再减小。在一些实施例中,操作410除了使用弱标记的数据训练之外还包括使用硬标记的数据集训练模型。此外,在一些实施例中,可以以与方法100的操作108类似的方式将硬标记的数据输入到教师模型中以产生教师输出,并且可以鉴于教师输出基于硬标记的数据和弱标记的数据来再训练学生模型。
考虑到再训练可能不改善性能(或者甚至可能降低性能)的可能性,可以对模型的“工作副本”执行操作410,而不改变模型的“活动(live)”版本。在一些情况下,弱标记的数据和硬标记的数据可被组合成聚集训练数据集,并且该聚集训练数据集可用于再训练模型。在一些实例中,弱标记的数据可用于训练第一学生模型,而硬标记的数据可用于训练第二学生模型,其中两个学生模型可稍后被组合成集成(ensemble)模型。
方法400还包括在操作412处评估经训练的模型。操作412可包括例如将硬标记的数据输入到经再训练的模型中、接收输出、以及确定经再训练的模型的准确性。操作412可包括使用“评估数据”来评估模型,该“评估数据”指的是作为操作410的一部分未被用于再训练模型的硬标记数据。
方法400还包括在操作414处确定经再训练的模型的性能相对于模型的先前版本(“活动”模型)的性能是提高还是降低。操作414可包括例如将再训练的模型的准确性与活动模型的准确性进行比较。例如,在操作412处,经再训练的模型可正确地分类98%的评估数据。如果活动模型具有95%的精度,则经再训练的模型由于具有更高的精度而被认为是优良的(414“是”)。可以考虑其他性能度量(除了准确性之外),诸如f1分数、灵敏度、特异性等。例如,操作414可包括将经再训练的模型的灵敏度与活动模型的灵敏度进行比较。
如果经再训练的模型导致改进的性能(414“是”),则方法400还包括在操作416处用经再训练的模型替换活动模型。操作416可包括例如基于在操作410处再训练模型时所作的改变来更新模型的层。在一些使用情况下,如果必要,可以将较旧版本的模型存档以实现回退。作为说明性示例,412处的评估可能不一定详尽地测试模型在每个方面的性能,因此存在经再训练的模型在一些上下文中可能具有较差的性能的机会(例如,当与特定子类型的输入数据一起呈现时相对较差的准确性,诸如描绘心房纤颤的罕见呈现的ECG,其未在评估数据中表示)。因此,在经再训练的模型稍后被发现不足的情况下,保留模型的一个或多个先前迭代的备份可能是有益的。然而,在一些实例中,运行模型的设备的存储空间约束可阻止备份的使用(但是它们仍可被维护在别处,诸如在云服务器上)。
如果经再训练的模型没有导致相对于实时模型的改进的性能(414“否”),则方法400还包括在操作418丢弃经再训练的模型并继续使用活动模型。
方法400可响应于用户输入(例如,用户可使设备或系统执行方法400)而被执行。在一些实施例中,方法400可周期性地执行,例如每3个月、每周等。包括弱标记数据的使用的再训练有利地使得执行方法400的系统能够更新机器学习模型。特别地,弱标记数据的“真实世界”性质有利地使得能够更新机器学习模型,以便即使面对移位输入数据也保持鲁棒和准确。例如,当用户的生理机能随时间变化时,输入到模型中的数据可包括模型尚未被训练的模式。然而,由于底层模式可保持一致,因此方法400可以有利地使得能够更新模型以即使在呈现新模式时也保持准确,并且不需要附加的专业数据分析或注释。
在一些实施例中,还可以基于设备的硬件规格将经再训练的模型与资源要求进行比较。如果经再训练的模型的资源开销超过要求,则可以对经再训练的模型进行删减并再次进行再训练。这可以以类似于方法100的操作112、105和106(上面参考图1讨论的)的方式执行。这可以有利地使得能够再训练现有模型以在资源要求内更好地(例如,以更高的准确性)执行和起作用。
图5是描绘根据本公开的多个实施例的如何基于已知数据集自动标记未标记的所观察的数据的说明性示例的图500。图500可以描绘半监督机器学习过程,诸如例如转导。图500可表示数据点的2D绘图,其通过例如向各个数据点分配(X,Y)坐标而生成。图500包括来自三个不同数据集的形状:所观察的和未标记的数据集包括数据点512、514和516(在图5中描绘为正方形)、第一组已知的“硬”标记的数据点522、523和526(在图5中描绘为三角形)和第二组已知的硬标记的数据点532、534、535和536(在图5中描绘为圆形)。例如,所观察的数据集可以是患者的EEG扫描(即,数据点512可以是来自第一患者记录的第一组EEG数据,数据点514可以是来自同一患者的第二记录的第二组EEG数据,等等)。此外,第一组硬标记的数据点可以是具有已知结果的第一组公共可用的EEG数据集。例如,数据点522可以是已经被识别为描绘第一类型的疾病发作的EEG扫描,数据点523可以是也已经由专家识别为描绘第一类型的疾病发作的不同的EEG扫描,而数据点526可以是已经被识别为描绘正常脑活动的EEG扫描。第二组硬标记的数据点可以是一组不同的经注释的EEG扫描(可能来自不同的源)。也考虑使用多于两个的已标记的数据集,并且可以帮助标记和再训练。在一些实施例中,第一数据集可用于再训练模型,而第二数据集可用于评估经再训练的模型的性能(即,准确性)。
图500可表示数据点的2D绘图,其通过例如向各个数据点分配(X,Y)坐标而生成。X和Y值可以通过算法来分配,并且该算法可以被重复修改,直到来自所标记的组的数据点被绘制在具有类似标记的数据点的不同集群中。例如,一组已标记的EEG可包括被标记为描绘第一类型的疾病发作(“疾病发作EEG”)的多个EEG和被标记为描绘正常脑活动(“正常EEG”)的多个EEG。算法的第一次迭代可用基于EEG的文件大小确定的X坐标和基于EEG的创建日期确定的Y坐标来绘制这些EEG中的每一个,但是这不太可能导致疾病发作EEG被绘制为彼此靠近(或正常EEG被绘制为彼此靠近)。因此,可修改算法以不同地确定(X,Y)坐标并重新评估,且可重复此过程直到所有疾病发作EEG被绘制在给定半径的第一区域内而没有任何附近的正常EEG(第一集群)且所有正常EEG被绘制在相同半径的第二区域内而没有任何附近的疾病发作EEG(第二集群)。在算法可靠地绘制彼此接近的已标记数据点之后,可以假设它将适当地绘制未标记的数据点(例如,可以假设描绘正常脑活动的未标记的EEG将被绘制在第二集群中)。
注意,(X,Y)坐标不一定代表EEG的区别性质;它们可以对于外部观察者表现为任意的。换句话说,图500不一定是按照诸如平均值、频率、幅度等的公知度量的数据的曲线图。简单地说,轴是它们无论如何都需要的;只要算法导致在相同集群内绘制具有相同标记的数据点,则系统可具有相同算法将在适当集群内绘制未标记数据的相对高置信度。
值得注意的是,图500中的数据点都相对地分离成单独的组或“集群”,使得给定集群的成员都位于彼此相对靠近的位置。在示例性示图500中,数据点512、522、523和532在集群502中,数据点514、534和535在集群504中,并且数据点516、526、536在集群506中。各种硬标记的数据点还各自具有3种不同标记中的1种:“A”、“B”和“C”。此外,图500中的每个给定集群的所有已知标记是相等的;数据点522、523和532全部标记为“A”等。这可能是数据点如何被绘制的结果。
通过将数据点的值输入到算法中、接收坐标作为算法的输出、根据输出坐标绘制数据点、以及调整算法直到具有特定值的数据点被绘制成彼此相对接近,可以为各个数据点分配坐标。这样,当未标记的数据点的值被输入到算法中时,包含它们的结果位置的集群可能对应于数据点的“正确”标记。例如,当未标记的数据点512被绘制在集群502中时,并且因为绘制算法偏向于在集群502中绘制“A”标记的数据点,所以可以推断数据点512应当被标记为“A”。可以对未标记数据集中的每个数据点重复该过程,导致数据集的“弱”标记,有利地使得能够基于所观察的数据再训练模型。
作为非限制性的示例,“A”可以指第一种类型的疾病发作,而“B”可以指正常的大脑活动,“C”可以指第二种类型的疾病发作。因此,算法可能已经绘制了描绘集群502内的第一类型的疾病发作的所有EEG、描绘集群504内的正常脑活动的所有EEG和描绘集群506内的第二类型的疾病发作的所有EEG。即使分类的确切性质看起来任意/不太清楚(例如,X和Y轴不对应于数据的熟悉特性),也可以验证算法可靠地分类EEG。因此,当相同的算法在集群502中绘制未标记的EEG时,可以推断未标记的EEG描绘了第一类型的疾病发作,等等。
图6示出了根据本公开的多个实施例的基于从未标记的输入数据得到的去标识的特征数据来更新机器学习模型的高级方法600。通常,方法600包括可以是基本上类似于在方法400中执行的操作的多个操作。然而,方法600基于未标记的“去标识的”特征(即,特征数据)再训练模型,所述未标记的“去标识的”特征本身是基于所收集的数据(即,输入数据)。如果例如由执行方法600的设备收集的数据可能具有敏感性质,诸如个人可识别信息(PII)、健康信息等,则这可能是有利的。
方法600包括在操作602处获取已标记的输入数据和未标记的输入数据。操作602可包括例如经由一个或多个传感器记录未标记的数据,以及从在线数据库下载已标记的数据集、从本地存储设备加载数据集等。例如,操作602可包括从一组电极接收未标记的脑电图数据并从公共数据库下载一个或多个已标记的EEG数据集。
方法600还包括在操作604处将未标记的输入数据输入到机器学习模型中。操作604可以以基本上类似于机器学习模型(诸如在执行方法600的设备上执行的机器学习模型)的正常操作(或作为其一部分)的方式来执行。
方法600还包括在操作606处生成未标记的特征数据(即,一个或多个未标记的特征)。机器学习模型可包括多个“中间”层,每个“中间”层接收输入特征、操纵输入特征并且产生输出特征,输出特征然后被输入到后续层中。操作606可以包括接收从这些层之一输出的特征。通常,特征本身可以是相对“抽象的”,因为除了被用作机器学习模型的下一层的输入之外,它们可能基本上是不可理解的/无意义的。这是机器学习模型如何(通过重复地调整各层)被训练的性质的后果。对于人类观察者,甚至对于不同的机器学习模型,中间层(有时被称为“隐藏层”)用作“黑盒子”。然而,它们通常是确定性的(尽管这可能根据模型而变化),并且输入数据中的趋势通常将仍然反映在这些中间特征中。因此,当原始数据可能具有敏感性质时,机器学习模型的中间特征呈现了对原始数据的可行替换。此外,在模型的高层或中间层处产生的特征可以从原始输入数据捕获有用信息(例如,边缘、拐角、均匀补丁(patch)等),并且因此与输入数据相比可以有利地更有效地区分目标类别。在一些实施例中,机器学习模型可以被配置为除了其典型输出之外或者代替其典型输出而输出特定特征向量。例如,具有50层的机器学习模型可以被配置为除了输出它的最终输出之外还输出由第37层生成的特征向量。然后,第37层的特征向量可被用作操作606的“所生成的未标记的特征数据”。
方法600还包括在操作608处将已标记的输入数据输入到相同的机器学习模型中。操作608可以以与操作604基本类似的方式执行。每个输入数据点的标记可以被保留或缓存,以便能够标记相应的所生成的特征数据。
方法600还包括在操作610处生成已标记的特征数据。操作610可以以与操作606基本类似的方式执行。另外,可以基于与对应的输入数据相关联的标记来标记所生成的特征。
方法600还包括在操作612处基于已标记和未标记的特征之间的比较来标记未标记的特征数据。操作612可包括例如比较未标记的特征和已标记的特征,以基本上类似于方法400的操作406的方式计算未标记的特征和已标记的特征之间的差异。操作612还可包括以与方法400的操作408基本类似的方式确定经由操作606生成的未标记的特征中所包括的每个特征的标记。虽然各种特征可能与生成特征的初始输入数据显著不同,但是由于机器学习模型的性质,已标记的特征与未标记的特征之间的比较仍然类似地有用,从而使得能够以类似的方式标记未标记的特征数据(诸如通过将特征绘制成集群,类似于参考图5所讨论的示例)。
方法600还包括在操作614处经由新标记的(“弱”标记的)特征数据来再训练机器学习模型。在一些实施例中,操作614还可包括经由硬标记的特征数据和来自一个或多个教师模型的特征数据进行再训练。操作614可包括例如将弱标记特征输入到模型的“下一层”。作为示例,在操作606处生成的现在标记的特征数据可以从50层模型的第37层输出。操作614可包括将弱标记的特征数据输入到模型的第38层中,从模型接收输出,计算输出和标记之间的误差,基于误差调整模型的层38-50中的一个或多个,并且重复直到误差不再减小。在一些实施例中,操作614还包括除了使用弱标记的特征数据训练之外还使用硬标记的数据集来训练模型。
考虑到再训练可能不改善性能(或者甚至可能降低性能)的可能性,可以对模型的“工作副本”执行操作614,而保留模型的“活动”版本不变。然后,如果合适的话,可以以与方法400的操作412-416基本类似的方式评估和更新该模型。在一些实施例中,硬标记的数据可被输入到教师模型中以产生教师输出,而硬标记数据和弱标记数据的组合可被用于结合教师输出来再训练学生模型。在一些实施例中,操作614可包括诸如经由方法100使用复合知识提炼进行再训练。
图7是描绘根据本公开的多个实施例的经由转导学习来标记未标记的输入数据(诸如传感器数据)的示例的图700。图700被呈现为可以如何执行方法600的说明性示例。未标记的输入数据702可经由观察来收集,诸如从一个或多个传感器收集。未标记的输入数据702被输入到机器学习模型701中。模型701可以输出未标记的特征数据712。
已知数据704可包括多个数据集,诸如第一标记的输入数据706和第二标记的输入数据708。输入数据集706和708都被输入到模型701中,分别得到已标记的特征数据716和已标记的特征数据718。为了清楚起见,模型701可以针对每个数据集执行多次。例如,输入数据集702、706和708中的每一个可包括5个数据点。因此,模型701可以被执行15次;一次针对未标记的输入数据集702的每个未标记的输入数据点(导致5个特征712),一次针对已知输入数据集706的每个已标记的输入数据点(导致5个已标记的特征716),以及一次针对已知输入数据集708的每个已标记的输入数据点(导致5个已标记的特征718)。模型701的这些迭代可以以任何顺序执行。
值得注意的是,模型701通常可以被配置为输出分类(图7中未示出),但是为了更新模型701,模型701可以被重新配置为除了/代替分类输出特定的中间特征(例如未标记的特征数据712)。这种重新配置可以是临时的或永久的。在一些实施例中,系统可以被配置为获取层的输出而不重新配置模型701。特定特征数据输出可以在更新尝试之间变化,只要相同的特征在相同的尝试内用于每个数据集(未知的和已知的)。例如,可以执行第一更新尝试,诸如方法600的第一次迭代,其中模型701被配置为输出由第42层生成的特征向量。可以执行第二更新尝试,例如方法600的第二次迭代,其中,模型701被配置为输出由第37层生成的特征向量。
未标记的特征数据712、硬标记的特征数据716和硬标记的特征数据718被输入到转导算法705中。转导算法705例如可以将特征712-716中的每一个组织成集群,其中每个集群包括具有特定标记的特征。因此,可以基于推断(即,基于特征712中的每一个被绘制到的集群)来标记未标记的特征712中的每一个。这导致“弱”标记的特征722,其与硬标记的特征726和硬标记的特征728组合以形成可以随后用于再训练和评估模型701的再训练特征720。
现在参考图8,示出了可以被配置为执行本公开的各个方面的示例计算机系统800的高级框图,所述各个方面包括例如方法100、400和600。根据本公开的实施例,示例计算机系统800可用于实现本文描述的方法或模块中的一个或多个以及任何相关功能或操作(例如,使用计算机的一个或多个处理器电路或计算机处理器)。在一些实施例中,计算机系统800的主要组件可包括一个或多个CPU 802、存储器子系统808、终端接口816、存储接口818、I/O(输入/输出)设备接口820和网络接口822,所有这些组件可以直接或间接地通信耦接,以便经由存储器总线806、I/O总线814和I/O总线接口单元812进行组件间通信。
计算机系统800可包含一个或多个通用可编程中央处理单元(CPU)802,其中的一些或全部可包括一个或多个核804A、804B、804C和804D,这里一般称为CPU 802。在一些实施例中,对于相对大的系统,计算机系统800可典型地包含多个处理器;然而,在其它实施例中,计算机系统800可以替代地是单CPU系统。每个CPU 802可执行存储在CPU内核804上的存储器子系统808中的指令,并且可以包括一级或多级板载高速缓存。
在一些实施例中,存储器子系统808可包括随机存取半导体存储器、存储设备或用于存储数据和程序的存储介质(易失性或非易失性)。在一些实施例中,存储器子系统808可表示计算机系统800的整个虚拟存储器,并且还可以包括耦接到计算机系统800或经由网络连接的其他计算机系统的虚拟存储器。存储器子系统808在概念上可以是单个单片实体,但是在一些实施例中,存储器子系统808可以是更复杂的布置,诸如高速缓存和其它存储器设备的层级。例如,存储器可存在于多级高速缓存中,并且这些高速缓存可进一步按功能划分,使得一个高速缓存保存指令,而另一个高速缓存保存由一个或多个处理器使用的非指令数据。存储器还可以是分布式的,并且与不同的CPU或CPU组相关联,如在各种所谓的非均匀存储器存取(NUMA)计算机体系结构中的任何一种中所公知的。在一些实施例中,主存储器或存储器子系统804可以包含用于由CPU 802使用的存储器的控制和流动的元件。这可以包括存储器控制器810。
尽管存储器总线806在图8中被示为提供CPU 802、存储器子系统808和I/O总线接口812之间的直接通信路径的单个总线结构,但是在一些实施例中,存储器总线806可包括多个不同的总线或通信路径,其可以以各种形式中的任何形式来布置,诸如分层的点对点链路、星形或网状配置、多层总线、并行和冗余路径、或任何其他适当类型的配置。此外,虽然I/O总线接口812和I/O总线814被示为单个相应的单元,但是在一些实施例中,计算机系统800可包含多个I/O总线接口单元812、多个I/O总线814或两者。此外,虽然示出了将I/O总线814与通向各种I/O设备的各种通信路径分开的多个I/O接口单元,但是在其他实施例中,一些或所有I/O设备可以直接连接到一个或多个系统I/O总线。
在一些实施例中,计算机系统800可以是多用户大型计算机系统、单用户系统、或服务器计算机、或具有很少或没有直接用户接口但从其它计算机系统(客户端)接收请求的类似设备。此外,在一些实施例中,计算机系统800可被实现为台式计算机、便携式计算机、膝上型或笔记本计算机、平板计算机、袖珍计算机、电话、智能电话、移动设备、或任何其他适当类型的电子设备。
注意,图8旨在描绘示例性计算机系统800的代表性主要组件。然而,在一些实施例中,各个组件可以具有比图8中所表示的更大或更小的复杂性,可以存在不同于图8中所示的组件或除了这些组件之外的组件,并且这些组件的数量、类型和配置可以改变。
本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。
计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如Smalltalk,C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分地在用户计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。
附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以在一个步骤中完成,并行地、基本上并行地执行,以部分或完全临时重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的呈现了对本发明的各种实施例的描述,但其并非旨在是穷尽性的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。本文所使用的术语被选择为解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
Claims (9)
1.一种选择机器学习模型的方法,包括:
接收设备的硬件规格;
基于所述设备的所述硬件规格来确定性能要求;
获取机器学习模型的集合,所述机器学习模型的集合包括:
具有第一层集合的第一机器学习模型;以及
教师模型;
从所述第一机器学习模型删除所述第一层集合中的一个或多个层,从而产生具有经删减的层集合的学生模型;
基于以下来训练所述学生模型:
训练数据;以及
所述教师模型;
评估所述学生模型的性能;
比较所述学生模型的所述性能和所述性能要求;以及
至少基于所述比较来确定选择具有最高性能的模型。
2.根据权利要求1所述的方法,还包括:从用户接收附加性能要求,其中,所述比较还包括将所述学生模型的所述性能与所述附加性能要求进行比较。
3.根据权利要求1所述的方法,其中,所述删除一个或多个层包括:
基于所述性能要求,确定要删除的层的数量;
基于所述数量,选择所述一个或多个层;以及
删除所选择的层。
4.根据权利要求3所述的方法,其中,所述一个或多个层是随机选择的。
5.根据权利要求1所述的方法,其中,所述删除一个或多个层包括删除一个或多个块,每个块包括连续的层集合。
6.根据权利要求1所述的方法,其中,所述训练包括:
将训练数据输入到所述学生模型和所述教师模型中;
从所述学生模型接收学生特征;
从所述教师模型接收教师特征;
执行所述学生特征与所述教师特征之间的第一比较;
从所述学生模型接收学生输出;
执行所述学生输出与所述训练数据之间的第二比较;以及
基于所述第一比较和所述第二比较来调整所述学生模型的所述经删减的层集合中的至少一层。
7.根据权利要求1所述的方法,其中,所述机器学习模型的集合中的每一个机器学习模型是从模型存储库选择的。
8.一种系统,包括:
存储器;以及
耦接到所述存储器的中央处理单元CPU,所述CPU被配置为执行指令以执行根据权利要求1至7中任一项所述的方法的步骤。
9.一种计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质中体现有程序指令,所述程序指令能够由计算机执行以使所述计算机执行根据权利要求1至7中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/036,218 US20220101184A1 (en) | 2020-09-29 | 2020-09-29 | Mobile ai |
US17/036218 | 2020-09-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114358305A true CN114358305A (zh) | 2022-04-15 |
Family
ID=78536408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111137759.0A Pending CN114358305A (zh) | 2020-09-29 | 2021-09-27 | 移动ai |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220101184A1 (zh) |
CN (1) | CN114358305A (zh) |
DE (1) | DE102021124256A1 (zh) |
GB (1) | GB2603831A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11693987B2 (en) * | 2021-04-30 | 2023-07-04 | International Business Machines Corporation | Database security |
US11450225B1 (en) * | 2021-10-14 | 2022-09-20 | Quizlet, Inc. | Machine grading of short answers with explanations |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3947081A4 (en) * | 2019-03-29 | 2023-06-21 | INTEL Corporation | AUTONOMOUS VEHICLE SYSTEM |
US11694081B2 (en) * | 2019-05-15 | 2023-07-04 | Advanced Micro Devices, Inc. | Accelerating neural networks with one shot skip layer pruning |
-
2020
- 2020-09-29 US US17/036,218 patent/US20220101184A1/en active Pending
-
2021
- 2021-09-17 GB GB2113292.3A patent/GB2603831A/en not_active Withdrawn
- 2021-09-20 DE DE102021124256.8A patent/DE102021124256A1/de active Pending
- 2021-09-27 CN CN202111137759.0A patent/CN114358305A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220101184A1 (en) | 2022-03-31 |
DE102021124256A1 (de) | 2022-03-31 |
GB2603831A (en) | 2022-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gadekallu et al. | Cuckoo search optimized reduction and fuzzy logic classifier for heart disease and diabetes prediction | |
US20220101185A1 (en) | Mobile ai | |
EP3648016A1 (en) | Scalable artificial intelligence model generation systems and methods for healthcare | |
CN115699208A (zh) | 用于清洗数据以训练人工智能(ai)模型的ai方法 | |
Kabir et al. | Classification of breast cancer risk factors using several resampling approaches | |
CN114358305A (zh) | 移动ai | |
Saravanan et al. | Computational and mathematical methods in medicine glioma brain tumor detection and classification using convolutional neural network | |
Jacob et al. | Evolving efficient classification rules from cardiotocography data through data mining methods and techniques | |
Gong et al. | A sparse reconstructive evidential K-nearest neighbor classifier for high-dimensional data | |
Ullah et al. | Detecting High‐Risk Factors and Early Diagnosis of Diabetes Using Machine Learning Methods | |
Deshmukh et al. | Explainable quantum clustering method to model medical data | |
CN115438040A (zh) | 一种病理档案信息管理方法及系统 | |
Prakash et al. | Data Science Framework-Heart Disease Predictions, Variant Models and Visualizations | |
Li et al. | Causal-aware generative imputation for automated underwriting | |
Tasnimi et al. | Diagnosis of anomalies based on hybrid features extraction in thyroid images | |
CN112382355A (zh) | 一种智慧医疗数据管理方法、存储介质及系统 | |
Saha et al. | Classifier fusion for liver function test based indian jaundice classification | |
US20230237369A1 (en) | Automated training of machine learning classification for patient missed care opportunities or late arrivals | |
Sivakumar et al. | An optimal region growing segmentation algorithm with decision tree tumor classifier | |
JP2022056412A (ja) | 機械学習モデルを選択する方法、システム、およびプログラム(モバイルai) | |
WO2021089570A1 (en) | Combining model outputs into a combined model output | |
US20190172583A1 (en) | Method and system to improve clinical workflow | |
Sumithra et al. | Optimizing Brain Tumor Recognition with Ensemble support Vector-based Local Coati Algorithm and CNN Feature Extraction | |
Hammad et al. | Applying modified LBP for 2D ECG images classification | |
Mousavirad et al. | A comparative study on medical diagnosis using predictive data mining: A case study |
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 |