将Matlab引入矩阵奇异值分解教学的探究
2023-06-11翟术英翁智峰
翟术英 翁智峰
摘 要:矩阵的奇异值分解是高校《线性代数》教学中的重点难点内容。由于对其缺乏直观理解,学生很难理解奇异值分解背后的深层意义。本文探讨将奇异值分解与Matlab相结合进行教学的优越性,既增强了学生学习的积极性和主动性,又可以提高知识运用能力和动手能力。
关键词:Matlab数值实验;奇异值分解;教学改革
线性代数是高校理工科、经管类学生的基础课程,同时也是计算机专业学生的必修课程,对后续学习起到奠基作用。矩阵是线性代数研究的核心内容,主要包括方阵和非方阵,对于方阵的相关知识点研究得较为系统,而对于非方阵的研究都处于蜻蜓点水的状态。奇异值分解[1]是以非方阵为研究对象的一个重要知识点,是线性代数中既优雅又强大的工具,它揭示了矩阵最本质的变换,能得到代表矩阵最本质变化的矩阵元素,但也是线性代数中的难点内容。特征值分解(针对方阵)和奇异值分解的目的都是一样,就是提取一个矩阵最重要的特征,奇异值分解可适用于任何矩阵,但特征值分解只适用于方阵。当给定的是对称矩阵时,二者结果是相同的,也就是说对称矩阵的特征值分解是奇异值分解的一个特例。但奇异值分解比特征值分解要复杂很多,此部分内容涉及许多新概念及复杂理论分析,且计算烦琐,内容枯燥乏味、晦涩难懂,学生对此部分内容的掌握度很差。因此绝大多数高校在教授线性代数课程时都将此内容作为选修内容而很少提及,同时缺乏利用此内容解决实际问题的案例探讨。
虽然,奇异值分解是数学专业内容,但已经渗入不同的领域中,是很多机器学习算法[2]的基石,广泛应用于数据降维、图像去噪和修复[3]、自然语言处理、最小二乘法及力学中的极分解等。奇异值分解的过程不是很好理解,单从计算的角度来看,是无法理解奇异值背后的深层思想,但实际应用效果却非常好。一个典型的代表实例就是Netflix在线电影租赁公司,为了能够提高电影推荐系统评分预测准确率的方法,公司曾发出重金奖励信息,希望能将预测准确率提高10%。对于这个充满挑战的目标,全世界的研究团队设计了不同的解决策略,然而,最终获胜的队伍所采用算法的核心就是奇异值分解。目前,大数据所带来的信息时代将进一步改变我们的工作、生活、思维,人类必然要经历时代转型,只有保持同步发展才不会被时代抛弃。大数据时代的我们要摒弃按照以往经验或直觉做决策的思维定式,而是要通过分析数据寻找解决策略。在这种环境背景下,奇异值分解更是发挥了重要作用。此部分内容的学习将极大提高学生的思维能力及运用知识解决实际问题的能力,应作为关键内容讲授。然而如何提高学生的学习兴趣、解放计算量?如何加深理解问题深层含义?如何利用已有知识解决身边实际问题?这些都是需要探讨的重点。
Matlab作为方便实用、功能强大的数学软件之一,具有强大的数值运算和图形可视化功能。将Matlab引入矩阵的奇异值分解教学[4],其繁杂的计算过程可采用软件来解决,实现边理论边实践的效果,提高学生的学习兴趣及积极性,同时可将奇异值分解应用于具体实际问题,让学生在感叹数学的神奇之余加深对奇异值分解的深层理解。这样不仅能够活跃课堂气氛,还可以增强学生动手能力,提高对基本定义及方法的实践应用。为学生日后从事金融建模、图像处理、科学与工程计算打下基础。下面首先给出奇异值分解的相关理论知识。
1 奇异值分解原理
1.1 奇异值分解定理
首先回顾奇异值分解定理。
特别的,当A为对称矩阵时,容易验证U=V,此时奇异值分解则退化为特征值分解。奇异值分解表示矩阵A所代表的线性变换可以由更简单的旋转(U,V)和拉伸(S)变换进行合成。
下面给出如何实现奇异值分解。分别考虑(ATA)V与(AAT)U。利用表达式A=USVT及结合矩阵U、V的正交性,有:
因此可得V由(ATA)的正交单位特征向量构成,而(ATA)的非零特征值的平方根为奇异值。同理考察
可得U由(AAT)的正交单位特征向量构成。
由上述过程可知,要想完成奇异值分解,需要分别对(ATA)及(AAT)进行特征值分解,计算复杂度比较高。
1.2 数值算例
为验证上述过程的正确性,下面给出具体应用算例。
通过上述计算过程可以发现,奇异值计算十分烦琐。事实上,Matlab有奇异值分解的内置代码,只需在工作窗口输入svd(A)即可实现,对于1000*1000以内的矩阵,Matlab只需一秒即可实现奇异值分解。2000年,张智威博士团队首次提出了奇异值分解的并行算法,解决了长期困扰的瓶颈问题,奇异值分解拥有了更大的应用空间。
下面利用svd(A)重现上述例题。
对比结果可以看出正交矩阵U,V并不相同,只有S相同。这是因为奇异值分解并不唯一,但奇异值是唯一的。
2 奇异值分解的应用
由第一部分可以看出,奇异值分解的原理较为复杂,那奇异值分解到底有什么重要的作用呢?事实上,奇异值分解是机器学习领域广泛应用的算法,它可以用于数据降维(主成分分析)、数据压缩(图像压缩)、图像修复与去噪、推荐系统,以及自然语言处理,如做搜索引擎语义层次检索的LSI(Latent Semantic Indexing)。下面将具体给出奇异值分解在数据压缩方面的应用。
为方便,将正交矩阵U,V写成列向量形式:
当s< 例:利用奇异值分解,对“天问一号”返回的图片marz.png(见下图)进行数据压缩。 下面分别采用前10个、20个、30个、40个奇异值进行图像还原,结果如下: 由上述图像可以看出,前40个奇异值就达到了很好的还原效果。实际上,奇异值分解就是对数据集的重要特征从高到低进行排序的过程,并通过舍弃不重要的特征实現数据降维。例如,某些AI人脸识别技术的核心算法就是奇异值分解,通过提取输入人脸的关键特征,并与数据库中已知身份的人脸进行匹配,从而完成输入人脸的识别。 结语 将Matlab软件引入奇异值分解教学,不仅可以提高学生的学习积极性及学习效率,同时加深学生对基本概念的理解和应用,增强学生的动手能力和自我成就感[5]。更重要的是Matlab与课程内容的结合会改变学生的思维方式,使他们在以后的学习工作中具备更强的变通思维和动手操作能力。 参考文献: [1]肖占魁,黄华林,林增强.应用线性代数[M].机械工业出版社,2011. [2]朱道远.研究生数学建模精品案例[M].北京:科学出版社,2019. [3]张海燕,闵涛,艾克锋.二维截断奇异值分解方法在图像恢复中的应用[J].计算机工程与应用,2008,596(01):60-62. [4]孙玺菁,司守奎.MATLAB的工程数学应用[M].北京:国防工业出版社,2017. [5]王晓华.算法的乐趣[M].北京:人民邮电出版社,2018. 基金项目:2022年度华侨大学本科教学示范团队“科学计算与数据分析教学示范团队”(HQJXSF2204);2023年度华侨大学教育教学改革研究一般项目“基于OBE理念下的《数值计算方法》课程教学改革与实践探索”(HQJGYB2323) 作者简介:翟术英(1986— ),女,汉族,山东泰安人,博士,副教授,主要从事偏微分方程理论与数值计算研究。 *通讯作者:翁智峰(1985— ),男,汉族,福建莆田人,博士,副教授,主要从事偏微分方程理论与数值计算研究。