魯曉磊 呂學(xué)斌
【摘 要】線性代數(shù)是工科、管理學(xué)科等非數(shù)學(xué)專業(yè)中重要的一門數(shù)學(xué)基礎(chǔ)課程。隨著計算機,互聯(lián)網(wǎng)及伴隨的大數(shù)據(jù)的快速發(fā)展,線性代數(shù)理論和方法在各領(lǐng)域都有了更深更廣泛的應(yīng)用。本文針對目前線性代數(shù)教學(xué)中存在的問題,并結(jié)合數(shù)據(jù)科學(xué)發(fā)展的需求和自身的教學(xué)實踐,對線性代數(shù)教學(xué)內(nèi)容改革進行了探索,以期能獲得更好的教學(xué)效果。
【關(guān)鍵詞】數(shù)據(jù)科學(xué);線性代數(shù);矩陣分解;數(shù)學(xué)軟件
中圖分類號: G80-32文獻標識碼: A文章編號: 2095-2457(2019)35-0056-002
DOI:10.19694/j.cnki.issn2095-2457.2019.35.025
0 引論
大數(shù)據(jù)時代,在各種行業(yè)領(lǐng)域中,根據(jù)獲取的數(shù)據(jù)來解決各自領(lǐng)域問題已成司空見慣的事情。在數(shù)據(jù)科學(xué)日漸盛行,數(shù)據(jù)即為資源的年代,線性代數(shù)被認為是數(shù)據(jù)科學(xué)領(lǐng)域中的數(shù)學(xué)語言。不懂線性代數(shù),不對線性代數(shù)有深入理解,就很難處理以數(shù)據(jù)為驅(qū)動的各行業(yè)問題。事實上,數(shù)據(jù)在數(shù)學(xué)上往往通過數(shù),向量,矩陣及張量來表示,而這些正是線性代數(shù)的基本概念。麻省理工學(xué)院數(shù)學(xué)系著名教 Gilbert Strang 認為:數(shù)學(xué)的許多應(yīng)用都是離散而非連續(xù),是數(shù)字而非模擬的,數(shù)據(jù)世紀已經(jīng)開始,向量和矩陣已成為必須熟知的語言[1]。
雖線性代數(shù)在大數(shù)據(jù)時代重要性日漸增強,然而,但目前的大學(xué)數(shù)學(xué)教學(xué),相比高等數(shù)學(xué),概率統(tǒng)計課程,線性代數(shù)學(xué)時相對較少;同時,目前國內(nèi)線性代數(shù)的教學(xué)內(nèi)容仍是按傳統(tǒng)模式進行,國內(nèi)主流的線性代數(shù)教材的主要內(nèi)容和安排順序通常是:先討論行列式,然后矩陣概念、性質(zhì)和運算,接下來是矩陣初等變換、秩及線性方程組求解,向量組的一些概念性質(zhì),最后矩陣特征值,二次型等內(nèi)容。這些內(nèi)容雖然都是線性代數(shù)的精髓,但過于側(cè)重理論而輕視和實際問題的聯(lián)系,造成理論與實踐應(yīng)用脫節(jié),從而導(dǎo)致該課程教學(xué)效果達不到理想效,同時也不利于培養(yǎng)學(xué)生解決實際問題的能力,學(xué)生聽課也感覺線性代數(shù)枯燥無味,產(chǎn)生抵觸心理。此外,在大數(shù)據(jù)背景下,一些和線性代數(shù)緊密聯(lián)系的數(shù)據(jù)處理方法,如線性模型,主成分分析,最小二乘,矩陣的低秩分解等方法,在目前的線性代數(shù)課程中也缺少必要的介紹。本文針對目前線性代數(shù)教學(xué)中存在的問題,并結(jié)合數(shù)據(jù)科學(xué)發(fā)展的需求和自身的教學(xué)實踐,對線性代數(shù)教學(xué)內(nèi)容改革進行了探索,以期能獲得更好的教學(xué)效果。
1 大數(shù)據(jù)時代線性代數(shù)教學(xué)內(nèi)容改革研究
結(jié)合國外線性代數(shù)著名教材[1-2]及著名優(yōu)化和數(shù)據(jù)科學(xué)專家S. Boyd的應(yīng)用線性代數(shù)方面的著作[3],同時參考數(shù)據(jù)科學(xué)相關(guān)的主要著作[4-6],我們對線性代數(shù)教學(xué)內(nèi)容提出若干參考建議,以提高學(xué)生的學(xué)習興趣,提高學(xué)生利用線性代數(shù)知識解決一些基本的數(shù)據(jù)科學(xué)相關(guān)的實際問題能力。
1.1 線性代數(shù)課程內(nèi)容次序的變化
目前的線性代數(shù)教材體系一般都是從行列式開始討論,然后是矩陣,線性方程組和向量及向量空間等[7-8]。這種安排在第一章行列式計算就會讓學(xué)生望而止步,但行列式的計算并不是線性代數(shù)的重點。后續(xù)矩陣運算和線性方程組求解理論,這些知識點在向量和向量空間概念之前介紹也不太自然,很難展開討論。線性代數(shù)課程更多的是知識點的堆積,學(xué)完之后學(xué)生能夠了解線性代數(shù)中的大部分知識點,但缺少聯(lián)系,缺乏從不同觀點看待同一問題,因而也就很難靈活的運用線性代數(shù)知識解決實際問題。
在數(shù)據(jù)科學(xué)時代,一切的數(shù)據(jù)信息都可以通過向量表示,本文認為從向量概念開始討論線性代數(shù)是適合的。首先討論向量概念及其運算,向量的線性組合,內(nèi)積和范數(shù)等概念。引入向量概念的自然的,許多數(shù)字信號本身都是向量,如語音信號,圖像信號等,而向量差的范數(shù)可以衡量兩向量間的相似程度,向量的線性組合用于表示新的向量,這也是表示學(xué)習的一個重要起點[6]。然后,再從線性方程組求解問題引入矩陣概念,這里面關(guān)鍵是可將矩陣看成向量的排列。線性方程組Ax=b中Ax可看為矩陣A列的線性組合,一個線性方程組是否有解等價于b是否可以由A的列向量線性表示。而矩陣C=AB乘積也可以從A的列向量線性組合來約定。接下來安排向量空間的基本內(nèi)容,其關(guān)鍵是詳細討論和一個m×n的矩陣A相關(guān)的幾個子空間:列空間Col(A),行空間Row(A)和零空間N(A),按照對稱性,也可以簡單介紹下左零空間,即AT的零空間N(AT)。Gilbert Strang把這四個子空間及其聯(lián)系看作線性代數(shù)的基本定理[1]。事實上,如能熟練掌握求解這四個子空間的維數(shù),基及相互之間的聯(lián)系,那么線性代數(shù)課程中關(guān)于矩陣秩求解,向量組的極大線性無關(guān)組的計算,線性方程組求解理論,正交互補空間等問題也就完全解決了。最后,介紹行列式概念,矩陣特征值及對角化,二次型等內(nèi)容。需要向?qū)W生強調(diào),在學(xué)習線性代數(shù)課程中,應(yīng)學(xué)會從不同角度看待同一問題。如矩陣乘向量問題b=Ax,我們既可以看成矩陣列的線性組合,也可以看成對向量x做了線性變換,也可以看為空間中多個超平面的交集,而在數(shù)據(jù)科學(xué)領(lǐng)域,這一式子是線性模型的典型形式。
在大數(shù)據(jù)背景下,我們認為線性代數(shù)教學(xué)內(nèi)容按照向量,矩陣,向量空間,行列式,特征值及對角化,二次型次序安排較為合理。此外,通過一些具體的數(shù)據(jù)模型實例引入基本概念可能更會增加學(xué)生學(xué)習興趣,提高學(xué)習的主動性。
1.2 增加常見的矩陣分解知識
矩陣分解的基本目標是把一個一般復(fù)雜的矩陣分解成一些特色簡單矩陣的乘積,在諸如稀疏編碼,矩陣補全,數(shù)據(jù)降維,數(shù)據(jù)聚類等數(shù)據(jù)科學(xué)領(lǐng)域有廣泛應(yīng)用。雖然矩陣分解的相關(guān)知識在矩陣論課程中會有更一般的討論,但在線性代數(shù)課程中,從現(xiàn)有內(nèi)容中即可推廣到一些常見的矩陣分解方法。目前國內(nèi)大學(xué)線性代數(shù)講課內(nèi)容,只討論了對稱矩陣的特征分解,而對其他常用的矩陣分解只字不提,這無疑限制了線性代數(shù)的應(yīng)用范圍。我們認為,至少應(yīng)該增加三種常見的矩陣分解的介紹,即矩陣的LU分解,QR分解和奇異值分解(SVD)。
矩陣的LU分解其實是通過初等行變換把一般矩陣變?yōu)殡A梯形矩陣的矩陣表示。眾所周知,任何矩陣都可通過初等行變換變?yōu)殡A梯形矩陣,若不考慮兩行交換位置的行變換,則將矩陣通過初等行變換變?yōu)殡A梯形矩陣等價于將矩陣表示為一個單位下三角矩陣和階梯形矩陣的乘積,即A=LU,這里L為單位下三角矩陣,U為階梯形矩陣,這即為矩陣的LU分解。在Matlab 軟件中,通過命令[L,U]=lu(A)即可實現(xiàn)矩陣的LU分解。線性代數(shù)另一個重要內(nèi)容是格拉姆-施密特正交化方法,該方法將一組線性無關(guān)的向量組變?yōu)闃藴收幌蛄拷M。若將該組線性無關(guān)向量組按列排成矩陣A,則格拉姆-施密特正交化方法的矩陣A表示為矩陣的QR分解。具體來說,一個列滿秩的m×n矩陣分解為A=QR,其中m×n矩陣Q的列構(gòu)成了矩陣A列空間的標準正交基,而n階方陣R是一上三角矩陣,且對角線元素都為正。在Matlab 軟件中,通過命令[Q,R]=qr(A)即可實現(xiàn)矩陣的LU分解。矩陣的LU分解和QR分解都是將一個一般矩陣分解為特殊矩陣的乘積形式,在諸如線性方程組求解,最小二乘等領(lǐng)域廣泛應(yīng)用[3]。
最為重要的矩陣分解公式應(yīng)該是奇異值分解。遺憾的是,國內(nèi)多數(shù)線性代數(shù)教學(xué)內(nèi)容都沒有包含這一部分內(nèi)容,而國外主流線性代數(shù)教材中都會花相當大篇幅討論矩陣的奇異值分解[1-2]。矩陣奇異值分解的重要性不僅體現(xiàn)在線性代數(shù)本身,而且也廣泛應(yīng)用在數(shù)據(jù)科學(xué)的眾多領(lǐng)域。事實上,奇異值分解其實是對稱矩陣特征分解公式的一般化推廣。若A為n階實對稱矩陣,則存在正交矩陣Q和對角陣?撰,使得A=Q?撰QT,這即為矩陣的特征分解。對一般的m×n矩陣A,我們有奇異值分解公式A=U∑VT,這里,U,V分別是m階和n階正交陣,∑是m×n矩陣,形式為∑=D OO O,D=diag{σ1,…,σr}(σi>0,i=1,2,…,r),r為矩陣A的秩。在線性代數(shù)領(lǐng)域,熟練掌握奇異值分解對諸如求矩陣的秩,列空間和行空間的標準正交基,矩陣逆,矩陣偽逆,最小二乘等問題都有極大幫助。在實現(xiàn)方面,通過Matlab命令[U,S,V]=svd(A)即可實現(xiàn)矩陣的奇異值分解。本文認為,在線性代數(shù)教學(xué)過程中,簡單介紹矩陣的幾種常見分解公式非常有必要。熟練掌握這些常見的矩陣分解公式對解決數(shù)據(jù)相關(guān)的問題是極為有益的。
1.3 將數(shù)據(jù)科學(xué)方面的應(yīng)用融入課程教學(xué)
如果線性代數(shù)只是討論各種知識點,而沒有應(yīng)用驅(qū)動,學(xué)習興趣就會大為減弱。實際上,線性代數(shù)的許多概念性質(zhì)都有很強的應(yīng)用背景,特別是在大數(shù)據(jù)時代,線性代數(shù)的應(yīng)用領(lǐng)域更為廣闊。因此應(yīng)該在每個重要的概念或重要結(jié)論提出之前需要引入相關(guān)的應(yīng)用背景,而不是單純的先一堆定義又一堆定理。舉例來說,矩陣概念可以從線性方程組求解引入,但也可以通過數(shù)據(jù)類型問題引入,如一副灰度圖像數(shù)學(xué)上對應(yīng)一個矩陣,在圖論中刻畫節(jié)點相似程度也可通過矩陣描述。又如對矩陣的秩概念,一般有意義的矩陣,列向量往往是相關(guān)的,因此矩陣秩較低。然而,實際觀測矩陣往往包含噪聲或丟失數(shù)據(jù),如果需要消除噪聲或補全丟失數(shù)據(jù),可采樣矩陣的低秩逼近技術(shù),如Netflix視頻評價方法采用了矩陣的低秩技術(shù)[9]。此外,討論矩陣特征值特征向量概念,可通過谷歌著名的網(wǎng)頁排名算法“PageRank”引入。
在講授線性代數(shù)基本概念引入應(yīng)用背景能較好激發(fā)學(xué)生學(xué)習興趣,除此之外,還應(yīng)該增加和數(shù)據(jù)科學(xué)密切聯(lián)系的應(yīng)用案例。線性代數(shù)在數(shù)據(jù)科學(xué)領(lǐng)域的應(yīng)用極為廣泛,如線性方程組求解問題的最小二乘方法可用于求解數(shù)據(jù)科學(xué)領(lǐng)域的線性回歸問題[3];奇異值分解公式和主成分分析緊密相連,而主成分分析是最為經(jīng)典的線性降維方法,在數(shù)據(jù)科學(xué)領(lǐng)域廣為應(yīng)用[2];矩陣秩極小化問題可用于解決視頻推薦,圖像去噪,視頻前背景分離的眾多圖像數(shù)據(jù)問題[9]。但是,需要注意,在涉及數(shù)據(jù)分析類型案例中,數(shù)據(jù)量往往較大,因此應(yīng)該增加數(shù)學(xué)軟件的介紹,如Matlab數(shù)學(xué)軟件或者和大數(shù)據(jù)密切聯(lián)系的Python軟件。在學(xué)習線性代數(shù)過程中,如果能夠掌握一種計算機語言,借助線性代數(shù)的基本原理解決一些數(shù)據(jù)類型的應(yīng)用案例,這不僅能增加學(xué)生學(xué)習線性代數(shù)的樂趣,而且能有效提高學(xué)生動手能力。
2 結(jié)論
本文討論了在大數(shù)據(jù)背景下,和數(shù)據(jù)科學(xué)密切聯(lián)系的大學(xué)線性代數(shù)課程在教學(xué)內(nèi)容方面的一些改革。在目前的教學(xué)體系下,本文從教學(xué)內(nèi)容次序安排,重視矩陣分解,增強概念應(yīng)用背景介紹,增添和數(shù)據(jù)科學(xué)聯(lián)系緊密的應(yīng)用案例和加強數(shù)學(xué)軟件教育幾個方面,給出一些具體建議,期望能取得更好的教學(xué)效果,學(xué)生能更深入理解線性代數(shù),更靈活的運用線性代數(shù)解決實際問題。
【參考文獻】
[1]Gilbert Strang.線性代數(shù)(第5版)[M].北京:清華大學(xué)出版社,2019.
[2]David C.Lay著,劉深泉,等譯.線性代數(shù)及其應(yīng)用[M].第3版.北京:機械工業(yè)出版社,2005.
[3]S.Boyd,L.Vandenberghe.Introduction to Applied Linear Algebra:Vectors,Matrices,and Least Squares[M].New York:Cambridge University Press,2018.
[4]歐高炎,朱占星,董彬,鄂維南.數(shù)據(jù)科學(xué)導(dǎo)引[M].北京:高等教育出版社,2017.
[5]周志華著.機器學(xué)習[M].北京:清華大學(xué)出版社,2017.
[6]Goodfellow I., Bengio Y., Courville A.著,趙申劍等,譯.深度學(xué)習[M].北京:人們郵電出版社, 2017.
[7]同濟大學(xué)數(shù)學(xué)系.工程數(shù)學(xué)·線性代數(shù)第6版[M].北京: 高等教育出版社,2014.
[8]居余馬,等編著.線性代數(shù)(第2版)[M].北京:清華大學(xué)出版社,2002.
[9]張長水,楊強.機器學(xué)習及其應(yīng)用2013[M].北京:清華大學(xué)出版社,2013.