一种神经网络权重矩阵拆分与组合的方法技术

技术编号:22364591 阅读:40 留言:0更新日期:2019-10-23 04:51
本发明专利技术公开了一种神经网络权重矩阵拆分与组合的方法。该方法用于具有one‑stage网络结构的目标检测中,在进行目标检测时,首先确定要检测的物体种类,通过收集图片数据进行训练,得到原始权重矩阵;原有N个类别,当其中某一类或多个类别不再需要需移除时,要进行神经网络权重矩阵的拆分,即将原始权重矩阵中的某一类或多个类别拆分提取出来;当其中某一类或多个类别需要更新或者需要添加新类别时,将原始权重矩阵中的某一类或多个类别提取出来进行单独训练,之后再通过权重矩阵组合添加合并进去。该方法能够实现目标检测模型的自由拆分与合并,节省训练时间,简化训练步骤,针对不同的尺度具有较高的自由度,具有一定推广价值。

A method of splitting and combining weight matrix of neural network

【技术实现步骤摘要】
一种神经网络权重矩阵拆分与组合的方法
本专利技术属于深度学习
,涉及一种神经网络权重矩阵拆分与组合的方法,尤其涉及一种图像目标检测中YOLO系列神经网络权重矩阵拆分与组合方法。
技术介绍
深度学习的概念源于人工神经网络的研究,是机器学习的分支,是一种以人工神经网络为架构,对数据进行表征学习的算法。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。其中,目标检测是与计算机视觉和图像处理有关的计算机技术,其涉及在数字图像和视频中检测特定类(例如人、建筑物或汽车)的语义对象的实例。目标检测在计算机视觉的许多领域都有应用,包括图像检索和视频监控。深度学习的核心就是卷积操作,它是用特定的卷积核(矩阵)来对整个输入图片(矩阵)通过对应元素相乘并求和来进行遍历。目的就是为了提取图像的抽象特征,一般来说网络结构越复杂和越深,它的效果会更好。一个完整的模型就是由很多卷积层与其它层堆叠而成。目标检测中的RCNN系列算法遵循2-stage的流程:首先找出一系列(预先设定好的)候选区域,而后对这些候选区域进行分类以及位置修正。YOLO则开启了1-stage的流派:直接用一个深度网络,回归出目标的位置和归类。YOLO(Youonlylookonce)是一个实时的目标检测系统,是一个使用卷积神经网络的目标检测框架,由大量的卷积层与其它层组合而成。它采用回归的方法进行目标框的检测以及分类;输入一张图片,马上可以得到图片中的物体类别与具体的坐标,它的检测速度很快,可以达到视频实时检测的需求。YOLO首先将图像分割成多个大小相同的网格,再对每个网格分别预测里面有物体的概率以及物体类别和坐标的信息,然后再去除掉重复以及多余的检测框,最后可以得到需要的结果。YOLO将物体检测作为回归问题求解,基于一个单独的端到端网络,完成从原始图像的输入到物体位置和类别的输出。它还是一种在工业界广泛使用的实时目标检测模型,以检测速度快闻名。基础YOLO检测器的速度能够达到45fps,更快的FastYOLO则能够达到惊人的155fps。采用YOLO实时目标检测系统的目标检测工程实施的一般过程是:1.确定要检测的物体种类,并搜集图片,以得到训练集,确定要使用的网络结构;2.使用在大型数据集上训练的预训练权重,或者完全从零开始训练自己的权重,后者比前者所花的时间更多。3.权重文件训练好之后就可以使用了。如果在使用中发现需要添加新的类别,这时需要在原有训练集中添加新的类别图片并且比例和原有类别保持一致;或者要移除一些不再需要的类别,这种情况下需要移除训练集中对应类别的图片。4.使用新的训练集重新训练,训练后得到一个新的权重并使用。在上述的场景中,一旦当有新的类别需要加入或者原有类别需要分离时,就需要重新整理训练集并训练,而这个过程会耗费较多的时间。第二种方法是针对新的类别再重新训练一个不同的神经网络权重矩阵,与第一个网络平等地单独部署上线,但这会浪费多余的资源。这些多余的时间和资源耗费显然不是必要的。
技术实现思路
本专利技术的目的,亦即本专利技术要解决的技术问题是:解决现有目标检测任务中,当更新所训练的模型时需要将整个网络重新训练,耗费时间和资源的不足之处,提供一种只需训练新添加的类别将其加入原有的模型之中或者删除以前不需要的类别来组合为新的模型的,神经网络权重矩阵拆分与组合的方法。为解决上述技术问题,本专利技术采用了以下技术方案:本专利技术一种神经网络权重矩阵拆分与组合的方法,该方法用于具有one-stage网络结构的目标检测中,在进行目标检测时,首先确定要检测的物体种类(N类),通过收集图片数据进行训练,得到一个可以用来进行目标检测的效果好的神经网络权重矩阵,即原始权重矩阵W1;原有N个类别,当其中某一类或者多个类别(J个类别)不再需要需移除时,要进行神经网络权重矩阵的拆分,即将原始权重矩阵中的某一类或者多个类别提取出来,亦即,将N类减少为N-1类或N-J类;当其中某一类或者多个类别(J个类别)需要更新或者需要添加新类别时,要进行神经网络权重矩阵的组合(即合并),亦即,将原始权重矩阵中的某一类或者多个类别提取出来进行单独训练之后,再通过权重矩阵组合添加合并进去。进一步地,进行神经网络权重矩阵的拆分与组合的方法如下:(1)神经网络权重矩阵的拆分拆分是指将包含多种检测类别的神经网络权重矩阵中的某一类或者多类单独提取出来,并保持原有类别的识别效果不变;拆分的方法是:将多余的一个类别或J个类别在原始权重矩阵W1的三个不同尺度层的最后一个卷积层即C1、C2、C3层的卷积核上的对应值直接移除,即将C1、C2、C3层的权重矩阵的第二个维度从n=(5+N)*3改为b=(N-1+5)*3或b=(N-J+5)*3,其它层的权重矩阵保持不变;即完成对W1的拆分修改,拆分修改后的W1称为W2。进行神经网络权重矩阵拆分的具体方法如下:a、将原始权重矩阵W1的三个不同尺度层的最后一个卷积层取出,分别为C1、C2、C3层,得到三个维度分别为m*n的权重矩阵,m为上一层通道数,n为本层通道数;原始权重矩阵W1有N类,则n=(5+N)*3;b、在n中提取出相应的要单独提取出来的一类或者多个类别对应的维度,即提取出n列中的对应列,记为a;当只提取出一类时,a为(5+1)*3=18;当提取出两个类别时,a为(5+2)*3=21;当提取出J个类别时,a为(5+J)*3;c、将提取出来的一类或者多个类别的新的维度组成一个m*a的权重矩阵,将提取之后剩下的N-1或N-J个类别的维度组成一个新的权重矩阵,替换掉原本的卷积层;原始权重矩阵的第二个维度是n=(5+N)*3,提取一类之后,提取出的那一类的权重矩阵的第二个维度是a=(5+1)*3=18,提取之后剩下的N-1类的权重矩阵的第二个维度是b=(N-1+5)*3;提取J个类别之后,提取出的那J个类别的权重矩阵的第二个维度是a=(5+J)*3,提取之后剩下的N-J个类别的权重矩阵的第二个维度是b=(N-J+5)*3;d、用相同的方法处理卷积层的偏置矩阵;e、得到拆分后的新权重矩阵W2。(2)对取出的权重矩阵或要添加的新类别的权重矩阵W3单独进行训练需要更新时,从原神经网络权重矩阵W1中提取出其中的某一类或者多个类别的权重矩阵,对取出的权重矩阵进行单独训练之后再添加进去;需要添加新类别时,从原神经网络权重矩阵W1中任意提取出其中的某一类或者多个类别的权重矩阵,作为模板,进行单独训练之后再添加进去;(添加新类别时,这一类或者多个类别可以任取,相当于只是提取一个模板出来进行单独训练);使用新类别的数据集只对上面提取出来的C1、C2、C3三个卷积层进行单独训练,这样就得到新类别的神经网络权重矩阵(只有三个卷积层被更新为新类别的参数)。具体方法如下:①将W1复制得到W3,使用W3作为预训练权重矩阵进行新类别的训练;并且,在训练时,停止除C1、C2、C3卷积层以外其它层参数的更新;也就是,只对三个输出卷积层即C1、C2、C3层进行训练。②训练后的W3中C1、C2、C3卷积层所对应的新的权重参数,就是识别新类别所需的信息,记为D1、D2、D3。提取出1个类别时,将W1复制得到W3,将W3的C1、C2、C3卷积层修改为单类别的形式。本文档来自技高网
...

