一种基于奇异值分解的主成分分析算法的硬件电路及方法

文档序号:33101222发布日期:2023-02-01 00:43阅读:42来源:国知局
一种基于奇异值分解的主成分分析算法的硬件电路及方法

1.本发明属于数字集成电路设计领域,具体为非监督学习的降维算法的数字硬件电路设计,即一种基于奇异值分解的主成分分析算法的硬件电路。


背景技术:

2.数据降维是一个从初始高纬特征集合中选出低维特征集合,以便于根据一定的评估准则最优化缩小特征空间的过程,通常作为机器学习的预处理步骤。近几年以来,在许多应用中,数据的实例数目和特征数目都急剧增加,这种大量的数据使得机器学习算法在可测量性和学习性能方面产生了严重的问题。高维数据具有成百上千特征的数据集,包含了大量的无关信息和冗余信息,这些信息极大地降低了学习算法的性能。因此,当面临高维数据时,降维显得十分重要。按照是否使用样本的标签值,可以将降维算法分为有监督降维和无监督降维。有监督降维算法使用了样本标签值,其典型代表是线性判别分析算法(linear discriminant analysis,lda);无监督降维算法不使用样本标签值,其典型代表是主成分分析算法(principal components analysis,pca)。
3.主成分分析算法(principal components analysis,pca)是一种降维算法,通过向量变换的方法将众多线性相关指标转换成少数线性无关的综合指标,从而切断相关的干扰,指出主导成分,做出更准确的估量。
4.主成分分析算法的核心在于对数据矩阵求解特征值和特征向量,目前的主成分分析算法主要使用的是基于特征值分解的方法来实现主成分分析算法,这种方法计算量大,导致硬件实现的面积开销很大,运算速度慢。采用奇异值分解的方法可以节省硬件面积和运算时间。
5.主成分分析算法既可以用软件实现,也可以用硬件实现,其中,硬件实现方式运行速度快,安全性高。目前的基于奇异值分解的主成分分析算法的硬件实现中,奇异值分解主要由已有的ip核来完成,这导致了该模块的灵活性和可移植性变差,且有可能会造成硬件资源的浪费。


技术实现要素:

