聚类方法和装置转让专利

申请号 : CN201710457622.0

文献号 : CN107330452B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王虎

申请人 : 悦享趋势科技(北京)有限责任公司

摘要 :

本发明公开了一种聚类方法和装置。其中,该方法包括:获取神经网络模型;将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少一个中间层节点的激活程度;根据每个中间层节点的激活程度在至少一个中间层节点中选择目标数据的聚类节点;根据聚类节点确定目标数据的聚类结果。本发明解决了相关技术中结合神经网络模型的聚类方法使用复杂度较高的技术问题。

权利要求 :

1.一种聚类方法,其特征在于,包括:获取神经网络模型;

将目标数据输入所述神经网络模型,确定所述目标数据对所述神经网络模型中至少一个中间层节点的激活程度;

根据每个中间层节点的激活程度在所述至少一个中间层节点中选择所述目标数据的聚类节点;

根据所述聚类节点确定所述目标数据的聚类结果;

其中,获取神经网络模型包括:接收输入的所述神经网络模型的结构参数以确定所述神经网络模型的结构;通过训练样本集对结构确定的神经网络模型进行训练,其中,所述训练样本集中的每个样本包括样本数据和样本类别标签,所述神经网络模型的训练目标为在输入所述样本数据之后的输出与所述样本数据对应的样本类别标签的差距最小;所述样本数据为动物图像,所述样本类别标签为动物的种类,所述中间层节点为动物特征;

根据每个中间层节点的激活程度在所述至少一个中间层节点中选择所述目标数据的聚类节点包括:

获取输入的所述聚类节点的数量K;

根据所述每个中间层节点的激活程度在所述至少一个中间层节点中选择K个节点作为所述聚类节点;

根据所述每个中间层节点的激活程度在所述至少一个中间层节点中选择K个节点作为所述聚类节点包括:

将所述神经网络模型在接收输入的所述目标数据之后每个中间层节点对应的激励函数的输出值作为所述激活程度;

根据所述至少一个中间层节点的激活程度分别计算每个中间层节点的排序参数值;

按照每个中间层节点的排序参数值对所述至少一个中间层节点进行排序,选取前K个节点作为所述聚类节点;

在对多个目标数据进行聚类并得到聚类结果之后,所述方法还包括:通过可视化方式显示所述多个目标数据的聚类分布图,其中,在所述样本数据包括多维数据的情况下,所述可视化方式包括使用局部线性嵌入法进行数据降维,并用散点图进行显示。

2.根据权利要求1所述的方法,其特征在于,根据所述聚类节点确定所述目标数据的聚类结果包括:

根据选择出的K个聚类节点的组合将所述目标数据划分到所述组合对应的类别。

3.一种聚类装置,其特征在于,包括:获取单元,用于获取神经网络模型;

输入单元,用于将目标数据输入所述神经网络模型,确定所述目标数据对所述神经网络模型中至少一个中间层节点的激活程度;

选择单元,用于根据每个中间层节点的激活程度在所述至少一个中间层节点中选择所述目标数据的聚类节点;

确定单元,用于根据所述聚类节点确定所述目标数据的聚类结果;

其中,所述获取单元包括:接收模块,用于接收输入的所述神经网络模型的结构参数以确定所述神经网络模型的结构;

训练模块,用于通过训练样本集对结构确定的神经网络模型进行训练,其中,所述训练样本集中的每个样本包括样本数据和样本类别标签,所述神经网络模型的训练目标为在输入所述样本数据之后的输出与所述样本数据对应的样本类别标签的差距最小;所述样本数据为动物图像,所述样本类别标签为动物的种类,所述中间层节点为动物特征;

所述选择单元包括:

获取模块,用于获取输入的所述聚类节点的数量K;

选择模块,用于根据所述每个中间层节点的激活程度在所述至少一个中间层节点中选择K个节点作为所述聚类节点;

所述选择模块包括:

逻辑模块,用于将所述神经网络模型在接收输入的所述目标数据之后每个中间层节点对应的激励函数的输出值作为所述激活程度;

计算模块,用于根据所述至少一个中间层节点的激活程度分别计算每个中间层节点的排序参数值;

