一种基于磁场实现模拟场计算机数据分类方法

文档序号:3415475阅读:171来源:国知局
专利名称:一种基于磁场实现模拟场计算机数据分类方法
技术领域
本发明涉及一种数据分类方法,特别涉及一种基于磁场实现模拟场计算机数据分类方法。
背景技术
模式识别是人类的一项基本智能,在日常生活中,人们经常用“模式识别,,来代替人类部分脑力劳动。模式识别是指对表征事物或现象的各种形式的信息进行处理和分析, 以对事物或现象进行描述、辨认、分类和解释的过程。在模式识别的过程中通常要对大量的数据进行分类,数据分类的速度和准确性直接影响模式识别的效率和精确度。目前,通常采用基于硅材料的微处理器为基础的数字计算机,对模式识别过程中获取的大量数据进行分类。但是,摩尔定律以及微电子技术理论上的光传输速度极限,量子力学的测不准原理和热力学第二定律等带来的瓶颈,使得数字计算机在进行数据分类的过程速度慢、效率低。同时数字计算机在面对模式识别中产生的二维以及二维以上的数据,其只能对数据的每一维进行串行处理,其分类效率低。

发明内容
本发明的目的是提出了一种基于磁场实现模拟场计算机的数据分类方法,该方法能够同时对多维数据中的各维进行并行处理,且采用基于磁场实现的模拟场计算机,非线性分类能力强,可以实现对复杂数据进行高速准确地分类。本发明的目的主要通过下述技术方案实现的一种基于磁场实现模拟场计算机的数据分类方法,用于对模式识别过程中获取的 Ψ个&维数据QJk1]进行分类,其中,i = 1,21 1^屯,且从[1^]中包含A种类型的数据;具体步骤为步骤一、在导磁介质薄膜上选取M1XM2个点垂直设置探针;从所设置的探针中选取k2个探针作为构建磁场输入点,选取Ic1个探针作为数据输入点,选取一个探针作为数据输出点;其中,构建磁场输入点、数据输入点以及数据输出点为互不相同的点;步骤二、随机生成Ii2个用于构建磁场的k2维构建数据Oj [k2],j = 1,2L Ln2,每个构建数据能够构建一个模拟场计算机;从QJk1]的每一类型数据中分别选取Ii1个数据作为输入数据;构建数据的每维值决定向构建磁场输入点输入电流的密度,输入数据中的每维值决定向数据输入点输入电流的密度,从数据输出点获取磁场强度值或磁感应强度值作为输出值;步骤三、对构建数据进行验证,其具体验证过程为针对每一构建数据,设定每一类型输入数据对应的输出范围;将根据各输入数据获取的电流输入到数据输入点上,从数据输出点上得到一组输出值;利用各组输出值和输出范围计算各构建数据对应的误差,根据所述误差选取最优构建数据建立模拟场计算机对Qi [kj进行分类。本发明所述验证的过程为
步骤201、设定每一类型输入数据对应的输出范围步骤202、从Oj [k2]中选取一未遍历的构建数据作为电流的密度值选取k2个电流, 并将所述k2个电流输入到k2个构建磁场输入点上,并将获取的构建数据标记为已遍历的构建数据;步骤203、针对每一个输入数据,利用其作为电流的密度值获取Ic1个电流,并将所述&个电流输入到Ic1个数据输入点上;步骤204、判断利用本循环选取的构建数据建立的模拟场计算机,针对每一输入数据所对应的输出值和输出范围计算构建数据对应的误差,判断所述误差是否满足预设条件,若是,则将本循环中构建数据作为最优构建数据建立模拟场计算机对QJk1]进行分类, 否则,返回步骤202。本发明所述步骤二和步骤三的具体过程为步骤301、设置最大迭代次数为Maxiter,并设定A种类型数据中每一种类型所对应的输出范围,同时令迭代次数iter = 0 ;步骤302、利用粒子群算法随机生成Ii2个用于构建磁场的构建数据A [k2],j = 1, 2L Ln2,每个构建数据的维数为k2,n2个构建数据两两互不相同,且每个构建数据对应一个误差量Bp令B」=0 ;从QJk1]的每一类型数据中分别选取Ii1个数据作为输入数据;步骤303、从Ii2个OJk2]中选取一未被遍历的k2维构建数据,记为OJk2],将 OJk2]中k2维数据的各维值作为电流的密度值,将k2个电流分别输入到k2个构建磁场输入点上,此时将所述OJk2]标记为已经遍历的构建数据;步骤304、从AXn1个输入数据中选取一未被遍历的Ic1维输入数据,记为Qli [kj, 将Qu [kj中Ic1维数据的各维值作为电流的密度值,将Ic1个电流分别输入到Ic1个数据输入点上,此时将所述Q1Jk1]标记为已经遍历的输入数据;同时存储数据输出点上获取磁场强度值或磁感应强度值作为输出值;步骤305、判断上述AXn1A输入数据是否都为已经遍历的输入数据,若是,进入步骤306,否则,返回步骤304 ;步骤306、判断上述Ii2个构建数据是否都为已经遍历的构建数据,若是,则进入步骤307,否则,返回步骤303 ;步骤307、获取本次循环中Ii2个构建数据所对应的Ii2组输出值,其中每组有AXn1 个输出值,以组为单位判断每一个输出值是否在其对应输入数据类型所确定的输出范围内,若是,则h不变,否则令B」等于B」加上差值Δ,其中所述差值Δ为输出值所对应的输出范围中和输出值最接近的值与输出值之差的平方;步骤308、选取误差量Bj中最小的一个,记为Bmin,并判断Bmin是否小于预设的ξ, 若是则进入步骤310 ;否则,进入步骤309 ;步骤309、判断迭代次数iter是否小于最大迭代次数Maxiter,如果是,令迭代次数iter加1,根据B」利用粒子群算法对Ii2个构建数据C^_[k2]进行更新,进入步骤303,如果不是,则进入步骤310 ;步骤310、将此时Bmin所对应的构建数据作为最优构建数据,利用最优构建数据作为电流的密度值选取k2个电流,将k2个电流输入到k2个构建磁场输入点上,依次将Qi [kj 从&个数据输入点上输入,并根据输出值所处的范围对输入的数据进行分类。
有益效果 本发明基于磁场利用多组模式识别的数据对多个构建数据进行训练,获取一个最优构建数据,利用该最优构建数据实现的模拟场计算机可以准确地对数据进行分类。其次,当处理多维数据时,通过选取模拟场计算机上数据输入点的个数,并在各点上输入各维数值所对应的电流,可实现对多维数据的各维进行同时处理。再次,本发明基于磁场实现的模拟场计算机,数据输入点和数据输出点的非线性效果好,因此可以实现对较为复杂数据进行处理;同时形成磁场的速度快,采用本发明数据处理速度快。


图1为本发明模拟场计算机的示意图。图2为本发明磁场计算模型示意图。图3为本发明一个实施例对构建数据进行验证的的流程图。图4为本发明另二个实施例对数据进行分类方法的流程图。
具体实施例方式下面结合附图对本发明进行进一步详细说明。本发明基于磁场实现模拟场计算机数据分类方法,用于对模式识别过程中获取的 Wfk1维数据QJk1]进行分类,其中,i = 1,21 1^屯,且仏[1^]中包含A种类型的数据。步骤一、在导磁介质薄膜上选取M1XM2个点垂直设置探针;如图1所示,较佳地选取虬=M2,且每相邻两点之间的距离相等,M1XM2个点构成了一个矩形阵列。从所述设置的探针中选取k2个探针作为构建磁场输入点,选取Ic1个探针作为数据输入点,选取一个探针作为数据输出点;其中,构建磁场输入点、数据输入点以及数据输出点为互不相同的点。由于探针设置在导磁介质薄膜上,因此当某一探针或某多个探针上有电流输入时,则在导磁介质薄膜上形成磁场,其它探针上具有磁场强度或磁感应强度的输出。本发明选取k2个探针作为构建磁场输入点,当需要进行分类的数据是由多种类型的多维数据组成时,则k2选取较大,当需要进行分类的数据是一组较为简单的数据,即包含的数据类型和维数都较少时,则1^2选取较小即可。例如本实施例中设ki等于4,A等于5, 即模式识别过程中获得的数据为包括5种类型的4维数据,则将k2选为4。由于Qi[kj为 Ic1维数据,分别代表了事物的Ic1个特征,因此选取Ic1个探针作为数据输入点,分别将各维数据作为电流的密度值,从数据输入点上输入各电流的密度值所对应的电流。例如,设本实施例中数据输出点上输出数据为磁场强度;当构建磁场输入点上的输入电流确定时,此时数据输入点上输入的电流会影响数据输出点上输出的磁场强度,使得数据输入点上输入的电流与数据输出点上输出的磁场强度之间存在一个非线性关系,进而可以根据数据输出点上的输出判断输入数据所对应的类型。上述非线性关系的证明如下假设电流I是一根穿过导磁介质薄膜的无线长直导线,电流的方向为垂直于导磁介质薄膜向外(定义为正向)。如图2所示,图中的圆代表磁力线。取磁场强度的幅度H为输出量,H=I/(2π ρ ),方向是磁力线的切线方向,ρ是输入点与输出点之间的距离。
如图2(a)所示,此时导磁介质 薄膜上有一个电流输入,则输出点的磁场强度 Hsum = ^Hx2+Hy2 ,其中Hx = -Hsina ,Hy = Hcos a,H为输入电流在输出点上产生的磁场强度,α是输入点和输出点连线与Χ轴的夹角。如图2(b)所示,此时导磁介质薄膜上有两个电流输入,则输出点的磁场强度 Hsum = ^Hx2 +Hy2Hx = -H1Sin a rH2sin a 2, Hy = H1Cos a !+H2Cos a 2, H1
入电流在输出点上产生的磁场强度,H2为第二输入电流在输出点上产生的磁场强度,a !是第一个电流输入点和输出点连线与χ轴的夹角,a 2是第二个电流输入点和输出点连线与χ 轴的夹角。假设薄膜有m个电流输入点(正向Vi = 0,负向Vi = 1),1个输出点,则输出点的磁场强度为Hsum = ^WJ = ^IlIj_
νP1Pj其中,Cii表示第i个电流输入点和输出点连线与χ轴之间的夹角,^表示第j个电流输入点和输出点连线与Χ轴之间的夹角;P i表示第i个电流输入点与输出点之间的距离,^第j个电流输入点与输出点之间的距离。由此可以看出,输出点的磁场强度和输入点的电流之间存在着非线性的关系。步骤二、随机生成Ii2个用于构建磁场的k2维构建数据Oj [k2],j = 1,2L Ln2,每个构建数据能够构建一个模拟场计算机;从QJk1]的每一类型数据中分别选取Ii1个数据作为输入数据;构建数据的元素值决定向构建磁场输入点输入电流的密度,输入数据中的元素值决定向数据输入点输入电流的密度,从数据输出点获取磁场强度值或磁感应强度值作为输出值。步骤三、对构建数据进行验证,其具体验证过程为针对每一构建数据,将各输入数据获取的电流输入到数据输入点上,从数据输出点上得到一组输出值;利用各组输出值和输出范围计算构建数据对应的误差,根据所述误差选取最优构建数据建立模拟场计算机,对QJk1]进行分类。在一个实施例中,如图3所示,对构建数据进行验证的具体过程为步骤201、设定每一类型输入数据对应的输出范围;步骤202、从Oj [k2]中选取一构建数据作为电流的密度值选取k2个电流,并将所述 k2个电流输入到k2个构建磁场输入点上;步骤203、针对每一个输入数据,利用其作为电流的密度值获取Ic1个电流,并将所述&个电流输入到Ic1个数据输入点上;步骤204、判断利用本循环选取的构建数据建立的模拟场计算机,针对每一输入数据所对应的输出值和输出范围计算构建数据对应的误差,判断所述误差是够满足预设条件,若是,则将本循环中构建数据作为最优构建数据建立模拟场计算机,对QJk1]进行分类,否则,返回步骤202。在另一个实施例中,如图4所示,本发明可以采用如下方式建立对数据进行分类具体过程为步骤Al、在导磁介质薄膜上选取M1XM2个点垂直设置探针;从所设置的探针中选取k2个探针作为构建磁场输入点,选取Ic1个探针作为数据输入点,选取一个探针作为数据输出点;其中,构建磁场输入点、数据输入点以及数据输出点为互不相同的点。 步骤A2、设置最大迭代次数为Maxiter,并设定A种类型数据中每一种类型所对应的输出范围[fa,fa+1],其中,a = 1,2L 5。例如第一种数据类型对应的输出范围为[f1;f2], 第二种数据类型对应的输出范围为[f2,f3],第三种类型数据类型对应的输出范围为[f3, f4]等,同时令迭代次数iter = 0。步骤A3、利用粒子群算法随机生成 个用于构建磁场的构建数据,Oj [k2],j = 1, 2L Ln2,其中每个构建数据的维数为k2维,n2个构建数据两两互不相同,且每个构建数据对应一个误差量Bp令h = 0。本步骤中所使用的粒子群算法为近来发展的一个较为成熟的技术,它是从随机解出发,通过迭代寻找最优解,本发明中优化变量对应着构建磁场的构建数据。粒子群算法粒子值更新公式ν (t+1) = w*v (t) +C1^rl* (pb (t) _x (t)) +c2*r2* (pg (t) _x (t))χ (t+1) = χ (t)+ν (t+1)这里的t就是指迭代的次数。ν是指粒子的速度,χ是指粒子的位置。PSO算法参数选择

