基于社团划分的无监督图像分类方法
文献发布时间:2023-06-19 12:24:27
技术领域
本发明属于图像分类领域,尤其涉及一种基于社团划分的无监督图像分类方法。
背景技术
对于一个大型的无标签或只有部分标签的数据集上,手动标注要耗费大量的时间,也会出现少量错误。如果将数据集进行无监督分类,对后续批量标注或对现有标注检查有很大帮助。
目前,完全无监督的图像分类方法有基于数据集变换算法,聚类算法,以及自编码器等。数据集变换即对现有数据集构建新的表示方式,即降维和降噪,主要方法为PCA;基于聚类的算法主要包括基于K-means算法的无监督分类和基于信息不变性的无监督分类两种。
但是,现有的方法往往计算速度较慢,尤其在大规模数据集上,如自编码器训练,聚类算法运算需要大量时间;若聚类算法使用分治算法降低运算时间,其结果的聚合较为困难;此外,现有的方法准确率较低,如K-means算法在MNIST数据集上正确率在70%左右。
发明内容
发明目的:针对以上问题,本发明提出一种基于社团划分的无监督图像分类方法,基于现有的社团划分算法和人工智能算法,在无标签大型数据集上进行图像无监督分类,以便于批量标注数据和数据分布分析,在有标签数据集上实现数据分布分析和手动标注检验。本方法通过分治算法,提供了结果聚合的解决方案,解决了大规模数据集上运算慢的问题。
技术方案:为实现本发明的目的,本发明所采用的技术方案是:一种基于社团划分的无监督图像分类方法,包括以下步骤:
步骤1,将图像数据集中每张图像作为网络中的一个节点,使用规则图进行网络结构初始化;在规则图内,每个节点的度相等,即有相同数量的连边;
步骤2,使用SSIM的结构相似性检测来评价图像之间相似性,通过相似性评价计算两张图像即两个节点之间连边的权重;
步骤3,将网络中所有连边的权重排序,删除权重小于阈值的连边,得到新的网络;
步骤4,在得到新的网络后,使用社团发现算法中的louvain算法进行社团发现,将每张图像即每个节点归类到若干社团当中;
步骤5,将得到的社团按社团节点个数在总节点中占比划分为大社团与小社团;在小社团中再次按相似性进行聚合,得到若干个大社团;
步骤6,将最终得到的若干个大社团作为分类结果,每个社团表示具有一定相似性的图像集合,对各个分类结果分别进行标注,输出标签,得到标注结果。
进一步的,所述步骤2中连边的权重计算方法如下:
W
其中,W
进一步的,该方法还包括如下步骤:
通过最小最大归一化方法将相似性,即连边的权重,归一化至[0,1]区间,为社团发现算法提供归一化后的权重;
其中,W
进一步的,所述步骤4使用社团发现算法中的louvain算法进行社团发现,将每张图像即每个节点归类到若干社团当中,具体包括:
Step1,令每个节点自己属于一个社区,此时网络中节点数与社区数相等,计算当前的网络模块度Q;
Step2,令节点i和节点j属于一个社区,再计算当前的网络模块度Q,网络出现模块度增量,将节点i划分到使模块度增量最大的该节点所在社区;
Step3,将Step2划分出来的社区聚合为一个节点,重构整个网络,并重新计算当前的网络模块度Q;
Step4,判断网络模块度Q与上一轮迭代相比是否发生变化,如果变化,返回Step1,否则,停止迭代,得到社团划分结果。
进一步的,模块度计算方法如下:
其中,v和w是网络中任意两节点,当它们有连接时,A
有益效果:与现有技术相比,本发明的技术方案具有以下有益的技术效果:
本发明首次在分类任务中引入网络结构初始化的概念和社团划分算法的应用,并且提供大规模数据集上分批次运算的可行性方法。首先,本发明将图论引入无监督图像分类中,这与以聚类为目的的图神经网络相似;此外,本发明介绍了网络结构初始化的概念和社团划分算法的应用,这是本发明与图神经网络和现有算法最大的不同之处。
本发明完成了无标签数据集上图像的无监督分类,并发现了一些派系结构,这反映了数据集上数据的分布模式,可以对数据分布有一个粗略的了解;此外,本发明可以在无标签数据集上对联系紧密的派系进行统一的批量标注,节约了手动标注的时间。本发明可以在有标签或者有部分标签的数据集上进行标签的检测,从而发现潜在的异常标签,对大型数据集的标签检查提供了简便高效的方法。
附图说明
图1是本发明的算法流程图;
图2是本发明步骤1-1,2-1示意图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步的说明。
本发明首次在分类任务中引入图论和社团划分算法。在一个大型的无标签或者只有部分标签的图像数据集上,将每一张图像看成网络中的一个节点,构建出一个初始网络结构之后,用图像之间相似性作为边的权重,在删除低权重边之后,使用社团发现算法,将图像划分为若干社团,将划分得到的小型社团(community)进行聚合,可以发现数据的组织结构和分类结果,以此达到分类目的。
本发明所述的基于社团划分的无监督图像分类方法,流程如图1所示,步骤如下:
步骤1,将图像数据集中每张图像作为网络中的一个节点,如图2所示,使用规则图进行网络结构初始化;
初始化网络结构为后期处理提供一个网络的基本骨架,后续运算都在此骨架上进行;在规则图内,每个节点的度(degree)相等,即有相同数量的连边,即:
Degree(n
其中,n
步骤2,使用SSIM的结构相似性检测来评价图像之间相似性,通过相似性评价计算两个节点(即两张图像)之间连边的权重;权重计算方法如下:
W
SSIM(x,y)=l(x,y)
其中,W
SSIM从亮度(均值),对比度(方差)和结构三个层次比较图像失真,其中结构占主要影响因素;当α=β=γ=1且c
步骤3,将网络中所有连边的权重排序,删除权重小于阈值的连边,得到新的网络;这种方法即图的最小切割,通过移除联系最弱的边,将两个节点分开;这样不但简化了网络结构,降低时间复杂度,也让后续的社团划分算法表现更佳。
通过最小最大归一化方法将相似性(即连边的权重)归一化至[0,1]区间,为社团发现算法提供归一化后的权重;
其中,W
步骤4,在得到新的网络后,使用社团发现算法中的louvain算法进行社团发现,将每张图像即每个节点归类到若干社团当中;具体包括:
Step1,令每个节点自己属于一个社区,此时网络中节点数与社区数相等,计算当前的网络模块度Q;
Step2,令节点i和节点j属于一个社区,再计算当前的网络模块度Q,网络出现模块度增量,将节点i划分到使模块度增量最大的该节点所在社区;
Step3,将Step2划分出来的社区聚合为一个节点,重构整个网络,并重新计算当前的网络模块度Q;
Step4,判断网络模块度Q与上一轮迭代相比是否发生变化,如果变化,返回Step1,否则,停止迭代,得到社团划分结果。
所述模块度(Modularity)计算方法如下:
其中,v和w是网络中任意两节点,当它们有连接时,A
步骤5,将得到的社团按社团节点个数在总节点中占比划分为大社团与小社团;其中,每一个小社团(即派系clique)都代表着少量非常相似的图片,而大社团代表了大量较为相似的图片;在小社团中再次按相似性进行聚合,得到若干个大社团。
步骤6,将最终得到的若干个大社团作为分类结果,每个社团表示具有一定相似性的图像集合,对各个分类结果分别进行标注,输出标签,得到标注结果。
为了检验本发明方法的效果,在有标签的fashion-mnist数据集上进行测试,并在假设此数据集上标签全部正确的条件下,计算本发明分类的准确率。与此同时,在一个自制的小型无标签数据集上使用该方法进行无监督标注,以测试本发明的实用效果。该数据集包含2000张图像,具体数据分布尚且不明。
1.在有标签数据集上进行算法测试;
在本实施例中,取节点的度为N/2,此时,要计算权重的边数量为N
2.在自制的小型无标签数据集上进行批量标注;
在本实施例中,取节点的度为N/2,此时,要计算权重的边数量为N
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
- 基于社团划分的无监督图像分类方法
- 基于聚类的无监督细粒度图像分类模型训练方法及分类方法