6.本发明旨在解决以上现有技术的问题。提出了一种基于奇异值分解的主成分分析算法的硬件电路。本发明的技术方案如下:
7.一种基于奇异值分解的主成分分析算法的硬件电路,其包括:控制模块、henstense模块、cordic模块、雅可比旋转模块和一个乘法器模块,其中,
8.控制模块用于控制各个模块的时序、数据流和工作状态;
9.hestense模块用于计算cordic模块所需的参数err和y-x;
10.cordic模块用于计算反三角函数,由多路选择器、寄存器和移位寄存器搭建构成,cordic模块接收来自hestense模块计算出的y-x和err的数值,数值进入第一个处在向量模式的cordic模块,计算对应ai和aj的旋转角,将角度输入至处于旋转模式的第二个cordic模
块,输出正弦值sinθ和余弦值cosθ;
11.雅可比旋转模块用于计算输入数据的正交化结果,由四个乘法器、一个加法器和一个减法器构成,其中四个乘法器进行并行运算,有四个输入端口,分别计算ai、aj和它们对应的正余弦值的乘积,将得到的四个结果输出至加法器和减法器,得到对应的正交化结果ci和cj。
12.进一步的,所述hestense模块由第一乘法器、累加器、寄存器、移位器和第一双端口ram、第二双端口ram(为了区分)搭建构成,第一双端口ram的输入端与多路选择器的输出端相连接,所述第一双端口ram的输出端与第一乘法器的输入端相连接,第一乘法器的输出端与累加器相连接,累加器通过第二双端口ram与加法器相连接,当数据从存储器中按向量格式取出,顺序输入至hestense模块的输入端记作ai,此时aj输入端按顺序输入数组中的每一行向量,分别与ai进行运算;首先,两个向量进行相乘,即两个向量中的元素进行乘累加运算;其次,当ai与自身做乘累加运算时输出为x,aj与自身做乘累加运算输出为y,ai与aj做乘累加运算输出为err,当err小于预设值时,标志着正交化运算完成。
13.进一步的,所述雅可比旋转模块通过单边雅可比旋转的计算方法来实现主成分分析算法中特征值的计算。
14.进一步的,所述雅可比旋转模块通过单边雅可比旋转的计算方法来实现主成分分析算法中特征值的计算,具体包括以下步骤:
15.对任意矩阵进行旋转计算,每一轮的迭代都要使数据集的任意两列数据正交一次,直到输出的值是正交的;
16.a=usv'
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(0.1)
17.则有
18.av=us
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(0.2)
19.其中,a为输入数据集组成的矩阵;s为输入矩阵对应的奇异值;u为左奇异向量;v为右奇异向量;观察到等式右边是一个正交矩阵,因此,通过一系列的线性变换将矩阵a转换成正交矩阵就是雅可比旋转的核心;
[0020][0021]
表示计算后得到的正交化向量;表示输入的第i或j行的向量,θ表示正交化向量对应的旋转角,可得
[0022][0023][0024]
cordic旋转模式下计算正余弦值
[0025]
[0026]
x0、y0表示输入的两个初始向量、xn、yn分别表示余弦值和正弦值、zn表示叠加后的角度(旋转模式下设置为0)、kn表示伸缩因子、z0表示旋转角度、n表示矩阵的行数或列数、i表示迭代次数,进而可得
[0027][0028]
将输入数据通过双端ram转换成对矩阵的计算,而对矩阵的计算采用了单边雅可比旋转的计算方式,每次迭代中使用舍入计算特征值来保证计算的正确性,并使用非恢复平方根算法来保证精度;输入数据转为矩阵运算后,通过hestense模块进行矩阵的转置,并扩展成了可以进行任意大小形状的矩阵计算;当hestense中设置的正交化误差达到预定义的收敛值时,表明数据集所生成的矩阵中的所有行是正交的。
[0029]
一种基于硬件电路的实现方法,其包括以下步骤:
[0030]
(1)通过控制模块控制将输入的数据参数送入到hestense模块中进行计算;
[0031]
(2)hestense模块对输入的参数进行乘累加操作;
[0032]
(3)cordic模块根据hestense模块输出的结果计算出对应的正弦值和余弦值;
[0033]
(4)雅可比旋转模块根据cordic模块计算的正弦值和余弦值,计算出系统输入参数对应的正交化结果,并反馈至hestense模块参与计算。
[0034]
本发明的优点及有益效果如下:
[0035]
1、本发明的一种基于奇异值的主成分分析算法的硬件电路,通过使用verilog硬件描述语言搭建主成分分析算法硬件电路的rtl级模型,提供了全硬件实现架构。
[0036]
2、本发明的一种基于奇异值的主成分分析算法的硬件实现方法在传统的主成分分析算法的基础上,采用了由hestense电路模块、cordic电路模块和雅可比旋转电路模块构成的单边雅可比旋转计算模块,对矩阵进行了奇异值分解运算,求得特征值,通过应用cordic模块来实现单边雅可比旋转算法的硬件结构,提供了一种数学计算的逼近方法来求解奇异值分解,将奇异值分解计算分为了一系列的加减和移位操作,与传统的实现方法相比速度可以提高15%,面积可以降低20%。
[0037]
3、本发明的一种基于奇异值分解的主成分分析算法的硬件电路,通过第一双端ram和hestense模块的组合可以输入任意维度、大小的数据,减少了数据传输和运算的时钟周期消耗,提高了算法硬件执行的性能。
[0038]
4、本发明的一种基于奇异值分解的主成分分析算法的硬件电路主要是通过hestense电路模块、cordic电路模块和雅可比旋转电路模块组合的方式,来实现主成分分析算法中通过使用单边雅可比旋转求解奇异值和特征值,相较于传统的主成分分析算法的硬件结构,减少了硬件结构中乘法器、加法器的数量,以及避免了除法器的使用,使得算法的计算得到了简化,因此计算速度更快,消耗的硬件资源更少。
[0039]
5、本发明的一种基于奇异值分解的主成分分析算法的硬件电路通过使用双端ram、乘法器和累加器构成的hestense电路模块,仅使用了两个数据输入端口,使得数据实现了重用,以此来优化了计算方法。
附图说明
[0040]
图1是本发明提供优选实施例的硬件系统的硬件结构图;
[0041]
图2是本发明的hestense模块的硬件结构图;
[0042]
图3是本发明的cordic模块的硬件结构图;
[0043]
图4是本发明的雅可比旋转模块的硬件结构图。
具体实施方式
[0044]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
[0045]
本发明解决上述技术问题的技术方案是:
[0046]
一种基于奇异值分解的主成分分析算法的硬件实现系统,包括控制模块、存储模块、hestense模块、cordic模块、雅可比旋转模块和乘法器模块;控制模块与存储模块、hestense模块和雅可比旋转模块相连,存储模块与hestense模块相连,hestense模块与cordic模块相连,cordic模块与雅可比旋转模块相连;
[0047]
进一步的,控制模块提供同步和控制信号,使得每个模块执行不同的任务;
[0048]
进一步的,存储模块使用了双端口的ram,用来管理存储输入的数据集,使其可以以向量的形式进行存取和运算;
[0049]
进一步的,hestense模块包括了一个乘法器、一个累加器、一个双端口ram和一个加法器,其负责将输入的数据进行乘法和累加操作,计算出cordic模块所需要的参数,并且对雅可比旋转模块的反馈值进行判断;
[0050]
进一步的,cordic模块包括了乘法器、加法器、寄存器和移位器,其利用hestense模块计算出的参数,计算出对应的正弦值和余弦值,用于雅可比旋转模块进行雅可比旋转运算;
[0051]
进一步的,雅可比旋转模块包括了4个乘法器、1个加法器和1个减法器,4个乘法器同时进行运算,并将结果输出至加法器或减法器,计算出输入参数对应的正交化结果;
[0052]
进一步的,在hestense模块中对正交化结果进行误差判断,将所计算得到的β值与定义好的收敛误差比较,β值小于误差时将结果输出至乘法器,与数据集相乘得到主成分值,否则继续参与运算。
[0053]
图1展示了主成分分析算法的算法架构,该算法由hestense计算、cordic计算、雅可比旋转计算和乘法计算四部分组成,前者的计算结果分别作为后者的计算基础。
[0054]
算法的关键参数主要包括hestense模块输出的α和β,以及cordic模块输出的cosθ和sinθ。其中β的大小决定了算法的运算次数。
[0055]
目前暂未见主成分分析算法的全硬件实现架构。本发明旨在提供一种主成分分析算法的全硬件实现方案,从而提升主成分分析算法在芯片以及fpga层面的实现、应用和产业化。
[0056]
图2所示的hestense模块对输入参数计算对应的α和β值的同时,对雅可比旋转模块反馈回来的数值进行判断,若反馈回的数值所计算出的β小于预设的收敛误差值则可直接输出,反之,继续参与计算,直到所计算出的β值小于预设值为止。该模块的操作基于将数据集的计算转换为向量间的乘法运算。
[0057]
图3所示的cordic模块由两级功能不同的cordic模块级联构成,第一个cordic模块处于矢量模式,用于计算每个雅可比旋转计算的旋转角度;第二个cordic模块处于旋转模式,用于同时计算相应旋转角度的正弦值和余弦值。
[0058]
图4所示的雅可比旋转模块采用的是单边雅可比方法对数据集进行单边正交旋转计算,且可以对任意矩阵进行旋转计算。每一轮的迭代都要使数据集的任意两列数据正交一次,直到输出的值是正交的。
[0059]
a=usv'
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(0.8)
[0060]
则有
[0061]
av=us
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(0.9)
[0062]
我们观察到等式右边是一个正交矩阵,因此,通过一系列的线性变换将矩阵a转换成正交矩阵就是雅可比旋转的核心。
[0063][0064]
可得
[0065][0066][0067]
cordic旋转模式下计算正余弦值
[0068][0069]
进而可得
[0070][0071]
将输入数据通过双端ram转换成对矩阵的计算,而对矩阵的计算采用了单边雅可比旋转的计算方式,每次迭代中使用了舍入计算特征值来保证计算的正确性,并使用非恢复平方根算法来保证精度。输入数据转为矩阵运算后,通过hestense模块进行矩阵的转置,并扩展成了可以进行任意大小形状的矩阵计算。当hestense中设置的正交化误差达到预定义的收敛值时,表明数据集所生成的矩阵中的所有行是正交的。因为矩阵中任意两行向量都要彼此正交,算法才可以收敛,因此一共需要对a进行n(n-1)/2次旋转。cordic模块用于求出输入的矩阵的两个行向量的正余弦值,并将正余弦值传输到雅可比旋转模块,通过平面旋转得到一个新的向量,并对原矩阵中的行向量进行更新,直到矩阵中所有的行向量全部正交为止。再将更新后的行向量进行筛选,乘以原矩阵,就可以得到降维后的数据集。
[0072]
该算法主要应用于:1、解决多元线性回归中变量间的共线问题;2、因子分析、聚类
分析、判别分析中用于减少变量个数,即降维;3、在综合评价问题中,作为确定变量权重的依据。具体可体现为在处理大量数据集时,消除无关数据、冗余数据和变量之间的相关性。奇异值分解由单边雅可比算法实现,且使用了cordic模块对单边雅可比算法做了优化。
[0073]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0074]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0075]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0076]
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1