拓扑结构W
编码实数
种群大小η2
粒子维数k2
搜索空间[-1000,1000]
惯性参数%0.9
加速度因子q, C22C1, C2是加速系数(或称学习因子),分别调节向全局最好粒子和个体最好粒子方向飞行的最大步长,若太小,则粒子可能远离目标区域,若太大则会导致突然向目标区域飞去,或飞过目标区。合适的C1, C2可以加快收敛且不易陷入局部最优。当(^ (32时,粒子的工作效率最高,通常取C1 = C2 = 2。用惯性权重w来控制前面的速度对当前速度的影响,较大的w可以加强PSO的全局搜索能力,而较小的W能加强局部搜索能力。实际结果表明,W在
之间有更快的收敛速度。迭代次数为了得到一个好的解,所需要的迭代次数也依赖于具体问题。太少的迭代可能使得算法早熟,而太多的迭代次数会增加计算的负担。
种群大小大数量的种群可以在每一次迭代中都能搜索空间中更大的区域,同时也将增大算法的计算量,以及降低并行随机搜索的性能。研究经验表明,10-30个粒子为最佳。但仍依赖于具体要解决的问题,在该问题的求解中,实验结果表明,取15个粒子效果最
佳搜索空间(邻域大小)邻域越小,交流越少,收敛较慢,不过它的收敛更能可靠的找到最优解,同时不容易陷入局部极值。步骤A4、利用未被遍历的构建数据 [k2]作为电流的密度值选取k2个电流,将所述k2个电流输入到k2个构建磁场输入点上,此时将On [k2]标记为已经遍历的构建数据, η e {1,2L L n2}。由于无法确定每个构建磁场输入点上所需输入电流的大小,才能对输入数据进行准确的分类,因此利用粒子群算法随机生成的H2个构建数据,并对模式识别过程获取的Ψ 个包含A种类型的Ic1维数据,针对每一类型分别选取Ii1个已知类型的数据,得到AXn1数据作为输入数据来对构建数据进行训练(学习),以便获得一个最优的构建数据,具体过程如下。步骤A5、利用未被遍历的输入数据Q1Jk1]作为电流的密度值选取&个电流,将所述&个电流输入到Ic1个数据输入点上,此时将Qli [kj标记为已经遍历的输入数据, μ e {1,2,3L LAXnJ ;同时存储数据输出点上获取的输出值。步骤A6、判断上述AXn1A输入数据是否都为已经遍历的输入数据,若是,说明针对于每一个输入数据都已经获得一个输出值,则进入步骤A7,否则,返回步骤A5。步骤A7、判断上述Ii2个构建数据是否都为已经遍历的构建数据,若是,则进入步骤 A8,否则返回步骤A4。因为需要对Ii2个用于构建磁场的构建数据进行判断,以便选取最优构建数据,因此需要针对每一个构建数据,利用所选取的AXn1个输入数据进行训练。步骤A8、获取本次循环中H2个构建数据所对应的n2组输出值,其中,每组有A X Ii1 个输出值,以组为单位判断每一个输出值是否在其对应输入数据类型所确定的输出范围内,若是,则令h不变,否则令B」等于B」加上差值Δ,其中所述差值Δ为输出值所对应的输出范围中与输出值最接近的值与输出值之差的平方。下面列举一详细的例子进行说明设模式识别过程中获得5种类型数据,每种输入数据对应的输出范围为,第一种输入数据的输出范围为
,第二种输入数据的输出范围为[20,40],第三种输入数据的输出范围为[40,60],第四种输入数据的输出范围为[60,80],第五种输入数据的输出范围为[80,100]。针对每种类型数据选取20个作为输入数据,则总共包含100个输入数据, 对上述100个输入数据所对应的输出值进行判断。若对于第一组构建数据,输入数据中的第一个为第一种类型时,其输出值为25.3则其不再W,20]范围之内,于是令B1等于B1加上I 25. 3-20 I,继续对输入数据中的第二个进行判断,依次类推。步骤A9、选取步骤A8获得的误差量Bj中最小的一个,记为Bmin,并判断Bmin是否小于预设的ξ,若是则进入步骤AlO ;否则,进入步骤All。步骤A10、判断迭代次数iter是否小于最大迭代次数Maxiter,如果是,令迭代次数iter加1,根据B」利用粒子群算法对Ii2个构建数据(^.[k2]进行更新,进入步骤A3,如果不是,则进入步骤All。 其中,ξ为根据需要设定的阈值;因为当最小重叠量之和小于ξ后,则说明此时根据Bmin对应的构建数据所构建的磁场可以实现对输入数据较为准确的分类,否则进入步骤A3继续寻找最优的构建数据。本发明中所用的粒子群算法中的pg为本次循环相邻两个构建数据中较优的一个,即相邻两个构建数据中对应B」较小的一个,pb为上次循环第j个构建数据与这次循环第j个构建数据中较优的一个,即两构建数据中对应B」较小的一个。步骤All、将此时Bmin所对应的构建数据作为最优构建数据,利用最优构建数据作为电流的密度值选取k2个电流,将所述k2个电流输入到k2个构建磁场输入点上,依次将 QiLkJ从&个数据输入点上输入,并根据输出值所处的范围对输入的数据进行分类。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于磁场实现模拟场计算机数据分类方法,用于对模式识别过程中获取的Ψ 个&维数据Qi[kJ进行分类,其中,i = 1,21 Ψ, ^QiLk1]中包含A种类型的数据;其特征在于,具体步骤为步骤一、在导磁介质薄膜上选取M1XM2个点垂直设置探针;从所设置的探针中选取k2 个探针作为构建磁场输入点,选取&个探针作为数据输入点,选取一个探针作为数据输出点;其中,构建磁场输入点、数据输入点以及数据输出点为互不相同的点;步骤二、随机生成n2个用于构建磁场的k2维构建数据A[k2],j = 1,2L Ln2,每个构建数据能够构建一个模拟场计算机;从QJk1]的每一类型数据中分别选取Ii1个数据作为输入数据;构建数据的每维值决定向构建磁场输入点输入电流的密度,输入数据中的每维值决定向数据输入点输入电流的密度,从数据输出点获取磁场强度值或磁感应强度值作为输出值; 步骤三、对构建数据进行验证,其具体验证过程为针对每一构建数据,设定每一类型输入数据对应的输出范围;将根据各输入数据获取的电流输入到数据输入点上,从数据输出点上得到一组输出值;利用各组输出值和输出范围计算各构建数据对应的误差,根据所述误差选取最优构建数据建立模拟场计算机对Qi[kj进行分类。
2.根据权利要求1所述的数据分类方法,其特征在于,所述验证的过程为步骤201、设定每一类型输入数据对应的输出范围;步骤202、从A[k2]中选取一未遍历的构建数据作为电流的密度值选取1^2个电流,并将所述k2个电流输入到k2个构建磁场输入点上,并将获取的构建数据标记为已遍历的构建数据;步骤203、针对每一个输入数据,利用其作为电流的密度值获取Ic1个电流,并将所述Ic1 个电流输入到h个数据输入点上;步骤204、判断利用本循环选取的构建数据建立的模拟场计算机,针对每一输入数据所对应的输出值和输出范围计算构建数据对应的误差,判断所述误差是否满足预设条件,若是,则将本循环中构建数据作为最优构建数据建立模拟场计算机对QJk1]进行分类,否则, 返回步骤202。
3.根据权利要求1所述的数据分类方法,其特征在于,所述步骤二和步骤三的具体过程为步骤301、设置最大迭代次数为Maxiter,并设定A种类型数据中每一种类型所对应的输出范围,同时令迭代次数iter = 0 ;步骤302、利用粒子群算法随机生成Ii2个用于构建磁场的构建数据(^.[k2],j = 1,2L Ln2,每个构建数据的维数为k2,Ii2个构建数据两两互不相同,且每个构建数据对应一个误差量Bp令B」=0 ;从QJk1]的每一类型数据中分别选取Ii1个数据作为输入数据;步骤303、从n2个OjEk2]中选取一未被遍历的k2维构建数据,记为On [k2],将OJk2] 中k2维数据的各维值作为电流的密度值,将k2个电流分别输入到k2个构建磁场输入点上, 此时将所述OJk2]标记为已经遍历的构建数据;步骤304、从AXn1个输入数据中选取一未被遍历的Ic1维输入数据,记为Qli [kj,将 Qu [kj中Ic1维数据的各维值作为电流的密度值,将Ic1个电流分别输入到Ic1个数据输入点上,此时将所述 [1^]标记为已经遍历的输入数据;同时存储数据输出点上获取磁场强度值或磁感应强度值 作为输出值;步骤305、判断上述AXn1个输入数据是否都为已经遍历的输入数据,若是,进入步骤 306,否则,返回步骤304 ;步骤306、判断上述Ii2个构建数据是否都为已经遍历的构建数据,若是,则进入步骤 307,否则,返回步骤303 ;步骤307、获取本次循环中Ii2个构建数据所对应的Ii2组输出值,其中每组有AXn1个输出值,以组为单位判断每一个输出值是否在其对应输入数据类型所确定的输出范围内,若是,则h不变,否则令B」等于B」加上差值Δ,其中所述差值Δ为输出值所对应的输出范围中和输出值最接近的值与输出值之差的平方;步骤308、选取误差量&中最小的一个,记为Bmin,并判断Bmin是否小于预设的ξ,若是则进入步骤310 ;否则,进入步骤309 ;步骤309、判断迭代次数iter是否小于最大迭代次数Maxiter,如果是,令迭代次数 iter加1,根据B」利用粒子群算法对Ii2个构建数据Oj [k2]进行更新,进入步骤303,如果不是,则进入步骤310 ;步骤310、将此时Bmin所对应的构建数据作为最优构建数据,利用最优构建数据作为电流的密度值选取k2个电流,将k2个电流输入到k2个构建磁场输入点上,依次将Qi [kj从Ic1 个数据输入点上输入,并根据输出值所处的范围对输入的数据进行分类。
4.根据权利要求1所述的数据分类方法,其特征在于,所述M1 = M2,且每相邻两点之间的距离相等,M1XM2个点构成了一个矩形阵列。
全文摘要
本发明公开了一种基于磁场实现模拟场计算机的数据分类方法,在导磁介质薄膜上选取M1×M2个点垂直设置探针;从所设置的探针中选取k2个探针作为构建磁场输入点,选取k1个探针作为数据输入点,选取一个探针作为数据输出点;随机生成n2个用于构建磁场的k2维构建数据Oj[k2],j=1,2L Ln2,每个构建数据能够构建一个模拟场计算机;从Qi[k1]的每一类型数据中分别选取n1个数据作为输入数据;构建数据的每维值决定向构建磁场输入点输入电流的密度,输入数据中的每维值决定向数据输入点输入电流的密度,从数据输出点获取磁场强度值或磁感应强度值作为输出值;对构建数据进行验证,选取最优构建数据获取模拟场计算机实现数据分类。采用本发明对数据分类速度快且准确率高。
文档编号G06K9/62GK102222233SQ20111017442
公开日2011年10月19日 申请日期2011年6月24日 优先权日2011年6月24日
发明者张哲 , 张锐, 李位星, 李振旭, 潘峰, 隆婷, 高岩, 高琪 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1