中文 英语

更简单、更快速地训练人工智能

更简单的方法是必要的,以跟上不断发展的模型和新的应用程序。

受欢迎程度

训练一个人工智能模型需要大量的工作和数据。利用现有的培训可以节省时间和金钱,加速使用该模型的新产品的发布。但有几种方法可以做到这一点,最显著的是通过迁移和增量学习,每种方法都有其应用和权衡。

迁移学习和增量学习都采用预先训练好的模型,并使其适应新的应用,尽管它们的工作方式不同。此外,还有强化学习,它提供了另一种动态改进模型的方法,但它与一些更熟悉的深度学习概念不同。

微软首席机器学习/音频系统工程师Ashutosh Pandey说:“学习风格因人而异,但更重要的是,它们因应用而异。英飞凌.“我们大量使用增量学习,因为它在泛化和定制之间提供了平衡。迁移学习在许多音频应用中都很有用。强化学习是另一回事。”

在获取有价值的培训数据方面,公司之间存在着巨大的不平等。像亚马逊、谷歌和Facebook这样的公司每天都会获得大量的数据。例如,Facebook上的许多“挑战”或“测验”只是获取数据的策略。“你十年前长什么样?”引发了巨大反响,让Facebook得以以其他公司难以企及的方式改进其老化算法。

这并不意味着所有其他公司都被拒之门外。可以获得训练数据集。但可能更有趣的是那些已经被训练成大型数据集的模型。这些模型可能适用于较小的公司,它们可以成为一个有用的起点。

将模型一分为二
复杂的机器学习(ML)模型有多种形式,但大多数模型可以大致分为两部分。模型的第一层识别基本特征,如线条、形状或可视化应用程序中的其他抽象部分。模型的第一部分的作用是尽可能好地识别这些特征。

后半部分处理特征并计算出关于被推断的输入的一些东西。在分类应用程序中,这意味着决定一些特征的组合构成汽车、停车标志或猫。

将模型分成两部分,虽然可能过于简单,但可以帮助可视化迁移学习、增量学习和强化学习之间的一些关键差异。它在识别特征的过程和根据特征对对象进行分类之间创建了概念上的区别。


图1:将模型分割为实现特征提取的层和应用特征进行分类的层的简化描述。在真实的模型中,断点可能不是那么清晰,并且对于非分类模型可能有所不同。资料来源:Bryon Moyer/Semiconductor Engineering

有些人对这种现象有专门的称呼。在Flex Logix中,第一部分是“主干”,第二部分是“头部”。

“大脑的主干就像视觉皮层,”ibm推理产品销售和营销副总裁达娜·麦卡蒂(Dana McCarty)说Flex Logix.“它能提取你所看到的事物的所有特征,而头部,就像你的额叶皮层,能理解你所看到的东西。”

转移学习
迁移学习是三种学习类型中唯一一种专门用于开发的方法,在模型部署之前完成。这个想法是为了避免从头开始训练一个新模型——尤其是在没有数百万个标记样本可供训练的情况下。

“问题是你并不总是有数据,”潘迪说。“或者你可能没有正确的数据。”

尽管如此,这种方法还是节省了时间。“就像设计师从以前的设计中汲取知识,并将其应用到下一个设计中一样,机器学习也需要这样做,”微软数字和签名组的产品管理组主管罗德·梅特卡夫(Rod Metcalfe)说节奏.“否则,我们就不得不重复同样的学习过程,显然这样效率很低。”

其他人也同意。“迁移学习对于推广机器学习非常重要,”Cadence Tensilica AI产品的产品营销总监Suhas Mitra说。“你从某个领域获取知识,并将其应用于同一领域的类似问题。”

例如,谷歌已经训练了一个视觉模型来分类1000个物体。这可能比任何一个应用程序需要的对象都要多,但是这样做已经改进了所有这些项所需的特性的标识。这使得它可以很好地处理新应用程序可能需要分类的对象子集所需的特定特性。

英飞凌负责物联网、计算和安全的产品营销经理Sree Harsha Angara解释说:“假设我正在对一堆图像进行训练,比如自行车、汽车,也许还有一只狗。”“现在假设我想要识别一只猫,这是它以前从未接受过的训练。通过迁移学习,你假设网络已经学习了对象如何不同的一些基本特征,并且你不从头开始重新训练整个模型。你只训练最后几层。”

与原始训练相比,这种重新训练所需的样本要少得多,因为你不再训练模型如何识别特征。你只是在训练它在分类所需对象时如何使用这些特征。