选择子模块,用于按照每个中间层节点的排序参数值对所述至少一个中间层节点进行排序,选取前K个节点作为所述聚类节点;

所述装置还包括:

显示单元,用于在对多个目标数据进行聚类并得到聚类结果之后,通过可视化方式显示所述多个目标数据的聚类分布图,其中,在所述样本数据包括多维数据的情况下,所述可视化方式包括使用局部线性嵌入法进行数据降维,并用散点图进行显示。

4.根据权利要求3所述的装置,其特征在于,所述确定单元包括:分类模块,用于根据选择出的K个聚类节点的组合将所述目标数据划分到所述组合对应的类别。

5.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至2任意一项所述的聚类方法。

6.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至2任意一项所述的聚类方法。

说明书 :

聚类方法和装置

技术领域

[0001] 本发明涉及聚类领域,具体而言,涉及一种聚类方法和装置。

背景技术

[0002] 现有的数据聚类方法,例如K均值聚类(K‑means)方法和自组织映射(Self Organizing Maps)聚类方法,需要用户给定数据样本之间的相似度或者相似度计算方法。
上述的聚类方法需要用户懂得如何选择或设计相似度或相似度计算方法,增加了数据聚类
方法的使用难度,进一步地,当用户选定或设计的相似度或者相似度计算方法不恰当时,聚
类方法所能实现的聚类效果可能不能满足用户的需求。例如,在对图像数据进行聚类分析
时,如果使用欧式距离计算图像之间的相似度,则不能反映图像内容的平移、尺度等变化,
从而导致聚类分析失败。再如,在对脉搏波时序数据进行聚类分析时,如果使用动态时间规
整(DTW)法计算脉搏波时序数据片段之间的相似度,则可能丢失脉搏波信号中的重搏波相
对位置平移信息,导致聚类结果与用户预期效果不一致。
[0003] 在现有技术中,已经具有采用神经网络技术与聚类结合的技术对数据进行聚类的方法,例如,申请号为201310530626.9、专利名称为一种基于深度学习的聚类方法的专利,
提供了一种结合神经网络模型的聚类方法,具体的技术方案为在神经网络模型中指定特定
的中间层节点作为用于聚类的特征层,并且,还需要对神经网络模型的目标函数进行修改,
加入聚类的类内约束函数,这种方式需要预先确定用于聚类的中间层节点是哪些节点,增
加了使用该方法的人工部分的复杂度,并且修改了神经网络模型的目标函数,从而改变了
神经网络原来的行为和表现。现有技术中还有一些其他的改进的聚类方法,例如,需要在神
经网络模型的节点中增加离散的节点,根据离散节点的状态进行聚类等等。在上述的现有
技术中的技术方案由于对神经网络模型具有一定的限制条件,因此限定了聚类方法的使用
范围。
[0004] 针对相关技术中结合神经网络模型的聚类方法使用复杂度较高的技术问题,目前尚未提出有效的解决方案。

发明内容

