一种适于多任务迭代学习记忆的遥感图像分类方法与流程

文档序号:22916703发布日期:2020-11-13 15:58阅读:230来源:国知局
一种适于多任务迭代学习记忆的遥感图像分类方法与流程

本发明涉及遥感图像处理与识别技术领域,尤其涉及一种适于多任务迭代学习记忆的遥感图像分类方法。



背景技术:

在当前大数据和人工智能快速发展的时代,在面临不断更新迭代的海量数据时,深度学习模型也需要不断的进行学习和更新,不断的调整模型以满足当前人们的需求。然而,现有的深度学习模型一旦在特定的任务上训练完成后,该模型就只能用于该项任务的预测,一旦模型继续学习新的任务,就会在之前已经学习过的任务上出现灾难性遗忘的现象,即模型无法保持在旧任务上的性能。而每次都将所有的数据混合在一起重新对模型进行训练的方式不仅浪费了存储空间,而且也将消耗大量的时间来训练模型,大大降低了深度学习算法的实用化和商业化的可能性。因此,灾难性遗忘问题严重影响了深度学习模型在持续学习多个任务时的性能。

为了减轻深度学习模型中存在的灾难性遗忘问题,过去的一些研究主要可以分为三大类:1)基于正则化的连续学习方法;2)基于结构化的连续学习方法;3)基于预排练的连续学习方法。其中,基于正则化的连续学习方法包括弹性权重巩固ewc、记忆感知突触mas等方法,通过约束对旧任务重要参数的更新来减轻模型对旧任务的灾难性遗忘,然而,随着学习的新任务数量的增加,重要参数的累积误差增加,模型无法找到满足所有任务的公共解空间,因而造成模型克服灾难性遗忘的能力下降;基于结构化的连续学习方法例如cwr,通过冻结一部分神经元结构来保护模型在旧任务上的性能,但是这种方法丧失了学习新任务时对网络结构调整的灵活性;基于预排练的连续学习方法认为,不定期的让模型见到一些旧任务的样本有助于唤醒模型对旧任务的性能,例如在icarl方法中,使用了一个范例集来存储旧任务的典型的部分样本数据。基于预排练的方法不仅能够有效地控制灾难性遗忘,而且还能提高模型在旧任务上的准确性,但该方法需要存储旧任务的历史数据。当前克服灾难性遗忘的方法存在以上弊端,因此,需要一种更加精确、实用、可靠、有效的方法来解决深度学习模型中灾难性遗忘的问题,进而适于多任务迭代学习记忆的遥感图像分类方法。



技术实现要素:

有鉴于此,本发明的目的在于提供一种适于多任务迭代学习记忆的遥感图像分类方法,所述方法基于参数敏感性与结构化相结合,能够有效的克服深度学习模型中存在的灾难性遗忘的问题,适于解决多任务迭代学习记忆的遥感图像分类问题。

本发明的目的是这样实现的,一种适于多任务迭代学习记忆的遥感图像分类方法,包括以下步骤:

步骤1,初始化模型分类器之前的参数、分类器的固定权重以及分类器的临时权重,使用随机梯度下降训练第一个任务,学习得到,将分类器的临时权重赋值给固定权重,利用预测性能;

步骤2,利用第一个任务的训练数据计算模型中每个参数的敏感性,得到参数的敏感性矩阵

步骤3,当模型学习新的任务时,将参数的敏感性矩阵作为一个正则项添加到模型原有的损失函数中,然后使用修改后的损失函数对模型进行训练,学习得到分类器之前的参数

步骤4,在分类器中拓展新的神经元用于学习新任务中的新的类,重新初始化分类器的临时权重,使用随机梯度下降训练模型,学习得到分类器的临时权重,将分类器的临时权重赋值给固定权重,利用预测性能;

步骤5,利用新任务的训练数据计算模型中每个参数的敏感性矩阵,将当前任务的敏感性矩阵与之前任务的敏感性矩阵进行累加并取均值,作为下一个任务训练的损失函数中添加的参数的敏感性矩阵;