这种训练通常在云中完成,就像从头开始训练一样。Angara指出:“训练框架为你提供了一种冻结你训练的神经元的方法,只允许选择的层被重新训练。”

然而,如果新旧应用程序差异太大,迁移学习可能就不起作用了。“我不会说你用猫狗模型来训练语音合成,”米特拉警告说。

还有一个“学生”模型的概念。为了训练学生模型,预先训练好的“老师”模型由学生模型“查询”,学生模型向老师学习,而不必从头开始用原始数据训练。

Mitra解释说:“在机器学习中有这种学生/老师范式的概念。“通过迁移学习,你很可能需要重新训练网络。在学生/老师的情况下,你可能需要,也可能不需要。”

但是请注意,迁移学习模型可能不是最优的。潘迪警告说:“如果我们有良好的数据访问权限,我们想要创建最节能的解决方案,或者最小的解决方案,或者最佳的响应时间,我们就不会进行迁移学习,而是从头开始训练。”

增量学习:增加类
增量学习意味着改进现有的已部署模型。Pandey说:“虽然迁移学习是我们想要创建良好泛化的地方,但增量学习是我们想要创建领域鲁棒性的地方。”

然而,增量学习的细节因人而异。英飞凌的安加拉说:“渐进式学习可以让你更好地解决同样的问题。“另一个维度是识别更多的类别。”

这两个方面都涉及到运行中部署模型的演进。虽然这会影响正在使用的模型,但在模型执行时不会发生这种情况。它仍然是离线操作。

我们看到了一个通过迁移学习添加类的例子,但这是不同的。安加拉解释说:“通过迁移学习,你几乎破坏了原来的类,并创建了新的类。”“通过增量学习,我有很多现有的课程。我仍然想保留这些课程,但我想添加一些新的东西。”

BrainChip已经实现了一种添加类的实现,但这是特定于该公司使用的spike神经网络(SNN)。snn的运作方式不同于传统的人工网络神经网络(ann)的分类方法。

对于许多ann,最终的分类是在最后一层通过softmax函数.该函数接受一个数字向量,并将其转换为一个向量,其成员都在0到1之间,且所有元素的和都为1。换句话说,它们可以被解释为概率。

结果向量中的每一项都是图像被分类为特定事物的概率。如果你训练了一个模型来识别1000个东西,那么这个向量就会有1000个条目,每个条目都表示被分类的东西是那个东西的可能性有多大。

对于基于softmax的ANN,如果你改变了被分类的项目数量,你需要用新的向量大小重做softmax计算,这会改变每个向量元素。所以在被分类的项目之间有一种依赖关系。

这和snn不一样。BrainChip的首席执行官兼联合创始人阿尼尔·曼克(Anil Manker)说:“我们通过重复峰值模式来训练神经元。”“穿过第一层的尖刺会有特定的图案,最后一层完全连接在图案上。这种模式取决于峰值发生的时间以及出现了多少峰值。”

没有必须调整的向量,改变要分类的项目数量对添加或删除的项目以外的任何项目都没有影响。

在BrainChip的例子中,它的最后一层节点有一个“训练位”,可以打开和关闭。当关闭时,神经元将在推理过程中按预期操作。添加一个项意味着一个新的节点将打开训练位,它将在训练期间观察尖峰模式。

“一旦一个神经元或节点学会了一种模式,你就会给它贴上标签,”曼克解释说。“当你这样做的时候,你已经关闭了它的训练。因此,只有当输入的模式与它所学的内容相匹配时,这个神经元才会发出信号。”

这需要多余的神经元。如果没有,并且模型分类的对象比需要的多,那么可以“删除”不需要的类,然后重新训练它。

曼克说:“如果你想忘记一种模式,只需找到那个神经元,开启它的学习功能。”“这重置了旧的学习模式,现在你可以学习一种新的模式。”

注意,对于ann, softmax不一定是一个障碍。“对于许多分类方法,人们使用‘度量学习’,其中没有软最大值,”Pandey说。

这使用聚类进行分类,可以独立于现有类对新类进行分类。

增量学习的其他观点
另一些人则认为增量学习通常是提高已部署模型的能力。Mitra说:“增量学习更像是采用一个训练有素的模型,并向其添加更多信息以使其变得更好。”“我们的想法是,你已经在云中训练了一个网络,但你只是在这里和那里增加了一点点。”

训练算法决定在哪里进行。有简化的反向传播技术和统计技术,可以在边缘修改训练。

潘迪说:“如果你要做全面的反支撑,大部分都是在云端完成的。”“如果你在做统计或归纳推理,你可以在边缘上做。”