[0005] 本发明实施例提供了一种聚类方法和装置,以至少解决相关技术中结合神经网络模型的聚类方法使用复杂度较高的技术问题。
[0006] 根据本发明实施例的一个方面,提供了一种聚类方法,该方法包括:获取神经网络模型;将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少一个中间层节
点的激活程度;根据每个中间层节点的激活程度在至少一个中间层节点中选择目标数据的
聚类节点;根据聚类节点确定目标数据的聚类结果。
[0007] 进一步地,根据每个中间层节点的激活程度在至少一个中间层节点中选择目标数据的聚类节点包括:获取输入的聚类节点的数量K;根据每个中间层节点的激活程度在至少
一个中间层节点中选择K个节点作为聚类节点。
[0008] 进一步地,根据每个中间层节点的激活程度在至少一个中间层节点中选择K个节点作为聚类节点包括:将神经网络模型在接收输入的目标数据之后每个中间层节点对应的
激励函数的输出值作为激活程度;根据至少一个中间层节点的激活程度分别计算每个中间
层节点的排序参数值;按照每个中间层节点的排序参数值对至少一个中间层节点进行排
序,选取前K个节点作为聚类节点。
[0009] 进一步地,根据聚类节点确定目标数据的聚类结果包括:根据选择出的K个聚类节点的组合将目标数据划分到组合对应的类别。
[0010] 进一步地,获取神经网络模型包括:接收输入的神经网络模型的结构参数以确定神经网络模型的结构;通过训练样本集对结构确定的神经网络模型进行训练,其中,训练样
本集中的每个样本包括样本数据和样本类别标签,神经网络模型的训练目标为在输入样本
数据之后的输出与样本数据对应的样本类别标签的差距最小。
[0011] 进一步地,在对多个目标数据进行聚类并得到聚类结果之后,该方法还包括:通过可视化方式显示多个目标数据的聚类分布图。
[0012] 根据本发明实施例的另一方面,还提供了一种聚类装置,该装置包括:获取单元,用于获取神经网络模型;输入单元,用于将目标数据输入神经网络模型,确定目标数据对神
经网络模型中至少一个中间层节点的激活程度;选择单元,用于根据每个中间层节点的激
活程度在至少一个中间层节点中选择目标数据的聚类节点;确定单元,用于根据聚类节点
确定目标数据的聚类结果。
[0013] 进一步地,选择单元包括:获取模块,用于获取输入的聚类节点的数量K;选择模块,用于根据每个中间层节点的激活程度在至少一个中间层节点中选择K个节点作为聚类
节点。
[0014] 进一步地,选择模块包括:逻辑模块,用于将神经网络模型在接收输入的目标数据之后每个中间层节点对应的激励函数的输出值作为激活程度;计算模块,用于根据至少一
个中间层节点的激活程度分别计算每个中间层节点的排序参数值;选择子模块,用于按照
每个中间层节点的排序参数值对至少一个中间层节点进行排序,选取前K个节点作为聚类
节点。
[0015] 进一步地,该装置还包括:显示单元,用于在对多个目标数据进行聚类并得到聚类结果之后,通过可视化方式显示多个目标数据的聚类分布图。
[0016] 进一步地,获取单元包括:接收模块,用于接收输入的神经网络模型的结构参数以确定神经网络模型的结构;训练模块,用于通过训练样本集对结构确定的神经网络模型进
行训练,其中,训练样本集中的每个样本包括样本数据和样本类别标签,神经网络模型的训
练目标为在输入样本数据之后的输出与样本数据对应的样本类别标签的差距最小。
[0017] 进一步地,确定单元包括:显示模块,用于通过可视化方式显示目标数据的聚类结果。
[0018] 根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明的聚类方法。
[0019] 根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行本发明的聚类方法。
[0020] 在本发明实施例中,通过获取神经网络模型;将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少一个中间层节点的激活程度;根据每个中间层节点的激活
程度在至少一个中间层节点中选择目标数据的聚类节点;根据聚类节点确定目标数据的聚
类结果,解决了相关技术中结合神经网络模型的聚类方法使用复杂度较高的技术问题,进
而实现了无需人工选取相似度、无需在中间层中指定聚类的节点、自动根据中间层节点的
激活程度在中间层节点中选取聚类节点的效果,并且适用于所有种类的神经网络模型,无
需限制神经网络模型中节点类型是连续或离散,神经网络模型中的所有节点可以都是连续
节点,具有更强的适用性的技术效果。

附图说明

[0021] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022] 图1是根据本发明实施例的一种可选的聚类方法的流程图;
[0023] 图2是根据本发明实施例的另一种可选的聚类方法的流程图;
[0024] 图3是根据本发明实施例的一种可选的神经网络模型的示意图;
[0025] 图4是根据本发明实施例的一种可选的聚类装置的示意图。

具体实施方式