步骤6,每当进来一个新任务对其进行训练时,重复步骤3、步骤4和步骤5即可;

步骤7,使用训练好的模型分类器对遥感图像进行分类。

具体地,步骤1中所述的将分类器的临时权重赋值给固定权重,包括以下步骤:

对于任务中的每个类j,按照下列公式将分类器的临时权重赋值给固定权重

其中,为临时权重的所有类的均值。

具体地,步骤2中所述的计算模型中每个参数的敏感性,得到参数的敏感性矩阵,包括以下步骤:

对于给定的样本,模型的输出记为,其中为模型的参数,将参数的微小改变量对模型最终的输出的改变进行二阶泰勒展开:

其中,为输出函数在样本上对参数的梯度,h为hessian矩阵,代表输出函数在样本上参数的二阶偏导数;

利用对角fisher信息矩阵来近似的逼近hessian矩阵,对于多分类问题,使用输出函数的l2范数的平方对参数的梯度来代替计算参数敏感性,通过一次反向传播就可以计算出参数的敏感性矩阵,公式如下:

按照下列公式计算模型中的每个参数的敏感性矩阵

其中,代表网络模型中每个参数对于该任务的敏感性矩阵,表示第k个样本点,n表示样本总数。

具体地,步骤3中所述的当模型学习新的任务时,将参数的敏感性矩阵作为一个正则项添加到模型原有的损失函数中,然后使用修改后的损失函数对模型进行训练,学习得到分类器之前的参数,包括以下步骤:

每当新进来一个任务时,按照下列公式对在其任务的原有损失函数上添加一个正则项来限制分类器之前的参数的更新:

其中,代表修改之后模型总的损失函数,代表模型在当前任务上的损失函数,代表正则项的超参数,代表当前任务的分类器之前的参数,代表之前任务的分类器之前的参数。

更进一步地,步骤4中所述的将分类器的临时权重tw赋值给固定权重cw,利用和cw预测性能,包括以下步骤:

对于任务中的每个类j,按照下列公式将分类器的临时权重tw赋值给固定权重cw:

其中,avg(tw)为临时权重tw的所有类的均值。

具体地,步骤5中所述的利用新任务的训练数据计算模型中每个参数的敏感性矩阵,将当前任务的敏感性矩阵与之前任务的敏感性矩阵进行累加并取均值,作为下一个任务训练的损失函数中添加的参数的敏感性矩阵,包括以下步骤:

按照下列公式计算累加之后取均值的参数的敏感性矩阵

其中,为当前任务的敏感性矩阵,为之前任务的敏感性矩阵,task_num为任务数量。

与现有方法相比,本发明的优点在于:(1)本发明提出了一种新的将参数敏感性与冻结旧任务神经元结构相结合的方法,该方法可以有效减轻深度学习模型中灾难性遗忘的问题;(2)本发明提出的计算参数敏感性的方法可以与场景无关的,可以在任意场景中使用本发明提出的方法来计算模型中每个参数的重要程度;(3)本发明提出的方法在计算参数敏感性时不需要标签,使得该方法能够更适用于真实分类场景中。

附图说明

图1示出了本发明实施例的流程示意图;

图2示出了本发明实施例选用的clrs数据集每类场景部分影像实施例示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1示出了本发明实施例的流程示意图,一种适于多任务迭代学习记忆的遥感图像分类方法,包括以下步骤:

步骤1,初始化模型分类器之前的参数、分类器的固定权重cw=0以及分类器的临时权重tw=0,使用随机梯度下降训练第一个任务,学习得到和tw,将分类器的临时权重tw赋值给固定权重cw,利用和cw预测性能;

对于任务中的每个类j,按照下列公式将分类器的临时权重tw赋值给固定权重cw:

其中,avg(tw)为临时权重tw的所有类的均值。

步骤2,利用第一个任务的训练数据计算模型中每个参数的敏感性,得到参数的敏感性矩阵

对于给定的样本,模型的输出记为,其中为模型的参数,将参数的微小改变量对模型最终的输出的改变进行二阶泰勒展开:

