没有合适的资源?快使用搜索试试~ 我知道了~
基于高阶奇异值分解的手写数字分类
需积分: 22 8 下载量 50 浏览量
2018-12-12
21:45:09
上传
评论
收藏 1.07MB DOC 举报
温馨提示
试读
16页
基于高阶奇异值分解的手写数字分类
资源推荐
资源详情
资源评论
基于高阶奇异值分解的手写数字分类
摘要
在这篇文章中,我们提出了两个基于高阶奇异值分解(HOSVD)的手写数字分类的
算法。第一个算法用 HOSVD 进行类模型的建立,使得分类结果的错误率小于 6%。第二
种算法用 HOSVD 同时在两个模型中进行张量近似。第二种算法在把原始数据减少约 98%
后,仍然使分类的错误率小于 5%。两种算法在进行分类的检验阶段,都是通过一系列最
小方差来实现分类的。从计算量的角度考虑,第二种算法是第一种算法效率的两倍。
1、简介
手写数字的自动分类常被看是一个标准的模式识别问题,它包含了这一领域的很多难
点。由于同一类中各个对象之间的变化非常大,同时不同类之间的对象有非常相似,所以
把一个未知的数据划分到十个确定类别中的某一个是一个非常困难的过程。
解决这一问题有许多不同的方法,例如:主成分分析法( PCA)、支持向量法
(SVM)、最邻近法和 k-临近法,回归、统计模型和神经网络等。关于不同模式识别方法
的研究可以再参考文献[1,2]中查阅。对于手写数字分类的不同算法的比较可以在参考文献
[3]中找到。其中,表现最好的算法是基于神经网络和在局部仿射变换下测量不变性的正切
距离方法来实现的。其他算法可以再参考文献[6,7,8]中查阅。通常,表现好的算法表述比
较复杂或者计算量非常的。
在这篇文章中,我们提出了两种结果很好,同时比较简单、高效的算法。这两种算法
都是基于对张量的 HOSVD。第一种算法通过 HOSVD 计算得到每一个类的一个小的基矩阵的
集合,这个集合包含了这个类中所有数据的主要的子空间。这些子空间然后用来描述未知
的数据。这个算法和 SIMCA、PCA 比较类似。第二种算法使用 HOSVD 对训练集合进行压缩。
每个类的模型都是通过压缩的训练集合建立的,分类的过程和第一个算法相同。它的优点
有两个:一个是各个类的模型的描述需要的内存更少,另一个是在结果没有变差的情况下
算法更加高效。这个算法即使在训练集合压缩 98%后仍然能使分类的错误率小于 5%。
近年来,应用张量方法解决问题在模式识别和其他各个领域引起了越来越多的关注。
我们所说的张量是指多维的或多模的数组。通常,数据是一种多维的结构,把它们存储在
矩阵或者向量中不是很合理。一个简单的例子就是一组时间序列的图像。每一幅图像都是
一个二维的数据数组,把不同时间序列的图像放在一起共同构成了一个张量。通常,这种
方法有利于在存储数据的过程中不破坏内在的多维间的结构。张量方法在化学测量和心理
测量已经应用了很长时间。最近,HOSVD 已经应用到人脸识别。
在这篇文章中,我们使用 USPS 数据库中的手写数字对我们提出的算法进行测试。这些
数字是从信封上扫描的到的大小为 16 16 的灰度图像。这个数据库被广泛应用到分类算分
的测评中。
这篇文章后面的部分是这样安排的:第二部分包含张量概念的介绍以及一些本文提出
的算法所涉及的张量理论的结论。第三部分论述了两种算法。第四部分对数据的测试进行
了论述,并对数据集合进行了更加详细的介绍。
这些算法将使用伪 matlab 代码进行演示。因此,在代码例子中我们将使用 A(I,j,k)这个
记号代表 a
ijk
。同样,在式子中我们也将用一些 matlab 类型的符号。例如,我们定义 1 维-
模指三阶张量 A 按照 的列向量展开。其它维的模的定义非常明显。因此,维是通
过固定其中出了一个之外的所有参数来定义的。类似的,我们定义一个张量的部分是固定
其中的一个参数来确定的子张量。
2、张量的概念
粗略地说,一个 N 阶张量就是一个对象包括 N 个参数。张量的维是指张量的模。向量
和矩阵可以分别看作是一阶和二阶的张量。在这篇文章中,我们应用的是三阶张量。因此
为了描述方便,在这节中我们的一些理论的论述仅仅针对三阶张量
I,J,K 是正整数; 的向量空间的维数是 IJK。通常的任意维的张量的概念也与此类似。
设 是普通的欧式空间几何。定义张量 的标量乘积为
两 个 张 量 A,B 正交是指它们的标量乘积等于零
张量 A 的模定义为
张量和矩阵的标量乘积和模的定义与此相类似。
有时常将一个张量重新排列成一个矩阵。我们把这个过程叫做矩阵化一个张量。n-模
矩阵化一个张量 K 是指将 K 的 n 维-参数排列成一个矩阵的列向量得到的矩阵,记作 。
我们可以假设 的列向量的排列是一种正向循环的方式。那么,矩阵化一个三阶张量
可以定义为 A 中的一个参数在矩阵中
需要指出的是 中的列向量是 A 的 n 维-参数。
没有一个确定的从矩阵的秩的定义角度来概括高阶张量的秩的方法。一个可行的方法
是定义张量 A 的 n-秩为 A 的 n-模子空间的维数
是指 n-模矩阵化的张量 A 的矩阵,没有特别说明 rank 是指矩阵的秩。容易证明一个三
阶张量的不同的 n-秩通常是不同于同样的矩阵。
我们现在给出一个通常的张量-矩阵乘法的概念。
定义 1 (n-模张量-矩阵乘法)设 , 。那么 n-模张量-矩阵乘法可以定
义为
例如,张量 ,矩阵 的 1-模乘积为
给出张量 ,和矩阵 , ,张量-矩阵乘法满足下面
的性质,
由于 的列向量是张量 A 的 n 维的元素,所以 n-模乘法 可以被看作是 n-模
矩阵化张量 B 得到 ,先进行普通的矩阵相乘 ,然后将 重新排列成张量
B。
2.1 高阶奇异值分解
矩阵的奇异值分解(SVD)在很多应用中是一个非常有用的工具。不失普遍性,我们设矩
阵 ,满足 m n。
剩余15页未读,继续阅读
资源评论
dlkangcy
- 粉丝: 2
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功