然而,增量式学习也会出错。数据中心的高级数据科学家康斯坦丁诺斯·桑托普洛斯说:“我们需要非常小心地防止灾难性的遗忘。效果显著.“当隐藏层中的神经元被重新用于新的学习时,就会出现这种现象,从而‘忘记’它们之前学过的东西。”

他提供了一个现实世界的类比来说明这一点。“假设我们正在训练一只狗。在某种程度上,狗通过将我们发出的声音与期望的动作联系起来来学习。在以后的日子里,我们想训练狗做一些其他的动作,但新命令的声音与第一个命令的声音非常相似。经过一些努力,可能会让狗狗感到困惑,我们设法训练狗狗执行新动作,但我们所实现的是将相同的关联重新用于新命令,从而忘记了之前的命令。”

这是可以避免的,但有一个问题。“一种方法是基于排练的方法,”他说。在排练中,重复先前的训练实例,以及新的训练实例,以帮助模型为旧的和新的学习找到一个通用的解决方案。然而,这种方法与增量学习的前提相冲突,增量学习的前提是没有原始训练数据的记录,可以在新的训练中重新使用。”

在某些情况下,来自许多不同部署的改进被发送回云中“母模型”,以改进整个模型,以便在更新中重新分发。这是一个例子联合学习,在那里,分散的点进行训练,而不是全部发生在一个地方。

“联邦学习是获取一些元信息,并将其抛向上游,”Mitra说。谷歌和Facebook是联邦学习的最大支持者。这是一个极其复杂的问题。”

增量式学习仍在寻找立足点。Xanthopolous在谈到半导体测试行业时补充说:“尽管这是近年来ML研究中研究最多的主题之一,但我们还没有开始看到半导体领域的实际应用。”

强化学习
强化学习是完全不同的。这是一种在训练数据很少或根本不存在的情况下训练一个新模型的方法。潘迪说:“一些应用程序可能无法获得数据和地面真相。

它在野外学习,基于作为奖励或惩罚的反馈,这取决于一个特定推理的结果。对吗?加强这种方法。错了吗?改变方法。

“强化学习有一个代理的概念,就像一个身体在说,‘我做得有多好?’”米特拉解释道。“这通常发生在云计算中,因为强化学习是一件非常繁重的事情。”

强化学习与前两种类型的学习之间有一些明显的区别。首先,与前两者不同的是,强化学习发生在部署的应用程序运行时。它不是脱机操作。

其次,它会产生意想不到的结果。典型的ann对可以识别的东西有限制。有人可能会认为,如果被识别的东西具有学习特征集中没有的特征,那么模型将无法处理它。这些特性必须明确地设计进去。

而强化学习则没有这样的限制。该模型将被强化机制发送到任何地方,并且它可以采用开发人员可能从未考虑过的方法。

潘迪说:“通过增量学习,你的任务是有限的,而且你的响应时间非常快。”“通过强化学习,你可以去你以前没有去过的地方。”


图2:迁移学习、增量学习和强化学习之间差异的总结。资料来源:Bryon Moyer/Semiconductor Engineering

混合搭配
一些公司可能会使用这些技术的组合。例如,MicroAI将无监督、简单强化和增量学习结合起来。它的应用程序处理监控数据流,以便为安全或预防性维护等应用程序查找异常。

为了创建模型,MicroAI从无监督学习开始,根据提供的模式对相似的特征集进行聚类。这种强化来自于回路中的一个人,这个人将标记和强化某些模式,以便将来识别。

MicroAI解决方案工程主管Chris Catterton解释说:“例如,专家会对‘这是皮带故障’进行标记,这将适用于数据签名。”“下次它看到类似的数据特征时,它会有一定程度的信心地说这是皮带故障,这将得到加强,并反馈给模型。”

该公司还通过一组作为起点的特征工程模块来使用迁移学习。这有助于设置新模型的结构,而训练则设置参数。

卡特顿说:“我们从未标记的数据、特征工程和数据模式开始。”一旦我们做好了准备,我们将开始(一段时间)对流数据进行训练,这取决于资产的正常周期。”

被监测的设备可能会随着老化而漂移,这就是增量学习的作用。即使机器的行为不像它在最初的训练中那样,这可能并不意味着一个可报告的问题。相反,它需要定期重新训练,或者基于一些标准,使用相同的无监督学习和强化标记的组合。