其中,为输出函数在样本上对参数的梯度,h为hessian矩阵,代表输出函数在样本上参数的二阶偏导数;

hessian矩阵的计算复杂度很高,因此,利用对角fisher信息矩阵来近似的逼近hessian矩阵,对于多分类问题,使用输出函数的l2范数的平方对参数的梯度来代替计算参数敏感性,只需要通过一次反向传播就可以计算出参数的敏感性矩阵。公式如下:

按照下列公式计算模型中的每个参数的敏感性矩阵

其中,代表网络模型中每个参数对于该任务的敏感性矩阵,表示第k个样本点,n表示样本总数。

步骤3,当模型学习新的任务时,将参数的敏感性矩阵作为一个正则项添加到模型原有的损失函数中,然后使用修改后的损失函数对模型进行训练,学习得到分类器之前的参数

每当新进来一个任务时,按照下列公式对在其任务的原有损失函数上添加一个正则项来限制分类器之前的参数的更新:

其中,代表修改之后模型总的损失函数,代表模型在当前任务上的损失函数,代表正则项的超参数,代表当前任务的分类器之前的参数,代表之前任务的分类器之前的参数;

步骤4,在分类器中拓展新的神经元用于学习新任务中的新的类,重新初始化分类器的临时权重tw=0,使用随机梯度下降训练模型,学习得到分类器的临时权重tw,将分类器的临时权重tw赋值给固定权重cw,利用和cw预测性能;

对于任务中的每个类j,按照下列公式将分类器的临时权重tw赋值给固定权重cw:

其中,avg(tw)为临时权重tw的所有类的均值。

步骤5,利用新任务的训练数据计算模型中每个参数的敏感性矩阵,将当前任务的敏感性矩阵与之前任务的敏感性矩阵进行累加并取均值,作为下一个任务训练的损失函数中添加的参数的敏感性矩阵;

按照下列公式计算累加之后取均值的参数的敏感性矩阵

其中,为当前任务的敏感性矩阵,为之前任务的敏感性矩阵,task_num为任务数量。

步骤6,每当进来一个新任务对其进行训练时,重复步骤3、步骤4和步骤5即可。

步骤7,使用训练好的模型分类器对遥感图像进行分类。

实验主要从在单增量应用场景中,深度学习模型学习多个任务后的精度表现来对本发明提出的方法的有效性进行评价。本发明的实验主要是用来证明本发明提出的方法能够有效的减轻深度学习模型中的灾难性遗忘问题。

基于clrs数据集,如图2,在clrs数据集提供的新的类场景(nc场景)中让模型依次学习五个任务。使用19层的resnet模型作为基础的场景分类网络,使用了随机翻转的数据增强方式以及使用了dropout来防止模型出现过拟合,dropout值设置为0.5,所有的参数均使用xavier初始化,利用随机梯度下降法来对网络进行优化,学习率大小设置为0.001,batchsize大小设置为64,利用了单增量任务场景中的分类精度(accuracy)指标来评估不同方法的性能。

结果表明,在nc场景中,由于没有任何控制遗忘的措施,sgd方法的性能是最差的,旧任务的场景类被模型几乎完全遗忘。三种正则化的方法ewc、mas以及lwf在该场景中的性能表现不佳;相比正则化的方法,结构化的方法cwr在克服灾难性遗忘方面的性能有了很大提升,然而,由于模型在学习完第一个任务后,分类器之前的所有层的参数均被冻结,所以cwr方法也降低了灵活学习新任务的能力。与其他方法相比,本发明提出的方法在性能上取得了最佳。此外,与cwr相比,本文提出的方法可以灵活的调整分类器之前的参数。通过与其他连续学习方法的对比,本发明提出的方法在nc场景上可以很好的克服灾难性遗忘。此外,在学习完五个任务后,本发明提出的方法的精度曲线仍然呈上升趋势,未达到饱和,这表明,本发明提出的方法仍然能够较好的学习更长序列的任务。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1