[0026] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范
围。
[0027] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或
描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于
清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。
[0028] 本申请提供了一种聚类方法的实施例。
[0029] 图1是根据本发明实施例的一种可选的聚类方法的流程图,如图1所示,该方法包括如下步骤:
[0030] 步骤S101,获取神经网络模型;
[0031] 步骤S102,将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少一个中间层节点的激活程度;
[0032] 步骤S103,根据至少一个中间层节点中每个中间层节点的激活程度在至少一个中间层节点中选择目标数据的聚类节点;
[0033] 步骤S104,根据聚类节点确定目标数据的聚类结果。
[0034] 神经网络模型是具有输入层、输出层、一个或多个中间层,每一层可以包括一个或多个节点,每个中间层节点可以被视作一个激励函数,每个中间层节点对应的激励函数的
输出值为该中间层节点对输入数据的激活程度,该实施例提供的聚类方法通过将目标数据
输入神经网络模型的输入层,根据目标数据对神经网络模型中的中间层节点的激活程度来
确定目标数据的类别,从而实现对数据进行聚类的效果。
[0035] 在对目标数据进行聚类之前,可以通过训练样本集先对神经网络模型进行训练,通过训练好的神经网络模型对目标数据进行分类。训练样本集包括多个样本,每个样本至
少包括样本数据和样本类别标签两个部分,对神经网络模型进行训练的目标为使神经网络
模型在输入样本数据之后得到的输出结果与输入的样本数据所对应的样本类别标签的差
异最小,其中,对所述差异的具体定义和函数的选取可以视情况而定,本发明对此不做具体
限定。
[0036] 需要说明的是,每个样本的样本类别标签是用于表示按照一种已知的分类依据对样本数据分类确定的类别标签,而在根据本发明实施例提供的聚类方法进行聚类之后,得
到的聚类结果则是根据对神经网络模型的激活程度进行划分的结果,无需预先设定相似
度,通过神经网络模型自学习每个样本数据的特征(可以通过每个中间层节点对应的激励
函数表示一个特征,激励函数的输出值则为样本数据的特征值),然后确定聚类划分所需的
中间层节点(聚类节点)的选取规则,例如,聚类划分所需的中间层节点的个数、聚类划分所
需的中间层节点所在的层数、聚类划分所需的中间层节点的激活程度值的数值范围和/或
聚类划分所需的中间层节点的优选顺序等,在确定聚类划分所需的中间层节点的选取规则
之后,根据选取规则选取预设个数的中间层节点作为聚类节点,并根据聚类节点确定目标
数据的分类结果。需要说明的是,在选择聚类节点时,可以在所有的中间层节点中的一部分
中间层节点中选择聚类节点,仅确定这部分中间层节点中每个中间层节点的激励程度,在
这部分中间层节点中选取聚类节点,而无需在全部中间层节点中选择聚类节点。在对多个
目标数据按照该实施例提供的聚类方法进行聚类之后,得到多个分组,每个组内具有至少
一个目标数据,每个组内的所有目标数据具有至少一个相似的特征。
[0037] 作为上述实施例的一种可选的实施方式,聚类节点的选取规则可以为:接收输入的聚类节点的数量K,根据每个中间层节点的激活程度在至少一个中间层节点中选择K个节
点作为聚类节点。进一步的,在根据每个中间层节点的激活程度在至少一个中间层节点中
选择K个节点作为聚类节点时,可以选择激活程度最高的前K个节点作为聚类节点,具体而
言,首先,将神经网络模型在接收输入的目标数据之后每个中间层节点对应的激励函数的
输出值作为激活程度,然后根据至少一个中间层节点的激活程度分别计算每个中间层节点
的排序参数值,最后,按照每个中间层节点的排序参数值对至少一个中间层节点进行排序,
选取前K个节点作为聚类节点。
[0038] 在选择出K个聚类节点之后,根据K个聚类节点的组合将目标数据划分到节点组合所对应的类别,例如,如果目标数据x1激活程度在前两位的聚类节点为节点1和节点3,则将
目标数据x1分类到节点1和节点3的组合所对应的类别A,如果目标数据x2激活程度在前两位
的聚类节点为节点2和节点3,则将目标数据x2分类到节点2和节点3的组合所对应的类别B。
[0039] 作为上述实施例的一种可选的实施方式,在获取神经网络模型时,可以包括如下步骤:接收输入的神经网络模型的结构参数,其中,结构参数可以包括神经网络模型的中间
层的层数、输入层节点个数、输出层节点个数、每个中间层的节点个数等等,在确定结构参
数之后,神经网络模型的结构随之确定,通过训练样本集对结构确定的神经网络模型进行
训练,其中,训练样本集中的每个样本包括样本数据和样本类别标签,神经网络模型的训练
目标为在输入样本数据之后的输出与样本数据对应的样本类别标签的差距最小。
[0040] 可选的,训练样本集中的所有样本的样本类别标签如果有N个种类,那么,相应的,可以设置神经网络模型的输出层的节点个数为N个节点。进一步的,样本类别标签可以用N
维one‑hot vector(独热向量)表示,具体而言,如果训练样本集中的样本分为N个种类,第p
个类别的样本数据对应的样本类别标签可以表示为向量X={xi=1(i=p),xi=0(1≤i≤N
且i≠p)},例如,如果N为8,第2个类别的样本数据的样本类别标签可以表示为{0,1,0,0,0,
0,0,0}。在样本类别标签采用N维one‑hot向量表示的情况下,神经网络模型的输出为N维向
量,对神经网络模型的训练目标可以为使输出的向量与样本类别标签之间的交叉熵(交叉
熵能够表示差异)最小,可选的,训练目标还可以是其它函数,本发明在此不做具体限定。
[0041] 在输出聚类结果时,可以采用可视化的方式显示,具体而言,在对多个目标数据进行聚类之后,得到每个目标数据的聚类结果,将聚类结果通过聚类分布图的方式进行显示。
具体而言,可以将目标数据转换为二维数据,通过散点图进行显示,每个样本点通过点的颜
色或标记表示(所属类别的)聚类编号,在显示散点图之后,可以通过人工根据散点图判断
聚类效果,或者,如果两个聚类的散点图的区域重叠程度较高时,将两个类别合并为一个类
别。
[0042] 该实施例通过获取神经网络模型;将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少一个中间层节点的激活程度;根据每个中间层节点的激活程度在至
少一个中间层节点中选择目标数据的聚类节点;根据聚类节点确定目标数据的聚类结果,
解决了相关技术中结合神经网络模型的聚类方法使用复杂度较高的技术问题,进而实现了
无需人工选取相似度、无需在中间层中指定聚类的节点、自动根据中间层节点的激活程度
在中间层节点中选取聚类节点的效果,并且适用于所有种类的神经网络模型,无需限制神
经网络模型中节点类型是连续或离散,神经网络模型中的所有节点可以都是连续节点,具
有更强的适用性。
[0043] 图2是上述实施例的一种可选的实施方式,如图2所示,该实施方式所提供的聚类方法的步骤包括:
[0044] 步骤一、设计神经网络模型;
[0045] 步骤二、优化模型参数,其中,通过带标签的数据样本集合对神经网络模型进行优化;
[0046] 步骤三、选择聚类节点;
[0047] 步骤四、划分样本聚类;
[0048] 步骤五、评估聚类结果。
[0049] 作为一种可选的神经网络模型,其结构可以如图3所示,神经网络模型包括输入层、输出层、一个或多个中间层,该神经网络模型可以是通过人工设计的,用户输入神经网
络模型的结构参数即可。在设计神经网络模型之后,将带标签的数据样本集合输入到神经
网络模型,优化结构确定的神经网络模型的参数。
[0050] 在聚类之前,需要设置聚类节点的选择规则,例如,聚类节点在哪一层中选取,最多选取的聚类节点的个数、激活程度的取值范围等等,设置好之后,选择聚类节点的步骤可
以通过如图3中所示的聚类节点选择单元执行,聚类节点选择单元根据设置的选择规则在
中间层中的多个中间层节点中选择若干节点作为聚类节点,并根据选择出的聚类节点划分
每个输入数据(样本)的聚类。可选的,中间层可能包括多层,聚类节点选择单元可以选择在
神经网络模型的最后一层中间层中选择若干个节点,如图3所示。最后,可以根据神经网络
模型分类的准确率评估聚类效果。
[0051] 需要说明的是,数据样本集合包括多个样本,每个样本包括样本数据和样本类别标签两个部分,样本类别标签能够表示每个样本数据的一方面特征,例如,样本数据为动物
图像,样本类别标签为动物的种类,猫、狗、牛、羊、鸡、鸭、鱼、虫等,通过上述数据样本集合
训练之后得到的神经网络模型能够自学习以提取出例如毛发长度、毛发颜色、耳朵性质、四
肢长度等特征,每个中间层节点可以是一种特征,因此,依据输入的数据激活程度较高的中
间层节点获得的聚类结果可能是分为长毛动物类、短毛动物类,也可能是分为黑色、白色、
灰色、杂色动物类,也可能是分为长腿动物类、短腿动物类、无腿动物类,也可能是分为上述
属性特征的组合类(如黑色长毛长腿动物类)。通过尝试不同结构的人工神经网络模型(例
如,不同的人工神经网络模型层数、中间层节点个数),或者选取不同的中间层节点,可以获
得不同的聚类效果。
[0052] 例如,在一种具体的应用场景下,上述具体实施方式提供的聚类方法的执行步骤包括:
[0053] 1)获取带有标签的数据样本集合S={xi,yi;i=1,…,N},其中,图像样本xi尺寸为100*100(例如通用的ImageNet数据集),标签yi为猫、狗、牛、羊、鸡、鸭、鱼、虫对应的八维1‑
hot向量;
[0054] 2)设置神经网络模型,依次包括输入层、中间层(多个卷积‑池化层、一个全连接层)、输出层,其中,输入层为100*100的二维图像数据,全连接层包含F个节点,输出层包含8
个节点,如图3所示;
[0055] 3)优化模型参数:训练神经网络模型的目标函数为最小化输出节点的激活值与标签之间的交叉熵,采用随机梯度下降法迭代地更新模型参数;
[0056] 4)选择聚类节点:设定聚类节点选择单元,选取模型的若干中间层节点作为聚类节点,选取规则如下:
[0057] (1)计算中间层节点的激活均值:
[0058] (2)计算中间层节点的激活方差:
[0059] (3)按从大至小的顺序对{Vj}排序,选择前K个值对应的节点作为聚类节点;其中,hij表示输入为xi时所述全连接层的第j个节点的激活值,j=1,…,F,K为用户指定的参数;
[0060] (4)划分样本聚类:根据聚类节点的激活程度将各个样本划分到不同的聚类,例如,当某个样本使得第三个中间层节点的激活值最大(或者激活方差最大),则将该样本划
分到第三个聚类;
[0061] (5)评估聚类效果,计算模型对于给定标签的分类准确率,用于估计模型的聚类效果。
[0062] 需要说明的是,上述举例中的样本数据可以是一维时序数据,例如声音、心电、脉搏波信号等;也可以是多维数据,例如视频、三维影像数据等;在优化模型参数时可以还采
用其它目标函数和优化方法,例如,在目标函数中增加L1正则项(例如,正则项取值为从聚
类节点到下一层节点之间的连接权值之和);在根据中间层节点的激活值将各个样本划分
到不同的聚类时,还有其它方法,例如,当某个样本使得第3个中间层节点的激活值最大、且
第5个中间层节点的激活值第二大,则将该样本分到第15个聚类(对应第3个节点与第5个节
点的聚类);在输出聚类结果时,还可以通过可视化的方式估计聚类效果,例如,使用数据降
维方法(局部线性嵌入法)将图像样本降低为二维数据,并使用散点图进行显示,其中样本
点的颜色或者标记依据聚类编号不同而不同,最后由人工对散点图的聚类效果进行评估,
或者,还可以通过可视化的方式优化数据聚类,例如,使用数据降维方法(局部线性嵌入法)
将图像样本降低为二维数据,并使用散点图进行显示,其中样本点的颜色或者标记依据聚
类编号不同而不同,当两个聚类对应的散点图区域重叠度较高时,将两个聚类合并为一个。
[0063] 上述实施例提供的聚类方法至少具有以下的效果:
[0064] (1)现有技术中的大部分聚类方法需要给定数据样本之间的相似度或者相似度计算方法,该实施例提供的聚类方法不必给定数据样本之间相似度或者相似度计算方法,因
而可以适用相似度难以计算的数据,例如图像数据、音频数据;
[0065] (2)现有的基于人工神经网络模型的聚类方法要求人工神经网络模型中包含离散节点,即,节点的取值限定为离散状态,该实施例提供的聚类方法不必限定于包含离散节点
的人工神经网络模型,节点的取值也可以是连续值,因而可以便捷地用于卷积神经网络
(CNN)等各种结构的人工神经网络模型。
[0066] (3)该实施例提供的聚类方法能够从给定的带有类别标签的数据样本中学习到数据样本之间的相似度标准,并据此自动划分出新的聚类。
[0067] 需要说明的是,在附图的流程图虽然示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0068] 本申请还提供了一种存储介质的实施例,该实施例的存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行本发明实施例的聚类方法。
[0069] 本申请还提供了一种处理器的实施例,该实施例的处理器用于运行程序,其中,程序运行时执行本发明实施例的聚类方法。
[0070] 本申请还提供了一种聚类装置的实施例。需要说明的是,本发明实施例提供的聚类装置可以用于执行本发明实施例提供的聚类方法。
[0071] 图4是根据本发明实施例的一种可选的聚类装置的示意图,如图4所示,该装置包括获取单元10,输入单元20,选择单元30和确定单元40,其中,获取单元用于获取神经网络
模型;输入单元用于将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少
一个中间层节点的激活程度;选择单元用于根据至少一个中间层节点中每个中间层节点的
激活程度在至少一个中间层节点中选择目标数据的聚类节点;确定单元用于根据聚类节点
确定目标数据的聚类结果。
[0072] 该实施例通过获取单元,用于获取神经网络模型;输入单元,用于将目标数据输入神经网络模型,确定目标数据对神经网络模型中至少一个中间层节点的激活程度;选择单
元,用于根据每个中间层节点的激活程度在至少一个中间层节点中选择目标数据的聚类节
点;确定单元,用于根据聚类节点确定目标数据的聚类结果,解决了相关技术中结合神经网
络模型的聚类方法使用复杂度较高的技术问题,进而实现了无需人工选取相似度、无需在
中间层中指定聚类的节点、自动根据中间层节点的激活程度在中间层节点中选取聚类节点
的效果,并且适用于所有种类的神经网络模型,无需限制神经网络模型中节点类型是连续
或离散,神经网络模型中的所有节点可以都是连续节点,具有更强的适用性。
[0073] 作为上述实施例的一种可选实施方式,选择单元包括:获取模块,用于获取输入的聚类节点的数量K;选择模块,用于根据每个中间层节点的激活程度在至少一个中间层节点
中选择K个节点作为聚类节点。
[0074] 作为上述实施例的一种可选实施方式,选择模块包括:逻辑模块,用于将神经网络模型在接收输入的目标数据之后每个中间层节点对应的激励函数的输出值作为激活程度;
计算模块,用于根据至少一个中间层节点的激活程度分别计算每个中间层节点的排序参数
值;选择子模块,用于按照每个中间层节点的排序参数值对至少一个中间层节点进行排序,
选取前K个节点作为聚类节点。
[0075] 作为上述实施例的一种可选实施方式,确定单元包括:分类模块,用于根据选择出的K个聚类节点的组合将目标数据划分到组合对应的类别。
[0076] 作为上述实施例的一种可选实施方式,获取单元包括:接收模块,用于接收输入的神经网络模型的结构参数以确定神经网络模型的结构;训练模块,用于通过训练样本集对
结构确定的神经网络模型进行训练,其中,训练样本集中的每个样本包括样本数据和样本
类别标签,神经网络模型的训练目标为在输入样本数据之后的输出与样本数据对应的样本
类别标签的差距最小。
[0077] 作为上述实施例的一种可选实施方式,该装置还可以包括:显示单元,用于在对多个目标数据进行聚类并得到聚类结果之后,通过可视化方式显示多个目标数据的聚类分布
图。
[0078] 上述的装置可以包括处理器和存储器,上述单元均可以作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0079] 存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存
储芯片。
[0080] 上述本申请实施例的顺序不代表实施例的优劣。
[0081] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解
到,所揭露的技术内容,可通过其它的方式实现。
[0082] 其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者
可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之
间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连
接,可以是电性或其它的形式。
[0083] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0084] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上
或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机
设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或
部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read‑Only Memory)、随机存取存
储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的
介质。
[0085] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应
视为本申请的保护范围。