更新的挑战
在某些应用程序中,更新为增量学习带来了挑战。假设一家汽车OEM实现了机器学习,让汽车能够识别和解释各种街道标志。每一辆售出的同款汽车都配有这种型号。但是,如果OEM能够在波士顿(道路狭窄、弯曲、令人困惑)与奥斯汀(空间更大、网格更大)之间建立完善道路和标志外观的能力呢?

撇开细节不谈,这意味着随着汽车的行驶,模型会慢慢变化以适应当地环境。一旦达到极限,每辆车里的每一款车型——一开始都是一样的——慢慢地与其他车型相去甚远,现在每一款车型都是定制的。

现在,让我们假设OEM一直致力于原始模型,并极大地改进了特征的识别方式。现在它想对其机队进行空中更新。如果它替换了每辆车的模型,那么它实际上是在进行一次“工厂重置”,并抛弃了每辆车已经完成的个人学习——灾难性的遗忘。

在许多情况下,似乎没有考虑到这种情况。对于一些较小容量的应用程序,如检查,模型往往被限制在少数机器上,任何改进都可能发送到所有机器上,这不会产生问题。

但以汽车为例,当地改进的车型将被全球改进的车型取代,似乎没有现成的解决方案。

理想情况下,人们可以想象在层之间有一个标准接口,这样就可以将模型分成两部分,更新第一部分以改进特征识别,同时保留定制的最后一层。没有这样的标准存在。

还有一个“集成学习”的概念,即不同模型的片段可以组合在一起。潘迪说:“通过整体学习,你可以有一个局部模型,然后你可以把两个世界的优点结合起来。”

这一机制在计算的边缘范围内,所以这个概念可能会让汽车进行更新,并将其与旧模型结合起来。

也可以在云中进行组合,尽管这会带来物流问题,因为在这个示例中,OEM必须单独上传每辆车的改进模型,将其与更新结合起来,然后将合并后的更新单独下载到每辆车。这是大量的上传和下载,这可能会被证明是负担。


图3:使用集成学习将旧定制模型与常规更新相结合的两种方法的比较。在左边,只要有计算能力,组合是在飞行器中完成的。在右边,这种组合发生在云中。但这意味着必须首先上传旧模型,然后组合生成新模型,然后下载新模型。这将必须为每辆车单独做。资料来源:Bryon Moyer/Semiconductor Engineering

还有一种可能的更新方法,即记录为增量学习所做的局部改进。当一个新的模型更新出现时,它没有这些改进,然后您“重放”新模型上先前记录的改进。

Mitra说:“例如,如果我在对语音样本进行增量建模时存储了这些步骤,我可以用更新的模型重新执行相同的步骤,并相应地进行调整。”

更新一些增量训练的模型可能没有意义。Angara说:“预测性维护是一个不需要更新的应用。“假设你有一个工厂车间,不同的设备有不同的故障特征。每个模型都将被唯一地调整到该设备上。”

这可以应用于许多不同的应用,如半导体检测。公司x射线检测产品经理Nabil Dawahre表示:“一旦我们认为我们有了一个足够自信的模型,我们只在感觉有检查漏检或设计存在较大偏差时才会更新。力量

修改后的模型将成为一件事
尽管可能还有一些细节有待解决,但迁移、增量和强化学习已经在发生了。迁移学习在新算法的开发中经常被引用。它在适度预算的范围内带来了复杂的建模,并极大地加快了上市时间。

在向分类器中添加类的情况下,增量学习在今天可能还没有被广泛应用,但随着它变得越来越可用,它可能会作为迁移学习的扩展而受到青睐。

增量学习在简单的持续改进的意义上肯定已经发生了。在某些情况下,这可能是一种更新的情况,而不是被认为是某种特殊的学习。但是,可以在边缘进行再培训的方法的可用性可能会增加它的受欢迎程度。

与使用ann和snn的视觉应用相比,强化学习的应用空间更有限。它们是专门为它们需要做的工作而建造的,但由于建造它们所需的专业知识,今天不太常见。

然而,以这样或那样的方式,越来越少的模型会停滞不前。问题只是他们什么时候改变,在哪里改变,以及他们是集体改变还是个人改变。

相关的
未来会有更好的机器训练方法吗?
为什么无监督、强化和Hebbian方法对某些事情有好处,但对其他事情没有好处。
优化机器学习的新方法
在机器学习系统中提高性能和降低功耗的不同方法。
为什么TinyML如此重要
令人惊讶的是,并不是所有的事情都需要大量的计算能力来做出重要的决定。
spike神经网络及时放置数据
我们如何有效地模拟神经元和突触的生物尖峰过程,CMOS是神经网络的一个好的选择吗?



留下回复


(注:此名称将公开显示)

Baidu