【技术保护点】
1.一种神经网络权重矩阵拆分与组合的方法,其特征在于,该方法用于具有one‑stage网络结构的目标检测中,在进行目标检测时,首先确定要检测的物体种类,通过收集图片数据进行训练,得到一个可以用来进行目标检测的效果好的神经网络权重矩阵,即原始权重矩阵W1;原有N个类别,当其中某一类或者多个类别不再需要需移除时,要进行神经网络权重矩阵拆分,即将原始权重矩阵中的某一类或者多个类别提取出来,并保持原有类别的识别效果不变;当其中某一类或者多个类别需要更新或者需要添加新类别时,要进行神经网络权重矩阵的组合即合并,亦即,将原始权重矩阵中的某一类或者多个类别提取出来进行单独训练之后,再通过权重矩阵组合添加合并进去。

【技术特征摘要】
1.一种神经网络权重矩阵拆分与组合的方法,其特征在于,该方法用于具有one-stage网络结构的目标检测中,在进行目标检测时,首先确定要检测的物体种类,通过收集图片数据进行训练,得到一个可以用来进行目标检测的效果好的神经网络权重矩阵,即原始权重矩阵W1;原有N个类别,当其中某一类或者多个类别不再需要需移除时,要进行神经网络权重矩阵拆分,即将原始权重矩阵中的某一类或者多个类别提取出来,并保持原有类别的识别效果不变;当其中某一类或者多个类别需要更新或者需要添加新类别时,要进行神经网络权重矩阵的组合即合并,亦即,将原始权重矩阵中的某一类或者多个类别提取出来进行单独训练之后,再通过权重矩阵组合添加合并进去。2.如权利要求1所述的神经网络权重矩阵拆分与组合的方法,其特征在于,进行神经网络权重矩阵拆分时,将包含多种检测类别的神经网络权重矩阵中的某一类或者多类单独提取出来,并保持原有类别的识别效果不变;拆分的方法是:将多余的一个类别或J个类别在原始权重矩阵W1的三个不同尺度层的最后一个卷积层即C1、C2、C3层的卷积核上的对应值直接移除,即将C1、C2、C3层的权重矩阵的第二个维度从n=(5+N)*3改为b=(N-1+5)*3或b=(N-J+5)*3,其它层的权重矩阵保持不变;即完成对W1的修改,修改后的W1称为W2。3.如权利要求2所述的神经网络权重矩阵拆分与组合的方法,其特征在于,进行神经网络权重矩阵拆分的具体方法如下:a、将原始权重矩阵W1的三个不同尺度层的最后一个卷积层取出,分别为C1、C2、C3层,得到三个维度分别为m*n的权重矩阵,m为上一层通道数,n为本层通道数;原始权重矩阵W1有N类,则n=(5+N)*3;b、在n中提取出相应的要单独提取出来的一类或者多个类别对应的维度,即提取出n列中的对应列,记为a;当只提取出一类时,a为(5+1)*3=18;当提取出J个类别时,a为(5+J)*3;c、将提取出来的一类或者多个类别的新的维度组成一个m*a的权重矩阵,将提取之后剩下的N-1或N-J个类别的维度组成一个新的权重矩阵,替换掉原本的卷积层;原始权重矩阵的第二个维度是n=(5+N)*3,提取一类之后,提取出的那一类的权重矩阵的第二个维度是a=(5+1)*3=18,提取之后剩下的N-1类的权重矩阵的第二个维度是b=(N-1+5)*3;提取J个类别之后,提取出的那J个类别的权重矩阵的第二个维度是a=(5+J)*3,提取之后剩下的N-J个类别的权重矩阵的第二个维度是b=(N-J+5)*3;d、用相同的方法处理卷积层的偏置矩阵;e、得到拆分后的新权重矩阵W2。4.如权利要求1所述的神经网络权重矩阵拆分与组合的方法,其特征在于,对取出的或要添加的新类别的权重矩阵W3单独进行训练;需要更新时,从原神经网络权重矩阵W1中提取出其中的某一类或者多个类别的权重矩阵,对取出的权重矩阵进行单独训练之后再添加进去;需要添加新类别时,从原神经网络权重矩阵...

【专利技术属性】
技术研发人员:邓春华刘子威林云汉朱子奇丁胜
申请(专利权)人:武汉科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1