CN111027619A - 一种基于忆阻器阵列的K-means分类器及其分类方法 - Google Patents
一种基于忆阻器阵列的K-means分类器及其分类方法 Download PDFInfo
- Publication number
- CN111027619A CN111027619A CN201911248887.5A CN201911248887A CN111027619A CN 111027619 A CN111027619 A CN 111027619A CN 201911248887 A CN201911248887 A CN 201911248887A CN 111027619 A CN111027619 A CN 111027619A
- Authority
- CN
- China
- Prior art keywords
- data
- memristor array
- classified
- memristor
- cluster center
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于忆阻器阵列的K‑means分类器及其分类方法,将K‑means算法的聚类中心的维度信息作为训练权重,映射并存储在忆阻器阵列中,以神经网络权重模拟聚类中心的维度信息,基于忆阻器的渐变特性实现欧氏距离的计算,并且直接在硬件电路上实现聚类中心各权重的在线更新,实现了大量非归一化数据在硬件电路基础上的数据聚类,减小了由于数据归一化带来的计算复杂度,以及由于外部电路计算权重变化所带来的电路复杂性,同时也减小了数据距离计算过程中的数据复杂度,降低了数据存储的时间和运算功耗,省去了数据交互的消耗,计算时间较短。
Description
技术领域
本发明属于人工神经网络技术领域,更具体地,涉及一种基于忆阻器阵列的K-means分类器及其分类方法。
背景技术
随着网络时代的到来,大量数据的涌现使得通过对数据进行分类并提取其中有效的数据特征显得越来越困难。数据分类是将具有形同或相似特征的数据点通过算法识别归纳到一起的过程。分类的核心是获取不同样本数据之间特征并计算其广义距离(或称相似度)以达到区分不同样本的目的。伴随着数据量的增加,分类算法的计算量成几何式增长,这要求计算系统CPU要有更高的数据计算和处理能力。现有计算架构下的“冯诺依曼瓶颈”极大限制了大数据环境下的数据归类能力。忆阻器以其高效的存算一体能力以及并行计算能力被认为是突破“冯诺依曼瓶颈”限制的最佳候选方案之一。
K-means算法作为一种基础的无监督聚类算法,具有收敛速度快、操作简单、可调参数少等显著优点,能够有效的处理大数据环境下的数据聚类问题。在现有应用中,基于忆阻器阵列的数据分类研究中的问题主要表现在:(1)忆阻器阵列的应用基于网络化结构实现,现有的利用忆阻器阵列实现分类主要集中在BP神经网络、多层感知机等复杂网络算法,其网络结构需结合软硬件同时实现,无法单独依靠忆阻器硬件结构实现分类,对于诸如K-means等非网络化结构聚类算法的研究尚处在初级阶段。(2)传统的K-means算法,其聚类中心采用无记忆性的均值更新方式,聚类中心更新前后无连续性,无法使其与神经网络的权值更新方式有效结合,无法实现权重的在线更新和欧式距离的完整表达,计算复杂度较高。(3)K-means算法依赖于计算聚类中心与样本数据之间的欧式距离实现聚类,现有的基于硬件实现的欧式距离计算方法无法实现输入数据的平方项计算,致使数据分类结果误差较大,精确度低。
综上所述,提供一种计算复杂度低、精确度高的K-means分类器及其分类方法是亟待解决的问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于忆阻器阵列的K-means分类器及其分类方法,其目的在于解决现有技术由于在硬件上无法实现权重的在线更新和欧式距离的完整表达而导致的计算复杂度较高的问题。
为实现上述目的,第一方面,本发明提供了一种基于忆阻器阵列的K-means分类器,包括第一控制模块、忆阻器阵列、第二控制模块、数据比较模块、输出模块;
忆阻器阵列包括第一忆阻器阵列、第二忆阻器阵列、第三忆阻器阵列、第四忆阻器阵列,第一忆阻器阵列和第四忆阻器阵列的各位线相连,第二忆阻器阵列和第三忆阻器阵列的各位线相连,第一忆阻器阵列和第二忆阻器阵列的各字线相连,第三忆阻器阵列和第四忆阻器阵列的各字线相连;
第一控制模块用于从输入的待分类数据集中随机选取聚类中心,经写电压编码后,分别存储到第一忆阻器阵列和第二忆阻器阵列中,同时将待分类数据集中的待分类数据经写电压编码后,分别存储到第三忆阻器阵列和第四忆阻器阵列中;并对待分类数据和聚类中心各权重的相反数进行读电压编码后,分别施加到第二忆阻器阵列和第一忆阻器阵列的位线上,其中,聚类中心各维度信息即为权重;
忆阻器阵列用于分别在聚类中心和待分类数据所在行上,实现第一控制模块输入的读电压编码后的待分类数据和各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后,输出到第二控制模块中;
第二控制模块用于将忆阻器阵列输入的待分类数据和聚类中心所在行的计算结果相减,得到聚类中心和待分类数据的欧式距离,并输出到数据比较模块中;
数据比较模块用于将待分类数据划分到与其距离最近的聚类中心所在的类上,并将分类结果分别输出到第二控制模块和输出模块中;
第二控制模块还用于根据数据比较模块输入的分类结果,确定待更新聚类中心所在行,通过对预设学习率及其相反数进行读电压编码后,分别输出到忆阻器阵列中待分类数据和待更新聚类中心所在行上;
忆阻器阵列还用于分别在待分类数据和待更新聚类中心所在行上,实现第二控制模块输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后得到各权重变化值,并输出到第一控制模块中;
第一控制模块还用于将忆阻器阵列输入的各权重变化值经过写编码后,分别输出到忆阻器阵列位线上;
忆阻器阵列还用于基于第一控制模块位线上输入的各权重变化值,更新待更新聚类中心的权重;
输出模块用于当聚类中心权重不再改变时,将数据比较模块输入的待分类数据的分类结果输出。
进一步优选地,上述忆阻器阵列以中心线为基准平移对称。
进一步优选地,上述忆阻器阵列大小为(k+1)×2M,其中,k为聚类类数,M为样本数据的维度;第一忆阻器阵列和第二忆阻器阵列以中心线为基准平移对称,均由k行M列的忆阻器构成;第三忆阻器阵列和第四忆阻器阵列以中心线为基准平移对称,均由1行M列的忆阻器构成。
第二方面,本发明提供了一种基于忆阻器阵列的K-means分类方法,包括以下步骤:
S1、从待分类数据集中随机选取k个数据作为初始聚类中心,经写电压编码后,分别存储到第一忆阻器阵列和第二忆阻器阵列中,其中,k为聚类类数;
S2、选取待分类数据集中的第一个数据作为待分类数据,经写电压编码后,分别存储到第三忆阻器阵列和第四忆阻器阵列中;
S3、对待分类数据和第一聚类中心各权重的相反数进行读电压编码后,分别施加到第二忆阻器阵列和第一忆阻器阵列的位线上,分别在第一聚类中心和待分类数据所在行上,实现第一控制模块输入的读电压编码后的待分类数据和第一聚类中心各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后相减,得到第一聚类中心和待分类数据间的欧式距离;
S4、按照步骤S3所述的方法,依次计算待分类数据与其余各个聚类中心之间的欧式距离;
S5、将待分类数据划分到与其距离最近的聚类中心所在的类上,根据分类结果,确定待更新聚类中心所在行;
S6、通过将读电压编码后的预设学习率及其相反数,分别输入到待分类数据和待更新聚类中心所在行上,实现第二控制模块输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后,得到待更新聚类中心各权重的变化值,并将所得变化值写入到待更新聚类中心的忆阻器节点中,更新权重;
S7、按照步骤S2-S6所述的方法,依次将待分类数据集中的剩余数据划分到对应类别中;
S8、重复步骤S2-S7进行迭代,直至各聚类中心的权重不再改变为止;
其中,第一忆阻器阵列和第四忆阻器阵列的各位线相连,第二忆阻器阵列和第三忆阻器阵列的各位线相连,第一忆阻器阵列和第二忆阻器阵列的各字线相连,第三忆阻器阵列和第四忆阻器阵列的各字线相连,聚类中心各维度信息即为权重。
进一步优选地,对数据进行写电压编码写入到忆阻器后,忆阻器电导值与该数据的实际大小呈线性相关。
进一步优选地,选中第一忆阻器阵列中的第一聚类中心,在其位线上施加经过读电压编码的系数-1,得到第一聚类中心各权重的相反数。
进一步优选地,上述欧式距离由忆阻器行上的输出电流带来的电荷累积量决定,累积电荷量与欧式距离成正比。
进一步优选地,上述待更新聚类中心为与待分类数据距离最近的聚类中心。
进一步优选地,上述权重变化值ΔW表示为:
ΔW=η(Ui-Wp)
其中,η表示学习率,Ui为第i个待分类数据,Wp为待更新聚类中心。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
1、本发明提供了一种基于忆阻器阵列的K-means分类器,利用忆阻器阵列结构,将具有实际意义的K-means聚类中心直接映射存并储到阵列节点中,实现算法的结构网络化,将聚类中心各维度信息作为网络的权重,增加了网络权重的现实含义,实现非归一化的输入数据聚类,减小了由于数据归一化带来的计算复杂度;通过将忆阻器的电导值渐变特性应用于实现多维数据的欧氏距离计算和权重更新,解决现有技术由于在硬件上无法实现欧式距离的完整表达和权重的在线更新而导致的计算复杂度较高的问题。
2、本发明提供了一种基于忆阻器阵列的K-means分类方法,将K-means算法的聚类中心的各维度信息作为训练权重,将忆阻器的电导值渐变特性应用于实现多维数据的欧氏距离计算,解决了在忆阻器阵列上的欧式距离完整表达问题,将学习率通过电压编码直接施加于忆阻器阵列,进一步实现了在硬件电路上的聚类中心的在线更新,极大的减少了由于外部电路计算权重变化所带来的电路复杂性,省去了数据交互的时间、能量消耗。
3、本发明提出的一种基于忆阻器阵列的K-means分类方法,将忆阻器渐变特性运用于欧氏距离模拟计算,不仅可以用于本文提出的计算输入数据与聚类中心欧式距离,实现K-means聚类,还能够解决如KNN,RBF神经网络等算法在其他类似算法在硬件电路中的相似度计算问题。
4、本发明所提供的基于忆阻器阵列的K-means分类器,由于纳米级忆阻器阵列的高密度结构以及忆阻器电阻存储信息的能力,使得本发明的电路尺寸小,能量消耗相比于传统的CMOS结构低,整体性能更优于现有计算构架,更加适用于边缘计算场景。
附图说明
图1是本发明所提供的一种基于忆阻器阵列的K-means分类器结构示意图;
图2是本发明所提供的忆阻器阵列结构示意图;
图3是本发明所提供的K-means聚类算法流程图;
图4是本发明所提供的神经网络权重映射方式;
图5是本发明所提供的基于忆阻器阵列权重读取方法示意图;
图6是本发明所提供的基于忆阻器阵列的待分类数据与聚类中心欧式距离的计算方法示意图;
图7是本发明所提供的基于忆阻器阵列的聚类中心的更新方法示意图;其中,图(a)为计算权重变化值的方法示意图,图(b)为将权重变化值写入待更新行的过程。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
为实现上述目的,第一方面,本发明提供了一种基于忆阻器阵列的K-means分类器,如图1所示,包括第一控制模块1、忆阻器阵列2、第二控制模块3、数据比较模块4、输出模块5;
其中,第一控制模块1与忆阻器阵列2双向连接,忆阻器阵列2与第二控制模块3双向连接,第二控制模块3与数据比较模块4双向连接,数据比较模块4与输出模块5相连。其中,如图2所示,忆阻器阵列1包括第一忆阻器阵列21、第二忆阻器阵列22、第三忆阻器阵列23、第四忆阻器阵列24,第一忆阻器阵列21和第四忆阻器阵列24的各位线相连,第二忆阻器阵列22和第三忆阻器阵列23的各位线相连,第一忆阻器阵列21和第二忆阻器阵列22的各字线相连,第三忆阻器阵列23和第四忆阻器阵列24的各字线相连;
第一控制模块1用于从输入的待分类数据集中随机选取聚类中心,经写电压编码后,分别存储到第一忆阻器阵列21和第二忆阻器阵列22中,同时将待分类数据集中的待分类数据经写电压编码后,分别存储到第三忆阻器阵列23和第四忆阻器阵列24中;并对待分类数据和聚类中心各权重的相反数进行读电压编码后,分别施加到第二忆阻器阵列22和第一忆阻器阵列21的位线上,其中,聚类中心各维度信息即为权重;
忆阻器阵列2用于分别在聚类中心和待分类数据所在行上,实现第一控制模块1输入的读电压编码后的待分类数据和各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后,输出到第二控制模块3中;
第二控制模块3用于将忆阻器阵列2输入的待分类数据和聚类中心所在行的计算结果相减,得到聚类中心和待分类数据的欧式距离,并输出到数据比较模块4中;
数据比较模块4用于将待分类数据划分到与其距离最近的聚类中心所在的类上,并将分类结果分别输出到第二控制模块3和输出模块5中;
第二控制模块3还用于根据数据比较模块4输入的分类结果,确定待更新聚类中心所在行,通过对预设学习率及其相反数进行读电压编码后,分别输出到忆阻器阵列2中待分类数据和待更新聚类中心所在行上;
忆阻器阵列2还用于分别在待分类数据和待更新聚类中心所在行上,实现第二控制模块3输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后得到各权重变化值,并输出到第一控制模块1中;
第一控制模块1还用于将忆阻器阵列2输入的各权重变化值经过写编码后,分别输出到忆阻器阵列2的位线上;
忆阻器阵列2还用于基于第一控制模块1位线上输入的各权重变化值,更新待更新聚类中心的权重;
输出模块5用于当聚类中心权重不再改变时,将数据比较模块4输入的待分类数据的分类结果输出。
具体的,上述忆阻器阵列2具有数据存储功能和数据存储功能,其中,数据存储功能是将输入数据经过写电压编码后的数据电压转化为忆阻器节点的电导值存储在阵列中;其数据计算功能是将输入数据经过读电压编码后的数据电压与节点的电导作用,转化为电流,并累计电荷。
本实施例中,对于待分类数据集S={U1,U2,…,Ut},每一个待分类数据Ui有M个数据维度,即Ui={xi1,xi2,…,xiM},指定将S中的数据分为k类,则会产生k个聚类中心W={W1,W2,…,Wk},每个聚类中心和待分类数据均有M个维度,即Wj={yi1,yi2,…,yiM}。如图2所示,本实施例采用的是(k+1)×2M大小的忆阻器阵列,该忆阻器阵列以中心线为基准平移对称,其中,第一忆阻器阵列和第二忆阻器阵列以中心线为基准平移对称,均由k行M列的忆阻器构成;第三忆阻器阵列和第四忆阻器阵列以中心线为基准平移对称,均由1行M列的忆阻器构成,忆阻器阵列大小为(k+1)×2M,其中,k为聚类类数,M为分类数据的维度。第一忆阻器阵列和第二忆阻器阵列用于存储动态变化的聚类中心W={W1,W2,…,Wk}。在忆阻器阵列中,阵列的每一个节点代表一个数据的一个维度。第一忆阻器阵列每行忆阻器单元从左至右依次存储一个聚类中心的M个维度,即M个权重,在第一忆阻器阵列的M*K个忆阻器单元中可以存储K个聚类中心的各个权重。类似的,可以将K个聚类中心存储到第二忆阻器阵列中。第三忆阻器阵列和第四忆阻器阵列用于存储第i次输入的待分类数据Ui,第一忆阻器阵列和第二忆阻器阵列、第三忆阻器阵列和第四忆阻器阵列存储的数据相同且以中心线为准平移对称。
具体的,第一控制模块1包括数据输入单元11、第一读写编码单元12、第一缓存单元13、第二缓存单元14;第二控制模块3包括第三缓存单元31、第二读写编码单元32、减法单元33;输出模块5包括输出缓存单元51、结果输出单元52;
其中,数据输入单元11的输出端与第一读写编码单元12的一端相连,第一读写编码单元12的另一端分别与第一缓存单元13和第二缓存单元14的一端双向连接,第一忆阻器阵列21和第四忆阻器阵列24的各位线与第一缓存单元13的另一端双向连接,第二忆阻器阵列22和第三忆阻器阵列23的各位线与第二缓存单元14的另一端双向连接,忆阻器阵列2各字线与第三缓存单元31的一端双向连接,第三缓存单元31的另一端分别与第二读写编码单元32、减法单元33以及数据比较模块4的一端双向连接,数据比较模块4的另一端与输出缓存单元51的输入端相连,输出缓存单元51的输出端与结果输出单元52的输入端相连;
如图3所示为K-means聚类算法流程图,主要包括数据输入阶段S1-S2、距离计算阶段S3和权重更新阶段S4-S5。
相应的,图1中K-means分类器中各模块及单元的功能如下:
数据输入阶段:数据输入单元11接收待分类数据集的输入,从中选取聚类中心数据和待分类数据,并输出到第一读写编码单元12中,第一读写编码单元12基于固定幅度的写电压对数据输入单元11输入的聚类中心数据和待分类数据进行编码,并将编码后的数据分别经第一缓存单元13和第二缓存单元14输入至忆阻器阵列2的位线上,从而将聚类中心分别存储到第一忆阻器阵列21和第二忆阻器阵列22上,将第一读写模块12输入的写编码后的待分类数据输入至忆阻器阵列2的位线上,从而将待分类数据分别存储到第三忆阻器阵列23和第四忆阻器阵列24上,完成忆阻器阵列2对待分类数据和聚类中心的各维度信息的存储。
距离计算阶段:以聚类中心各维度信息为权重,对待分类数据和各权重的相反数进行读电压编码后,分别经第二缓存单元14和第一缓存单元13后,分别施加到第二忆阻器阵列22和第一忆阻器阵列21的位线上;忆阻器阵列2用于在聚类中心和待分类数据所在行上,实现输入的读电压编码后的待分类数据和各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后,并经过第三缓存模块输出到减法单元33中进行减法运算,得到待分类数据与各聚类中心间的欧式距离,并经第三缓存单元31输出到数据比较模块4中。
权重更新阶段:数据比较模块4接收第三缓存单元31输入的待分类数据与各聚类中心间的欧式距离,比较各个欧式距离的大小,将待分类数据划分到与其距离最近的聚类中心所在的类上,并将分类结果分别输出到第第三缓存单元31和输出缓存单元51中,将临时分类结果存储在输出缓存单元51中;第三缓存单元31根据数据比较模块4输入的分类结果,确定待更新聚类中心所在行,通过对预设学习率及其相反数进行读电压编码后,分别输出到忆阻器阵列2中待分类数据和待更新聚类中心所在行上;忆阻器阵列2分别在待分类数据和待更新聚类中心所在行上,第三缓存单元31输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后得到各权重变化值,并输出到第一缓存单元13和第二缓存单元14中;第一缓存单元13和第二缓存单元14将各权重变化值输出到第一读写编码单元12进行写编码后,重新经第一缓存单元13和第二缓存单元14分别输出到忆阻器阵列2的位线上,使得忆阻器阵列更新待更新聚类中心的权重。
对待分类数据集中的每个待分类数据进行多次上述过程后,当待分类数据集中各个数据的类别不再改变时,将分类结果传递输出到结果输出单元52,从而输出最终分类结果。
第二方面,本发明提供了一种基于忆阻器阵列的K-means分类方法。本发明将K-means算法简化为一个单层感知机模型,输入为待分类数据的各维度信息,输出为该待分类数据所在的类别,训练的权重为聚类中心的各维度信息。利用忆阻器阵列实现上述感知机模型,重复利用数据集S中数据对聚类中心在线训练并完成其各维度信息即权重的更新,最终实现聚类。如图4所示为本发明所提供的神经网络权重映射方式。
具体的,本发明提供了一种基于忆阻器阵列的K-means分类方法,包括以下步骤:
S1、从待分类数据集S={U1,U2,…,Ut}中随机选取k个数据作为初始聚类中心权重W={W1,W2,…,Wk},经写电压编码后,分别存储到第一忆阻器阵列、第二忆阻器阵列中,其中,k为聚类类数;
具体的,以本发明第一方面提供的K-means分类器为例,依次将第j(j=1,2,…,k)个聚类中心的M个维度数据利用第一读写数据编码模块进行编码,经第一缓存单元和第二缓存单元后,将编码后的待分类数据分别写入到第一忆阻器阵列和第二忆阻器阵列第j行忆阻器节点中。
S2、选取待分类数据集中的第一个数据U1作为待分类数据,经写电压编码后,分别存储到第三忆阻器阵列和第四忆阻器阵列中;
具体的,对数据进行写电压编码写入到忆阻器后,忆阻器电导值与该数据的实际大小呈线性相关,表示如下:
其中,Gx表示对数据写电压编码写入到忆阻器后的忆阻器电导值,X表示数据值,Gmax,Gmin分别表示电导最大值和最小值,Xmax,Xmin表示数据的最大值和最小值。据此将实际数据映射为器件电导,由于编码电压幅度是相同的,为了使数据达到某一确定的电导值,必须施加不同的电压数,即写电压编码过程。写数据编码结果为N=f(Gx),其中,函数f为忆阻器脉冲电导特性。
S3、对待分类数据U1和第一聚类中心各权重的相反数-W1进行读电压编码后,分别施加到第二忆阻器阵列和第一忆阻器阵列的位线上,分别在第一聚类中心W1和待分类数据U1所在行上,实现第一控制模块输入的读电压编码后的待分类数据和第一聚类中心各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后相减,得到第一聚类中心和待分类数据间的欧式距离;
具体的,聚类中心各维度信息即为权重。选中第一忆阻器阵列中的第一聚类中心W1,在其位线上施加经过读电压编码的系数-1,基于欧姆定律计算得到第一聚类中心各权重的相反数;如图5所示为本发明所提供的基于忆阻器阵列权重读取方法示意图,通过第三缓存单元选中第一聚类中心W1,在该条线路上施加读电压,通过欧姆定律与第一聚类中心W1所在行上的忆阻器电导值相作用,得到第一聚类中心W1各权重的相反数。具体的,将经过读电压编码的系数-1通过第三缓存单元输入到第一聚类中心W1所在的行中,采用第一缓存单元收集第一忆阻器阵列中各位线上的电流值,可以得到第一聚类中心W1对应的电导值,通过电导与实际数据之间的映射关系,得到各权重的相反数-y11,-y12,…,-y1M,并存储在第一缓存单元中。
具体的,如图6所示,将第一聚类中心各权重的相反数(-y11,-y12,…,-y1M)和待分类数据(x11,x12,…,x1M)各M个维度的数据利用读数据编码模块进行编码,将编码后的各权重的相反数通过第一缓存单元输入到第一忆阻器阵列和第四忆阻器阵列中,将编码后的待分类数据通过第二缓存单元输入到第二忆阻器阵列和第三忆阻器阵列中,实现第一控制模块输入的读电压编码后的待分类数据和各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后,将所得结果相减,得到第一聚类中心和待分类数据间欧式距离。上述过程实质是基于输入的读电压编码后的数据电压与节点的电导作用,将读电压转化为电流,该电流可以表征向量点乘运算后进行加和的结果,通过第三缓存单元收集第一聚类中心W1所在行以及待分类数据U1所在行的电荷值,该电荷表征向量点乘运算后加和的结果。将该电荷值表征的数据U1 2-U1*W1以及第一聚类中心W1所在行的电荷值表征的数据经第三缓存单元输出到减法单元中进行减法运算,即即可得到的待分类数据与聚类中心W1的欧式距离,将所得欧式距离存储在第三缓存单元中。进一步的,欧式距离由电流带来的电荷累积量决定,累积电荷量与欧式距离呈正比。
以上方法将忆阻器渐变特性运用于计算欧氏距离中,不仅可以用于本文提出的计算输入数据与聚类中心的欧式距离,实现K-means聚类,还能够解决KNN、RBF神经网络等算法在硬件电路中的相似度计算问题。
S4、按照步骤S3所述的方法,依次计算待分类数据与其余各个聚类中心W2,W3,…,Wk之间的欧式距离;
S5、将所得待分类数据与各个聚类中心W1,W2,…,Wk之间的欧式距离进行比较,将待分类数据划分到与其距离最近的聚类中心所在的类,根据分类结果,确定待更新聚类中心所在行,其中,待更新聚类中心为与待分类数据距离最近的聚类中心。
具体的,将第三缓存单元中存储的表征欧式距离的电荷传递至数据比较模块中,数据比较模块通过比较电荷量的大小,将待分类数据划分到与其距离最近的聚类中心所在的类,并将分类结果反馈给第三缓存单元,并输出到输出缓存单元中。
S6、通过将读电压编码后的预设学习率η及其相反数-η,分别输入到待分类数据和待更新聚类中心所在行上,实现第二控制模块输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后,得到待更新聚类中心各权重的变化值,并将所得变化值写入到待更新聚类中心的忆阻器节点中,更新权重;
具体的,如图7(a)所示,通过第三缓存单元将经过读电压编码的学习率相反数-η对应的电压脉冲输入到与待分类数据距离最近的聚类中心Wp所在行上,与此同时,通过第三缓存单元将经过读电压编码的学习率η对应的电压脉冲输入到待分类数据U1所在行上。本实施例中,将学习率对应的电压脉冲数设置为1,即为最小脉冲数,其中,学习率η取值为0.1。基于欧姆定律分别得到与待分类数据距离最近的聚类中心和待分类数据所在列上的电流值,按列累加后计算得到与待分类数据距离最近的聚类中心的各权重变化值为ΔW=η(Ui-Wp),其中,η表示学习率,UiUi为第i个待分类数据,Wp为与待分类数据距离最近的聚类中心。然后,如图7(b)所示,将ΔW利用写编码单元进行编码写入到忆阻器阵列中与待分类数据距离最近的聚类中心Wp所在的行上,从而实现在忆阻器阵列上的聚类中心的更新。
S7、按照步骤S2-S6所述的方法,依次将待分类数据集中的剩余数据划分到对应类别中;
S8、重复步骤S2-S7进行迭代,直至各聚类中心的权重不再改变为止;
其中,第一忆阻器阵列和第四忆阻器阵列的各位线相连,第二忆阻器阵列和第三忆阻器阵列的各位线相连,第一忆阻器阵列和第二忆阻器阵列的各字线相连,第三忆阻器阵列和第四忆阻器阵列的各字线相连。
本发明提出了一种基于忆阻器阵列的K-means分类器及其分类方法,将K-means算法的聚类中心的各维度信息作为训练权重,映射在忆阻器阵列中,创造性的提出了一种基于忆阻器阵列的欧式距离计算方法,解决了在忆阻器阵列上的欧式距离完整表达问题,该方法可用于实现大量数据在硬件电路基础上的数据聚类。本发明利用忆阻器阵列减小了数据欧式距离计算过程中的数据复杂度,降低了数据存储的时间和运算功耗,未来可用于边缘计算场景。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于忆阻器阵列的K-means分类器,其特征在于,包括:第一控制模块、忆阻器阵列、第二控制模块、数据比较模块、输出模块;
所述忆阻器阵列包括第一忆阻器阵列、第二忆阻器阵列、第三忆阻器阵列、第四忆阻器阵列,第一忆阻器阵列和第四忆阻器阵列的各位线相连,第二忆阻器阵列和第三忆阻器阵列的各位线相连,第一忆阻器阵列和第二忆阻器阵列的各字线相连,第三忆阻器阵列和第四忆阻器阵列的各字线相连;
所述第一控制模块用于从输入的待分类数据集中随机选取聚类中心,经写电压编码后,分别存储到第一忆阻器阵列和第二忆阻器阵列中,同时将待分类数据集中的待分类数据经写电压编码后,分别存储到第三忆阻器阵列和第四忆阻器阵列中;并对待分类数据和聚类中心各权重的相反数进行读电压编码后,分别施加到第二忆阻器阵列和第一忆阻器阵列的位线上,其中,聚类中心各维度信息即为权重;
所述忆阻器阵列用于分别在聚类中心和待分类数据所在行上,实现第一控制模块输入的读电压编码后的待分类数据和各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后,输出到第二控制模块中;
所述第二控制模块用于将忆阻器阵列输入的待分类数据和聚类中心所在行的计算结果相减,得到聚类中心和待分类数据的欧式距离,并输出到数据比较模块中;
所述数据比较模块用于将待分类数据划分到与其距离最近的聚类中心所在的类上,并将分类结果分别输出到第二控制模块和输出模块中;
所述第二控制模块还用于根据数据比较模块输入的分类结果,确定待更新聚类中心所在行,通过对预设学习率及其相反数进行读电压编码后,分别输出到忆阻器阵列中待分类数据和待更新聚类中心所在行上;
所述忆阻器阵列还用于分别在待分类数据和待更新聚类中心所在行上,实现第二控制模块输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后得到各权重变化值,并输出到第一控制模块中;
所述第一控制模块还用于将忆阻器阵列输入的各权重变化值经过写编码后,分别输出到忆阻器阵列位线上;
所述忆阻器阵列还用于基于第一控制模块位线上输入的各权重变化值,更新待更新聚类中心的权重;
所述输出模块用于当聚类中心权重不再改变时,将数据比较模块输入的待分类数据的分类结果输出。
2.根据权利要求1所述的基于忆阻器阵列的K-means分类器,其特征在于,所述忆阻器阵列以中心线为基准平移对称。
3.根据权利要求1所述的基于忆阻器阵列的K-means分类器,其特征在于,忆阻器阵列大小为(k+1)×2M,其中,k为聚类类数,M为样本数据的维度;所述第一忆阻器阵列和第二忆阻器阵列以中心线为基准平移对称,均由k行M列的忆阻器构成;所述第三忆阻器阵列和第四忆阻器阵列以中心线为基准平移对称,均由1行M列的忆阻器构成。
4.一种基于忆阻器阵列的K-means分类方法,其特征在于,包括以下步骤:
S1、从待分类数据集中随机选取k个数据作为初始聚类中心,经写电压编码后,分别存储到第一忆阻器阵列和第二忆阻器阵列中,其中,k为聚类类数;
S2、选取待分类数据集中的第一个数据作为待分类数据,经写电压编码后,分别存储到第三忆阻器阵列和第四忆阻器阵列中;
S3、对待分类数据和第一聚类中心各权重的相反数进行读电压编码后,分别施加到第二忆阻器阵列和第一忆阻器阵列的位线上,分别在第一聚类中心和待分类数据所在行上,实现第一控制模块输入的读电压编码后的待分类数据和第一聚类中心各权重的相反数与自身存储数据之间的点乘运算,并将所得结果按行进行累加后相减,得到第一聚类中心和待分类数据间的欧式距离;
S4、按照步骤S3所述的方法,依次计算待分类数据与其余各个聚类中心之间的欧式距离;
S5、将待分类数据划分到与其距离最近的聚类中心所在的类上,根据分类结果,确定待更新聚类中心所在行;
S6、通过将读电压编码后的预设学习率及其相反数,分别输入到待分类数据和待更新聚类中心所在行上,实现第二控制模块输入的预设学习率及其相反数与自身存储数据之间的点乘运算,并将所得结果按列进行累加后,得到待更新聚类中心各权重的变化值,并将所得变化值写入到待更新聚类中心的忆阻器节点中,更新权重;
S7、按照步骤S2-S6所述的方法,依次将待分类数据集中的剩余数据划分到对应类别中;
S8、重复步骤S2-S7进行迭代,直至各聚类中心的权重不再改变为止;
其中,第一忆阻器阵列和第四忆阻器阵列的各位线相连,第二忆阻器阵列和第三忆阻器阵列的各位线相连,第一忆阻器阵列和第二忆阻器阵列的各字线相连,第三忆阻器阵列和第四忆阻器阵列的各字线相连;聚类中心各维度信息即为权重。
5.根据权利要求4所述的分类方法,其特征在于,对数据进行写电压编码写入到忆阻器后,忆阻器电导值与该数据的实际大小呈线性相关。
6.根据权利要求4所述的分类方法,其特征在于,选中第一忆阻器阵列中的第一聚类中心,在其位线上施加经过读电压编码的系数-1,得到第一聚类中心各权重的相反数。
7.根据权利要求4所述的分类方法,其特征在于,所述欧式距离由忆阻器行上的输出电流带来的电荷累积量决定,累积电荷量与欧式距离成正比。
8.根据权利要求4所述的分类方法,其特征在于,所述待更新聚类中心为与待分类数据距离最近的聚类中心。
9.根据权利要求4所述的分类方法,其特征在于,所述权重的变化值ΔW表示为:
ΔW=η(Ui-Wp)
其中,η表示学习率,Ui为第i个待分类数据,Wp为待更新聚类中心。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911248887.5A CN111027619B (zh) | 2019-12-09 | 2019-12-09 | 一种基于忆阻器阵列的K-means分类器及其分类方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911248887.5A CN111027619B (zh) | 2019-12-09 | 2019-12-09 | 一种基于忆阻器阵列的K-means分类器及其分类方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111027619A true CN111027619A (zh) | 2020-04-17 |
| CN111027619B CN111027619B (zh) | 2022-03-15 |
Family
ID=70207600
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911248887.5A Active CN111027619B (zh) | 2019-12-09 | 2019-12-09 | 一种基于忆阻器阵列的K-means分类器及其分类方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111027619B (zh) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111553415A (zh) * | 2020-04-28 | 2020-08-18 | 哈尔滨理工大学 | 一种基于忆阻器的esn神经网络图像分类处理方法 |
| CN111599409A (zh) * | 2020-05-20 | 2020-08-28 | 电子科技大学 | 基于MapReduce并行的circRNA识别方法 |
| CN111815640A (zh) * | 2020-07-21 | 2020-10-23 | 江苏经贸职业技术学院 | 一种基于忆阻器的rbf神经网络医学图像分割算法 |
| CN111983429A (zh) * | 2020-08-19 | 2020-11-24 | Oppo广东移动通信有限公司 | 芯片验证系统、芯片验证方法、终端及存储介质 |
| CN112819036A (zh) * | 2021-01-12 | 2021-05-18 | 华中科技大学 | 一种基于忆阻器阵列的球形数据分类装置及其操作方法 |
| CN113517007A (zh) * | 2021-04-29 | 2021-10-19 | 西安交通大学 | 一种流水处理方法、系统和忆阻器阵列 |
| WO2022217673A1 (zh) * | 2021-04-14 | 2022-10-20 | 华中科技大学 | 基于忆阻器的朴素贝叶斯分类器设计方法、系统及分类器 |
| CN118113975A (zh) * | 2024-03-18 | 2024-05-31 | 北京忆元科技有限公司 | 向量检索方法、装置、忆阻器存算一体芯片及电子设备 |
| CN119533408A (zh) * | 2025-01-21 | 2025-02-28 | 西安电子科技大学杭州研究院 | 基于存算阵列的倾角检测方法、系统、终端及存储介质 |
| CN120123634A (zh) * | 2025-02-25 | 2025-06-10 | 华中科技大学 | 一种基于忆阻器阵列的隐马尔可夫模型前向算法分类器及其操控方法 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150286926A1 (en) * | 2014-04-04 | 2015-10-08 | Knowmtech, Llc. | Anti-hebbian and hebbian computing with thermodynamic ram |
| CN105593879A (zh) * | 2013-05-06 | 2016-05-18 | Knowm科技有限责任公司 | 通用机器学习构造块 |
| CN109791626A (zh) * | 2017-12-29 | 2019-05-21 | 清华大学 | 神经网络权重编码方法、计算装置及硬件系统 |
| CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
| CN110007764A (zh) * | 2019-04-11 | 2019-07-12 | 北京华捷艾米科技有限公司 | 一种手势骨架识别方法、装置、系统及存储介质 |
| US10380386B1 (en) * | 2018-04-30 | 2019-08-13 | Hewlett Packard Enterprise Development Lp | Accelerator for k-means clustering with memristor crossbars |
| CN110163334A (zh) * | 2018-02-11 | 2019-08-23 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
| CN110443168A (zh) * | 2019-07-23 | 2019-11-12 | 华中科技大学 | 一种基于忆阻器的神经网络人脸识别系统 |
-
2019
- 2019-12-09 CN CN201911248887.5A patent/CN111027619B/zh active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105593879A (zh) * | 2013-05-06 | 2016-05-18 | Knowm科技有限责任公司 | 通用机器学习构造块 |
| US20150286926A1 (en) * | 2014-04-04 | 2015-10-08 | Knowmtech, Llc. | Anti-hebbian and hebbian computing with thermodynamic ram |
| CN109791626A (zh) * | 2017-12-29 | 2019-05-21 | 清华大学 | 神经网络权重编码方法、计算装置及硬件系统 |
| CN110163334A (zh) * | 2018-02-11 | 2019-08-23 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
| US10380386B1 (en) * | 2018-04-30 | 2019-08-13 | Hewlett Packard Enterprise Development Lp | Accelerator for k-means clustering with memristor crossbars |
| CN109800870A (zh) * | 2019-01-10 | 2019-05-24 | 华中科技大学 | 一种基于忆阻器的神经网络在线学习系统 |
| CN110007764A (zh) * | 2019-04-11 | 2019-07-12 | 北京华捷艾米科技有限公司 | 一种手势骨架识别方法、装置、系统及存储介质 |
| CN110443168A (zh) * | 2019-07-23 | 2019-11-12 | 华中科技大学 | 一种基于忆阻器的神经网络人脸识别系统 |
Non-Patent Citations (2)
| Title |
|---|
| JARI TISSARI等: "K-means clustering in a memristive logic array", 《2015 IEEE 15TH INTERNATIONAL CONFERENCE ON NANOTECHNOLOGY (IEEE-NANO)》 * |
| 贾振堂等: "人工神经网络在智能电网中的应用回顾与展望", 《2015年全国智能电网用户端能源管理学术年会论文集》 * |
Cited By (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111553415B (zh) * | 2020-04-28 | 2022-11-15 | 宁波工程学院 | 一种基于忆阻器的esn神经网络图像分类处理方法 |
| CN111553415A (zh) * | 2020-04-28 | 2020-08-18 | 哈尔滨理工大学 | 一种基于忆阻器的esn神经网络图像分类处理方法 |
| CN111599409A (zh) * | 2020-05-20 | 2020-08-28 | 电子科技大学 | 基于MapReduce并行的circRNA识别方法 |
| CN111599409B (zh) * | 2020-05-20 | 2022-05-20 | 电子科技大学 | 基于MapReduce并行的circRNA识别方法 |
| CN111815640A (zh) * | 2020-07-21 | 2020-10-23 | 江苏经贸职业技术学院 | 一种基于忆阻器的rbf神经网络医学图像分割算法 |
| CN111815640B (zh) * | 2020-07-21 | 2022-05-03 | 江苏经贸职业技术学院 | 一种基于忆阻器的rbf神经网络医学图像分割算法 |
| CN111983429A (zh) * | 2020-08-19 | 2020-11-24 | Oppo广东移动通信有限公司 | 芯片验证系统、芯片验证方法、终端及存储介质 |
| CN112819036A (zh) * | 2021-01-12 | 2021-05-18 | 华中科技大学 | 一种基于忆阻器阵列的球形数据分类装置及其操作方法 |
| CN112819036B (zh) * | 2021-01-12 | 2024-03-19 | 华中科技大学 | 一种基于忆阻器阵列的球形数据分类装置及其操作方法 |
| WO2022217673A1 (zh) * | 2021-04-14 | 2022-10-20 | 华中科技大学 | 基于忆阻器的朴素贝叶斯分类器设计方法、系统及分类器 |
| US12266152B2 (en) | 2021-04-14 | 2025-04-01 | Huazhong University Of Science And Technology | Method and system of designing memristor-based naive Bayes classifier and classifier |
| CN113517007B (zh) * | 2021-04-29 | 2023-07-25 | 西安交通大学 | 一种流水处理方法、系统和忆阻器阵列 |
| CN113517007A (zh) * | 2021-04-29 | 2021-10-19 | 西安交通大学 | 一种流水处理方法、系统和忆阻器阵列 |
| CN118113975A (zh) * | 2024-03-18 | 2024-05-31 | 北京忆元科技有限公司 | 向量检索方法、装置、忆阻器存算一体芯片及电子设备 |
| CN119533408A (zh) * | 2025-01-21 | 2025-02-28 | 西安电子科技大学杭州研究院 | 基于存算阵列的倾角检测方法、系统、终端及存储介质 |
| CN120123634A (zh) * | 2025-02-25 | 2025-06-10 | 华中科技大学 | 一种基于忆阻器阵列的隐马尔可夫模型前向算法分类器及其操控方法 |
| CN120123634B (zh) * | 2025-02-25 | 2025-11-04 | 华中科技大学 | 一种基于忆阻器阵列的隐马尔可夫模型前向算法分类器及其操控方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111027619B (zh) | 2022-03-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111027619B (zh) | 一种基于忆阻器阵列的K-means分类器及其分类方法 | |
| CN112507898B (zh) | 一种基于轻量3d残差网络和tcn的多模态动态手势识别方法 | |
| CN109460817B (zh) | 一种基于非易失存储器的卷积神经网络片上学习系统 | |
| CN112508085B (zh) | 基于感知神经网络的社交网络链路预测方法 | |
| CN113112020B (zh) | 一种基于生成网络与知识蒸馏的模型网络提取和压缩方法 | |
| CN114612721B (zh) | 基于多层次自适应特征融合类增量学习的图像分类方法 | |
| CN108734301A (zh) | 一种机器学习方法和机器学习装置 | |
| Yang et al. | Recomputation of the dense layers for performance improvement of dcnn | |
| CN113222103B (zh) | 神经网络的更新方法、分类方法和电子设备 | |
| WO2020095321A2 (en) | Dynamic structure neural machine for solving prediction problems with uses in machine learning | |
| CN111310852B (zh) | 一种图像分类方法及系统 | |
| CN108108854A (zh) | 城市路网链路预测方法、系统及存储介质 | |
| CN112417289A (zh) | 一种基于深度聚类的资讯信息智能推荐方法 | |
| CN113157919A (zh) | 语句文本方面级情感分类方法及系统 | |
| CN113627471A (zh) | 一种数据分类方法、系统、设备及信息数据处理终端 | |
| CN114766024A (zh) | 用于修剪神经网络的方法和设备 | |
| Wu et al. | A feedforward bidirectional associative memory | |
| CN114511092A (zh) | 一种基于量子线路的图注意力机制实现方法 | |
| CN112819036A (zh) | 一种基于忆阻器阵列的球形数据分类装置及其操作方法 | |
| CN118916714B (zh) | 一种基于图神经网络的代码相似性检测方法、设备及介质 | |
| CN115660079A (zh) | 用于特征选择的忆阻器遗传算法的加速器及其操作方法 | |
| CN119003504A (zh) | 基于机器学习模型的大规模数据存储去重优化方法 | |
| CN110188621B (zh) | 一种基于ssf-il-cnn的三维人脸表情识别方法 | |
| Tripathi et al. | Real time object detection using CNN | |
| Ding et al. | Greedy broad learning system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |