一种基于t混合因子分析的分布式手写数字识别方法

文档序号:9274933阅读:341来源:国知局
一种基于t混合因子分析的分布式手写数字识别方法
【技术领域】
[0001] 本发明涉及一种基于t混合因子分析的分布式手写数字识别方法,属于数据的并 行分布式处理方法与应用的技术领域。
【背景技术】
[0002] 目前,手写数字识别是模式识别范畴内一个极具挑战性的一个课题,主要研宄的 是使计算机能够自主辨认人手所写的数字。手写数字识别在很多方面都有应用,如:对于大 规模数据统计、财务、税务、金融及邮件分拣等多方面都得到广泛的应用。目前有已有多种 方法实现了手写数字识别。但是当数据量较大时,单个计算机无法快速有效的进行处理,因 此需要将手写数字数据分成多个部分,分别存储在不同的计算机上,通过设计计算机之间 的协作方法,从而实现了数据的分布式处理。
[0003] 在模式识别、机器学习领域,手写数字识别属于有监督学习的范畴。在训练阶段, 基于有标记的样本,建立并训练能够描述手写数字特征数据的分布的模型,在接下来的识 别阶段,将待识别的数字特征数据和训练好的代表各类特征模型进行比对,从而找到最合 适的模型,作为最终的识别结果。在需要进行分布式处理的场景中,在训练阶段,如何通过 计算机节点间的协作,使得每个计算机节点能够充分利用其他各计算机节点的数据,从而 估计出一致的模型;在识别阶段,是否可以将待识别手写数字数据输入任意一个节点,都可 以获得正确的识别结果,十分关键。本发明提出的方法可以有效地解决上述问题,获得很好 的识别正确率。

【发明内容】

[0004] 本发明目的在于解决了现有技术的缺陷,提出了一种在传感器网络中基于混合因 子分析模型的分布式聚类方法。
[0005] 本发明解决其技术问题所采取的技术方案是:一种基于t混合因子分析的分布式 手写数字识别方法,该方法包括如下步骤:
[0006] 步骤1 :数据的采集与特征提取;
[0007] 设有M台计算机/计算节点(即:节点),组成一个网络,第m个节点通过与之相 连的手写板采集到来自数字〇~9,共10个类的原始数据,手写板自动记录各个字符书写轨 迹上各个点的二维坐标位置,在轨迹上等间隔地取8个点的坐标(七,乃,U乍为每个原始数 据所对应的特征数据s,共16维。为了表示方便,设节点m处采集并经过特征提取得到的数 字d的训练数据集为W=〇,1,…,9),其中表示节点!!^,用于训练的手 写数字d的第n个特征数据,维度为p,iVf为数字d的训练数据个数。
[0008] 用t混合因子分析模型(tMFA)来描述SfW=j= 的分布,注意,所 有节点处关于数字d的训练数据公用同一个tMFA来建模。tMFA为一个成分数为I的混合 模型;对于每一数据,其可以表示为:
[0009]
[0010] 其中,h为第i个混合成分的的均值矢量,维度为P;义t为与〇目对应的低维 空间中的因子,它的维数为q(q<<P),服从服从t分布|0,It/,l^,q的值根据具体 问题中P的大小进行选取,一般取q=p/5~p/3之间的任意整数;Ai为第i个混合成分的 ⑦父心的因子载荷矩阵:误差变量^二月艮从七分布+匕^卫^卜其中口土为⑦父⑴的对 角矩阵,vi为第i个混合成分的自由度;各混合成分的权重Jii满足;I;. 2 0, ^^=1巧=1;那么
tMFA的参数集合0为{jr^Ai,i^Di,Vi}i= 1,。注意,对于所有节点,其待估计的tMFA参数集合中各个参数值相同。这里需要说明的是t分布可以展开成高斯分布和Ga_a分布 的积分:
[0011]
[0012]
[0013] 其中,d?是与对应的积分隐变量。
[0014] 此外,每个节点的数据传输范围设为Dis,对于当前节点m,所有与其距离小于Dis 的节点为其邻居节点,节点m的邻居节点集合表示为Rm。图1中表示了某个网络中各节点 之间的关系,其中电脑图标表示节点,如果两个节点之间有边相连,则表示两个节点之间可 以互相通信,传输信息。图1中的虚线框表示节点的m的^。在本发明中,网络拓扑事先确 定好,只需要保证任意两个节点之间至少存在一条直接或经多跳可以到达的路径即可。
[0015] 步骤2 :分布式训练,将S,(/h=K....MW= 0,...,9)用于分布式训练,得到每类数字 d所对应的tMFA参数集合 = {<>,〇广,叱>,W= 0,...,9);
[0016] 网络拓扑和描述数据分布的tMFA建立好之后,则开始分布式训练。这里以数字d 的训练为例,训练过程如图2所示,其具体步骤如下:
[0017] 步骤2-1:初始化;设定tMFA中的混合成分数I。这里的I决定了tMFA模 型的复杂度,I可以取3~8中的任意整数,在手写数字识别中取I= 5可以获得较 好的性能。根据I和数据的维度P来设定MFA中参数的初始值。其中,各节点处的 …,从该节点采集到的数据中随机选 取;{八;1,...,八丨,...,¥丨和{0;),...,埘,...,0〗}中的每个元素都从标准正态分布以0,1)中生成; 彳=…=vf=…= !/〗,该组参数取1~5之间的任意整数。此外,每个节点1 (1 = 1,. . .,M) 将其采集到的数据个数M(rf)广播给其邻居节点。当某个节点m收到它的所有邻居节点广播 来的数据个数之后,该节点计算权重clm:
[0018]
[0019] 该权重的含义为用于衡量节点m的各邻居节点1 (1eRJ每次传输的信息在节点 m处的重要性。初始化完成后,迭代计数器iter= 1,开始迭代过程。
[0020] 步骤2-2 :计算局部统计量并广播;此步骤不需要邻居节点的信息。在每 个节点1处,基于其采集到的数据Sf,首先计算出h。i,d〈^〉和
[0027] 其中{<W,Afd,
为前一次迭代完成之后得到的参数值(即:首次 迭代时为参数的初始值{?,/if,D>;^~表示节点1处第n个数据C属于第 i个类(即:混合成分)的概率,<叫(义>为^;;丨,的期望值。
[0028] 有了上述变量的计算结果,节点计算出局部统计量 (LS) LS, yLSrmLSp^LSM/LLSpmLS:/1[吼^
[0034] 最后,每个节点1将计算好的局部统计量LSJ^播扩散给其邻居节点,如图1所示。
[0035] 步骤2-3 :计算联合统计量;当节点m(m= 1,. . .,M)收到来自其所有邻居节点 1 (1GRm),节点m计算出联合统计

[0041] 步骤2-4 :估计模型中的各参数;节点m(m= 1,. . .,M)根据上一步计算出的CSm, 估计出各参数@ = 1>1^,1^,01^上=1,...,1,其中,{3^,11上 =1,...,1的估计过程如下:
[0048] 此外,对于,通过解下面的方程来得到:
[0049]
[0050] 其中步(?)为标准的digamma函数,具体求解采用牛顿法。
[0051] 步骤2-5 :判断是否收敛;节点m(m= 1,. . .,M)计算当前迭代iter下的对数似然 值:
[0052]
[0053]如果log/KSif| ?)-10°ld)<匕则算法收敛,停止迭代;否则执行步骤 2-2,开始下一次迭代(iter=iter+1 ;)。其中0表示当前迭代估计出的参数值,0°1(1表 示上一次迭代中估计的参数值。即,相邻两次迭代的对数似然值小于阈值e,算法收敛。e 取1(T5~1(T6中的任意值。值得注意的是,由于网络中各节点是并行处理数据,因此所有不 可能在一次迭代中同时收敛。例如,当节点1已经收敛而节点m尚未收敛时,贝1」节点1不再 发送L&,也不再接收邻居节点传输的信息。节点m则用最后一次收到的节点1发来的LSi 更新其CSm。未收敛的节点继续迭代,直至网络中所有节点都收敛。
[0054] 经过上述步骤2-1~步骤2-5之后,由手写数字d的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1