为了跟上不断发展的模型和新应用程序的步伐,需要使用更简单的方法。
训练一个人工智能模型需要花费大量的精力和数据。利用现有的培训可以节省时间和金钱,加速使用该模型的新产品的发布。但有几种方法可以做到这一点,最明显的是通过迁移和增量学习,每一种方法都有其应用和权衡。
迁移学习和增量学习都采用预先训练过的模型,并使其适应新的应用,尽管它们的工作原理不同。此外,还有强化学习,它提供了另一种方法来改进动态模型,但它与一些更熟悉的深度学习概念不同。
“学习风格因人而异,但更重要的是,它们因应用而异,”麻省理工学院ML/音频系统首席工程师Ashutosh Pandey说英飞凌.“我们大量使用增量学习,因为它在泛化和定制之间提供了平衡。迁移学习在许多音频应用中很有用。强化学习则是另一回事。”
在获取有价值的培训数据方面,公司之间存在巨大的不平等。像亚马逊、谷歌和Facebook这样的公司每天都会获取大量的数据。例如,Facebook上的许多“挑战”或“测验”仅仅是获取数据的策略。“10年前你是什么样子的?”激发了巨大的反响,使得Facebook能够以其他公司难以做到的方式改进其老化的算法。
这并不意味着其他所有公司都被拒之门外。可以获得训练数据集。但可能更有趣的是那些已经被训练成大数据集的模型。这些模型可能适用于较小的公司,它们可能是一个有用的起点。
将模型分成两部分
复杂的机器学习(ML)模型有许多形式,但大多数可以大致分为两部分。模型的第一层识别基本特征,如线条、形状或可视化应用程序中的其他抽象部分。模型第一部分的作用是尽可能地识别这些特征。
后半部分采用特征,并找出与正在推断的输入有关的东西。在分类应用程序中,这意味着决定某一特征组合构成一辆汽车、一个停车标志或一只猫。
将模型分成两部分,虽然可能过于简单,但可以帮助可视化迁移学习、增量学习和强化学习之间的一些关键区别。它在识别特征的过程中创造了一个概念上的区别,然后根据特征对对象进行分类。
图1:将模型分解为实现特征提取的层和应用特征进行分类的层的简化描述。在真实的模型中,断裂可能不是那么清晰,并且对于非分类模型可能会有所不同。资料来源:Bryon Moyer/半导体万博体育matext网页工程
有些人还为此取了个名字。在Flex Logix中,第一部分是“主干”,第二部分是“头部”。
“中枢就像视觉皮层,”达娜·麦卡蒂说Flex Logix.“它从你所看到的事物中提取出所有特征,而大脑就像你的额叶皮层一样,对你所看到的东西有意义。”
转移学习
迁移学习是三种类型中唯一一种专门用于开发的学习方法,在模型部署之前完成。这样做是为了避免从头开始训练一种新的模型——特别是当一个人没有数以百万计的标记样本来训练时。
潘迪说:“问题是你并不总是有数据。“或者你可能没有正确的数据。”
尽管如此,这种方法还是节省了时间。“就像设计师会从以前的设计中汲取知识并将其应用到下一个设计中一样,机器学习也需要这样做,”罗德·梅特卡夫(Rod Metcalfe)观察道,他是位于华盛顿的数字和签准小组的产品管理组主任节奏.“否则,我们不得不重复同样的学习过程,显然这是低效的。”
其他人也同意。Cadence公司Tensilica人工智能产品的产品营销总监苏哈斯·米特拉(Suhas Mitra)表示:“迁移学习对于推广机器学习非常重要。“你从某个领域获取知识,并将其应用到同一领域的类似问题上。”
例如,谷歌训练了一个视觉模型来分类1000个物体。这可能比任何一个应用程序需要的对象都多,但这样做可以细化所有这些项目所需的特性的识别。这使得它很有可能在新应用程序可能需要分类的对象子集所需的特定特性上做得很好。
英飞凌物联网、计算和安全产品营销经理Sree Harsha解释说:“假设我正在用一堆图像进行培训,比如自行车、汽车,也许还有一只狗。“现在假设我想要认出一只猫,这是它从未接受过训练的。在迁移学习中,您假定网络已经学习了对象如何不同的一些基本特征,而您不必从头开始重新训练整个模型。你只需要对最后几层进行再培训。”
这种再训练所需的样本比原始训练所需的样本要少得多,因为您不再训练模型如何识别特征。您只训练它在分类所需对象时如何使用这些特征。
这种训练通常是在云中完成的,就像从头开始训练一样。Harsha指出:“训练框架给了你一种方法来冻结你训练的神经元。”
然而,如果旧的和新的应用太不同,迁移学习可能不会起作用。“我不会说你拿一个猫狗模型来训练语言合成,”Mitra警告说。
还有一个“学生”模型的概念,这个概念的含义似乎有一些不同的版本。在培训环境中,学生模型“查询”一个预先训练过的“教师”模型,它从教师那里学习,而不必使用原始数据从头开始训练。
Mitra解释说:“在机器学习中存在着学生/教师范式的概念。“在迁移学习中,你很可能需要对网络进行再培训。对于学生/老师,你可能需要也可能不需要。”
然而,请注意,迁移学习模型可能不是最优的。潘迪提醒说:“如果我们能够很好地获取数据,并且想要创造出最节能的解决方案或最小的解决方案或最佳的响应时间,我们就不会进行迁移学习,而是从头开始进行培训。”
增量学习:增加课程
增量学习意味着改进现有的部署模型。潘迪说:“迁移学习是我们想要创造良好泛化的地方,而增量学习是我们想要创造领域稳健性的地方。”
然而,渐进学习的细节对不同的人来说可能是不同的。英飞凌的Harsha说:“增量学习是你在解决同类问题方面做得更好的地方。”“另一个方面是承认更多的阶级。”
这两个方面都涉及运行中已部署模型的演化。虽然这会影响正在使用的模型,但在模型执行时不会发生这种情况。它仍然是脱机操作。
我们看到了一个通过迁移学习增加课程的例子,但这是不同的。Harsha解释说:“在迁移学习中,你几乎摧毁了原来的课程,而建立了新的课程。”“通过渐进学习,我有很多现有的课程。我仍然想保留这些课程,但我想添加一些新的东西。”
BrainChip已经实现了一个添加类的实现,但这是特定于该公司使用的spike神经网络(SNN).snn的运作方式不同于更传统的人工神经网络神经网络(ANNs)的分类方式。
对于许多人工神经网络,最终的分类是在最后一层通过softmax函数.这个函数取一个数字向量,并将其转换为一个向量,其成员都在0到1之间,且所有元素的和都为1。换句话说,它们可以被解释为概率。
结果向量中的每一项都是图像被分类为特定事物的概率。如果你训练了一个模型去识别1000个东西,那么这个向量就会有1000个条目,每一个条目都表示条目被分类的可能性有多大。
对于基于软最大的ANN,如果你改变了被分类的项目的数量,你需要用新的向量大小重做软最大的计算,这将改变每个向量元素。所以在分类的项目之间存在一种依赖性。
这与snn不同。BrainChip的首席执行官兼联合创始人Anil Manker说:“我们通过重复刺突模式来训练神经元。“穿过第一层的尖刺会有一个特定的图案,最后一层完全连接的图案会附着在上面。”这种模式取决于峰值发生的时间以及出现了多少峰值。”
没有需要调整的向量,改变要分类的项目数量对除了添加或删除的项目之外的任何项目都没有影响。
在BrainChip的例子中,它的最后一层节点有一个可以开启和关闭的“训练位”。当关闭时,神经元将按照预期在推断过程中运行。添加一个项目意味着一个新的节点将拥有训练位,并且它将在训练期间观察尖峰模式。
“一旦神经元或节点学会了一种模式,就可以标记它,”曼克解释说。当你这样做的时候,你就关闭了它的训练。因此,只有当传入的模式与它所学到的相匹配时,这个神经元才会发出信号。”
这就需要多余的神经元。如果没有,而且模型分类的对象比需要的多,那么可以“删除”不需要的类,然后重新训练它。
Manker说:“如果你想忘记一个模式,只需去到那个神经元,打开它的学习功能。”“这会重置旧的学习模式,现在你可以学习一种新的模式。”
注意,使用ann时,softmax并不一定是一个障碍。潘迪说:“对于许多分类方法,人们使用‘度量学习’,而这是没有softmax的。”
这将使用集群进行分类,这可以独立于现有类对新类进行分类。
增量学习的其他观点
另一些人则将增量学习视为总体上改进已部署模型的能力。米特拉说:“增量学习更像是采用一个经过训练的模型,然后向其中添加更多的信息,使它变得更好。”“这个想法是,你已经在云中训练了一个网络,但你只是在这里和那里增加一点点。”
训练算法决定在哪里完成。有简化的反向传播技术和统计技术,可以修改边缘的训练。
Pandey表示:“如果你在做全面的后支撑,那么大部分都是在云端完成的。”“如果你在做统计或归纳推理,你可以在边缘上做。”
然而,增量学习可能会出错。“我们需要非常小心地防止灾难性的遗忘,”康斯坦丁诺斯·桑托波洛斯(Constantinos Xanthopoulos)说效果显著.“当隐藏层的神经元被重新用于新的学习时,就会出现这种现象,从而‘忘记’他们之前所学的东西。”
他提供了一个现实世界的类比来说明这一点。“假设我们在训练一只狗。在某种程度上,狗通过将我们发出的声音与想要的动作联系起来来学习。后来,我们想训练狗做其他动作,但新命令的声音和第一个命令非常相似。经过一段时间的努力,很可能是让狗很困惑,我们成功地训练狗执行新的动作,但我们所做的是将相同的联想用于新命令,从而忘记了之前的命令。”
这是可以避免的,但有一个陷阱。他说:“一种技术是基于演练的方法。”在预演中,之前的训练实例和新实例一起被重复,以帮助模型找到新旧学习的广义解。然而,这种方法与增量学习的前提相冲突,增量学习的前提是,在新的训练过程中,没有原始训练数据的记录可以重复使用。”
在某些情况下,来自许多不同部署的改进被发送回云中的“母模型”,以改进更新中重新分发的整体模型。这是一个例子联合学习在那里,分散的点进行训练,而不是在一个地方全部进行。
Mitra说:“联合学习是把一些元信息扔到上游。“谷歌和Facebook是联合学习的最大支持者。这是一个极其复杂的问题。”
渐进式学习仍在寻找立足点。“尽管这是近年来ML研究中最深入的主题之一,但我们还没有开始看到在半导体空间的现实应用,”Xanthopolous补充说,在提到半导体测试行业。
强化学习
强化学习是完全不同的。它是在训练数据很少或不存在的情况下训练新模型的一种方法。潘迪说:“一些应用程序可能无法获得数据和地面真相。”
它在野外学习,基于奖励或惩罚的反馈,取决于特定推断的结果。答对了吗?加强这一方法。错了吗?改变的方法。
“强化学习有一个代理的概念,就像一个身体在说,‘我做得有多好?“密特拉解释道。“这通常发生在云端,因为强化学习是一件非常沉重的事情。”
强化学习与前两种学习有明显的区别。首先,与其他两个不同的是,强化学习是在部署的应用程序运行时进行的。这不是一个离线操作。
其次,它可以产生意想不到的结果。典型的人工神经网络对可识别的内容建立了限制。有人可能会认为这是在说,如果被识别的东西具有在学习特性集之外的特性,那么模型将无法处理它。这些特性必须经过明确的设计。
而强化学习则没有这样的限制。模型将在强化机制所发送的任何地方运行,并且它可以采用开发人员可能从未考虑过的方法。
潘迪说:“通过增量学习,你的任务是有限的,而你的反应时间是相当快的。”“有了强化学习,你就能去以前没去过的地方。”
图2:迁移学习、增量学习和强化学习之间的差异总结。资料来源:Bryon Moyer/半导体万博体育matext网页工程
混合和匹配
有些公司可能会结合使用这些技术。例如,MicroAI结合了无监督、简单强化和增量学习。它的应用程序处理监控数据流,以查找安全或预防性维护等应用程序的异常情况。
为了创建模型,MicroAI从无监督学习开始,它根据提供的模式对类似的特性集进行聚类。这种强化来自于回路中的一个人,他将标记并强化某些模式,以供未来识别。
MicroAI解决方案工程主管Chris Catterton解释说:“例如,主题专家会说,‘这是皮带故障’,然后将其应用到数据签名上。”“下一次当它看到类似的数据签名时,它会有一定程度的信心地说,这是皮带故障,这将得到加强,并反馈给模型。”
该公司还通过一组功能工程模块,将迁移学习作为起点。这有助于设置新模型的结构,而训练则设置参数。
“我们从未标记数据、特性工程和数据模式开始,”Catterton说。“一旦我们做好准备,我们将开始(在一段时间内)对流数据进行培训,这取决于资产的正常周期。”
被监控的设备可能会随着年龄的增长而漂移,这正是增量学习的需要。即使机器的行为与最初的训练不一样,这可能并不意味着有可报告的问题。相反,它需要定期进行再培训,或者基于某种标准,使用相同的无监督学习和强化标签的组合。
更新的挑战
在某些应用程序中,更新为增量学习带来了挑战。让我们假设一个汽车制造商实现了机器学习,让车辆识别和解释各种道路标志。这种型号的车每一辆都有。但是,如果原始设备制造商能够改进波士顿的道路和标识的出现方式呢?波士顿的道路紧凑、弯曲、令人困惑,而奥斯汀的道路空间更大、网格更大。
撇开可能发生的细节不谈,这意味着随着汽车的行驶,模型会慢慢改变以适应当地环境。就其局限性而言,每辆车中的每种车型——所有车型一开始都是一样的——慢慢地从其他车型中消失,而每种车型现在都是定制的。
现在,让我们假设原始设备制造商一直致力于原始模型,并显著改进了功能的识别方式。现在它想对它的舰队进行一次空中升级。如果它替换了每辆车的模型,那么它实际上是在做一次“工厂重置”,抛弃了每辆车都做过的个人学习——灾难性的遗忘。
在许多情况下,这似乎不是一个被考虑过的场景。对于一些体积较小的应用程序,如检查,模型往往局限于少数机器,任何改进都可能发送到所有机器,这不会产生问题。
但以汽车为例,局部改进的车型将会被全球改进的车型取代,这似乎并没有现成的解决方案。
理想情况下,人们可以想象层之间的标准接口,这样就可以将模型分成两部分,更新第一部分以改进特征识别,同时保留定制的最后一层。不存在这样的标准。
还有一种“集成学习”的概念,通过这种方法可以将不同的模型片段组合在一起。潘迪说:“通过集成学习,你可以有一个部分模型,然后你可以结合两个世界的优点。”
这方面的机制在计算能力范围内,因此这一概念可能允许汽车进行更新,并将其与旧车型相结合。
也可以在云中进行组合,尽管这会带来物流问题,因为在本例中,OEM必须分别上传每辆汽车的改进车型,将其与更新组合,然后将合并后的更新分别下载到每辆汽车上。这是大量的上传和下载,可能会很麻烦。
图3:使用集成学习将旧的定制模型与一般更新相结合的两种方法的比较。在左边,只要有计算能力,就可以在车内完成组合。在右边,这种组合发生在云上。但这意味着必须首先上传旧模型,然后将其组合起来生成新模型,然后再下载新模型。这需要对每一辆车单独进行。资料来源:Bryon Moyer/半导体万博体育matext网页工程
还有一种可能的更新方法,即记录为增量学习所做的局部改进。当一个新的模型更新到来时,它没有这些改进,然后您“重放”记录在新模型上的先前的改进。
Mitra说:“例如,如果我在对语音样本进行增量建模时存储了这些步骤,我就可以回去用更新的模型重做相同的步骤,并进行相应的调整。”
更新一些增量训练的模型可能没有意义。Harsha说:“一个更新并不重要的应用程序就是预测性维护。”“假设你有一个工厂车间,不同的设备有不同的故障特征。每一种模型都将根据设备进行独一无二的调整。”
这可以应用于许多不同的应用,如半导体检测。“一旦我们认为我们有了一个足够有信心的模型,我们只有在感觉有检查漏点或设计有很大偏差时才会更新,”x射线检测产品经理Nabil Dawahre说力量.
修改模型将是一件事
尽管还有一些细节有待解决,但迁移、增量和强化学习已经开始了。迁移学习在新算法的开发中经常被引用。它在有限的预算范围内带来了复杂的建模,并极大地加快了上市时间。
在将类添加到分类器的背景下的增量学习今天可能还没有被广泛应用,但随着它变得越来越可用,它可能会受到迁移学习的青睐。
增量学习,即简单的持续改进,肯定已经在发生了。在某些情况下,这可能是一种进行更新的情况,而不是被认为是一种特殊的学习。但可以在边缘进行再培训的方法的可用性可能会增加它的普及。
与使用ann和snn的视觉应用相比,强化学习的应用空间更有限。它们是为它们需要做的工作而专门构建的,但由于构建它们所需的专业知识,现在不那么常见了。
然而,无论如何,越来越少的模型将保持不变。问题只是他们什么时候改变,在哪里改变,以及他们是作为一个群体改变还是作为一个个体改变。
相关的
未来是否有更好的机器训练方法?
为什么无监督、强化和Hebbian方法对某些事情有好处,而对其他事情没有好处。
优化机器学习的新方法
在ML系统中提高性能和降低功耗的不同方法。
为什么TinyML如此重要
令人惊讶的是,并不是所有事情都需要大量的计算能力来做出重要的决定。
脉冲神经网络在时间上放置数据
我们能多有效地模拟神经元和突触的生物突刺过程? CMOS是神经网络的一个很好的选择吗?
留话