感想
这是一本奇书,第一章没有什么废话,全部都是干货。奇书有几种,比如“大一统理论”,把许多看似并不直接相关的部分,站在一个更高的抽象层次,用一个无比简洁的总结,全部统一起来,让人感到醍醐灌顶,“茅厕”顿开。比如之前看过的一本《微积分五讲》就是这种书,以后有时间专门对它写个读书笔记。<br />
而这本书,是另一种“奇”。作者从现实生活中的实例切入,并将之转化为一个数学的问题(矩阵方法),之所以称之为奇,实在是因为这样的书,太少见了(或者是我太孤陋寡闻了)。这种方式是无比亲切的,人认识世界的规律从具体上升到抽象,或者说的“机器学习”一点,人脑如果没有大量的实例来学习,不足以从中获取到模式。但是我们看到过太多的数学书,上来就是公式、定义、定理、引理、推论1、推论2,写的就跟一个字典一样。即使逻辑再严密,体系再完美,作为教科书而言,连厕纸都不如。<br />
章节结构
这本书主要有3个部分,第一部分是一些线性代数的基础知识,其中第一章是3个实际问题的概述,单刀直入,让我们一上来就能十分直观地感受到矩阵方法在现实问题中的使用,这些示例问题会在第二部分的时候展开讨论,而其中需要的线性代数基础知识则在第一部分剩下的章节中集中讨论。
第一部分:线性代数有什么用,为什么需要矩阵分解
★向量和矩阵如何用在数据挖掘和模式识别领域(概述)
名词解释
Data Mining:the science of extracting useful information from large data sets
Pattern Recognition:the act of taking in raw data and making an action based on the ‘category’ of the pattern”
应用领域:电子商务、搜索引擎、生物信息学、信息检索
学科交叉:computer science, statistics and data analysis, linear algebra, and optimization
实际应用的示例
-
信息检索(information retrieval)
作者举例:
假如要查询“ranking of Web pages”这个关键词,按照上面那个关键词表,其实就对应一个查询向量
进而,整个查询的问题,就变成了 一个数学的问题:即从矩阵A中,找出一个向量x,使得该向量最接近与查询向量q。作者说,要解决这类问题,就需要一些距离度量(distance measure)的方法
为什么需要矩阵分解
在现实中,Key Words的数量十分巨大,达到10的6次方数量级,其结果就是,A矩阵中,会产生大量的0元素,这样的矩阵被称为稀疏矩阵(sparse),如果没有很好的简化问题的方法,那么求解的过程即使对于计算机而言也将是十分漫长和痛苦的,矩阵分解正是人们在深入研究了矩阵的性质之后,所发现的对矩阵进行简化的方法。如果了解了矩阵分解的现实背景,就知道它的存在是有意义的,节省了大量的无趣计算时间,比起某些补品,它更加实在地延长我们的生命。明年过年不送礼,送礼只送矩阵分解。
其中一种矩阵分解方法被称为singular value decomposition (SVD),中文名叫奇异值分解,我也不知道为什么碰巧中文名那么奇异。。使用这种方法, 可以进行数据压缩(data compression)和检索增强(retrieval enhancement) -
文字识别
作者举例
小时候都写过田字格,把一个汉字写在一个田字格里面,同样的道理,可以用这样的格子把文字割开,划分区域。田字格可以看成是一个3x3的矩阵,当然也可以划分得更加精细一点,变成一个16x16的格子。
3可以用一个16行16列的矩阵来表示,也就是说用256个数字构成的矩阵,来表示一个手写的3,这256个数字的大小,代表在那个点上的灰度大小。我们把原来的16行16列表示的3变成1列256行,此时3可以用一个向量来表示,假如说有1000个手写3的样本,那么A矩阵就是一个1000列,256行的矩阵,其中每一个列向量,对应一个手写样本3。其中的每一列,张(span)成一个子空间(subspace),然后利用线性代数的知识,计算这个子空间的近似基(approximate basis)
-
搜索引擎
作者示例:
谷歌的搜索引擎的核心就是矩阵运算
如果两个元素之间有关联,那么就不为0,否则就为0。比如说4,比较高冷,只进不出,所以第4列都为0。另外自身和自身也定为0,这样该矩阵的对角线上也都是为0。
一个巴掌都有大小,网页与网页之间当然有质量上的差异,一个好的搜索引擎就需要定量地把这种差异描述出来,谷歌通过解决P矩阵特征值的问题,来完成这个评级(rank)。