翟術英 翁智峰



摘 要:矩陣的奇異值分解是高校《線性代數》教學中的重點難點內容。由于對其缺乏直觀理解,學生很難理解奇異值分解背后的深層意義。本文探討將奇異值分解與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— ),男,漢族,福建莆田人,博士,副教授,主要從事偏微分方程理論與數值計算研究。