這本教科書強調了代數和幾何之間的相互作用,以激發線性代數的研究。矩陣和線性變換被認為是同一枚硬幣的兩面,它們的聯系激發了全書的探究。圍繞著這個界面,作者提供了一個概念上的理解,數學是進一步的理論和應用的核心。繼續學習線性代數的第二門課程,您將會對《高等線性代數與矩陣代數》這本書有更深的了解。
從向量、矩陣和線性變換的介紹開始,這本書的重點是構建這些工具所代表的幾何直觀。線性系統提供了迄今為止看到的思想的強大應用,并導致子空間、線性獨立、基和秩的引入。然后研究集中在矩陣的代數性質,闡明了它們所代表的線性變換的幾何性質。行列式、特征值和特征向量都可以從這種幾何觀點中獲益。在整個過程中,“額外主題”部分以廣泛的思想和應用擴大了核心內容,從線性規劃,到冪迭代和線性遞歸關系。每個部分都有各種層次的練習,包括許多設計用來用電腦程序解決的練習。
這本書是從線性變換和矩陣本身都是有用的對象的角度寫的,但它是兩者之間的聯系,真正打開線性代數的魔法。有時候,當我們想知道一些關于線性變換的東西時,最簡單的方法就是找到一組基然后看對應的矩陣。相反,有許多有趣的矩陣和矩陣運算家族,它們似乎與線性變換無關,但卻可以解釋一些基無關對象的行為。
線性與矩陣代數導論是線性代數的理想入門證明課程。學生被假定已經完成了一到兩門大學水平的數學課程,盡管微積分不是明確的要求。教師將會感激有足夠的機會選擇符合每個教室需求的主題,并通過WeBWorK提供在線作業集。
我的目標是撰寫一本既可以作為教程又能夠參考的書。這本書最初是為我在Mount St. Mary大學的編程入門課上的學生準備的大約30頁筆記。這些學生中大多數沒有編程經驗,這促使我改進方法。我省略了很多技術細節,有時我過度簡化了事情。其中一些細節在書的后面被補充,盡管其他細節從未被補充。但是這本書并不打算涵蓋所有內容,我推薦閱讀其他書籍和Python文檔來填補這些空白。
這本書第一部分的大部分內容都是基礎。前四章非常重要。第五章是有用的,但不是所有的都是關鍵的。第6章(字符串)應該在第7章(列表)之前完成。第8章包含一些更高級的列表主題。雖然這些內容都很有趣,也很有用,但大部分內容都可以跳過。特別是,那一章涵蓋了列表理解,我在書中后面會大量使用。雖然您可以不使用列表理解,但它們提供了一種優雅而有效的做事方式。第9章(while循環)很重要。第10章包含了各種各樣的主題,它們都很有用,但是如果需要的話,可以跳過很多。第一部分的最后四章是關于字典、文本文件、函數和面向對象編程的。
第二部分是關于圖形的,主要是用Tkinter進行GUI編程。您可以很快地使用Tkinter編寫一些很好的程序。例如,第15.7節呈現了一款20行的井字游戲。第二部分的最后一章介紹了一些關于Python圖像庫的內容。
第三部分包含了許多您可以用Python做的有趣的事情。如果你要圍繞這本書組織一個學期的課程,你可能想在第三部分中選擇一些主題來復習。這本書的這一部分也可以作為一個參考或作為一個地方,有興趣和積極的學生學習更多。書中這一部分的所有主題都是我在某一點或另一點上發現有用的東西。雖然這本書是為入門編程課程而設計的,但是對于那些有編程經驗想要學習Python的人來說,這本書也很有用。如果你是這些人中的一員,你應該能夠輕松地讀完前幾章。您應該發現,第2部分對GUI編程進行了簡明而非膚淺的論述。第三部分包含了關于Python特性的信息,這些特性允許您用很少的代碼完成大任務。
W. Keith Nicholson的《線性代數與應用》,傳統上出版多年,現在作為開放教育資源和Lyryx的一部分發布與開放文本!支持今天的學生和教師需要更多的教科書,這就是為什么尼克爾森博士選擇與Lyryx學習工作。
總的來說,教材的目標是在計算技能,理論和線性代數的應用之間達到平衡。它是線性代數的思想和技術的一個相對先進的介紹,目標是科學和工程學生,他們不僅需要理解如何使用這些方法,而且還需要深入了解為什么他們工作。
它介紹了線性代數的一般思想遠早于競爭保持與線性代數相同的嚴格和簡潔的方法。隨著許多圖表和例子,幫助學生形象化,它也保持與概念的不斷介紹。
課程內容有足夠的靈活性,可以呈現一個傳統的主題介紹,或者允許一個更實用的課程。第1-4章為初學者開設了一學期的課程,而第5-9章為第二學期的課程。這本教科書主要是關于實數線性代數的,在適當的時候提到了復數(在附錄A中回顧)。
這本書的書名聽起來有點神秘。如果這本書以一種錯誤的方式呈現了這個主題,人們為什么要讀它呢?書中哪些地方做得特別“不對”?
在回答這些問題之前,讓我先描述一下本文的目標受眾。這本書是“榮譽線性代數”課程的課堂講稿。這應該是高等數學學生的第一門線性代數課程。它的目標是一個學生,雖然還不是非常熟悉抽象推理,但愿意學習更嚴格的數學,在“烹飪書風格”的微積分類型課程。除了作為線性代數的第一門課程,它也應該是第一門向學生介紹嚴格證明、形式定義——簡而言之,現代理論(抽象)數學風格的課程。
目標讀者解釋了基本概念和具體實例的非常具體的混合,它們通常出現在介紹性的線性代數文本中,具有更抽象的定義和高級書籍的典型構造。
矩陣代數是數據分析和統計理論中最重要的數學領域之一。這本書的第一部分為統計中的應用提出矩陣代數的理論的相關方面。本部分從向量和向量空間的基本概念開始,接著介紹矩陣的基本代數性質,然后描述向量和矩陣在多元演算中的解析性質,最后討論線性系統解和特征分析中矩陣的運算。這部分基本上是獨立的。
本書的第二部分開始考慮在統計中遇到的各種類型的矩陣,例如投影矩陣和正定矩陣,并描述這些矩陣的特殊性質。第二部分也介紹了矩陣理論在統計中的一些應用,包括線性模型、多元分析和隨機過程。本部分說明了在本書第一部分中發展的矩陣理論。書的前兩個部分可以作為為統計學生的矩陣代數課程的文本,或作為在線性模型或多元統計的各種課程的補充文本。
這本書的第三部分涵蓋了數值線性代數。它以數值計算的基礎討論開始,然后描述精確和有效的算法因式分解矩陣,求解線性方程組,并提取特征值和特征向量。雖然這本書沒有捆綁到任何特定的軟件系統,它描述并給出了使用數字線性代數的現代計算機軟件的例子。這部分基本上是自包含的,盡管它假設有一些能力用Fortran或C編程和/或使用R/S-Plus或Matlab的能力。書的這一部分可以作為在統計計算中的一門課程的文本使用,或者作為強調計算的各種課程的補充文本。
這本書包括大量的練習,并在附錄中提供了一些解決方案。
James E. Gentle是喬治梅森大學計算統計學教授。他是美國統計協會(ASA)和美國科學促進會的會員。他曾在美國標準局擔任過幾個國家職務并擔任過美國標準局期刊的副主編以及其他統計和計算期刊的副主編。他是隨機數生成和蒙特卡羅方法,第二版,和計算統計元素的作者。
線性代數是計算和數據科學家的基本工具之一。這本書“高級線性代數:基礎到前沿”(ALAFF)是一個替代傳統高級線性代數的計算研究生課程。重點是數值線性代數,研究理論、算法和計算機算法如何相互作用。這些材料通過將文本、視頻、練習和編程交織在一起來保持學習者的參與性。
我們在不同的設置中使用了這些材料。這是我們在德克薩斯大學奧斯汀分校名為“數值分析:線性代數”的課程的主要資源,該課程由計算機科學、數學、統計和數據科學、機械工程以及計算科學、工程和數學研究生課程提供。這門課程也通過UT-Austin計算機科學碩士在線課程提供“高級線性代數計算”。最后,它是edX平臺上名為“高級線性代數:基礎到前沿”的大規模在線開放課程(MOOC)的基礎。我們希望其他人可以將ALAFF材料重新用于其他學習設置,無論是整體還是部分。
為了退怕學習者,我們采取了傳統的主題的數字線性代數課程,并組織成三部分。正交性,求解線性系統,以及代數特征值問題。
第一部分:正交性探討了正交性(包括規范的處理、正交空間、奇異值分解(SVD)和解決線性最小二乘問題)。我們從這些主題開始,因為它們是其他課程的先決知識,學生們經常與高等線性代數并行(甚至在此之前)進行學習。
第二部分:求解線性系統集中在所謂的直接和迭代方法,同時也引入了數值穩定性的概念,它量化和限定了在問題的原始陳述中引入的誤差和/或在計算機算法中發生的舍入如何影響計算的正確性。
第三部分:代數特征值問題,重點是計算矩陣的特征值和特征向量的理論和實踐。這和對角化矩陣是密切相關的。推廣了求解特征值問題的實用算法,使其可以用于奇異值分解的計算。本部分和本課程以在現代計算機上執行矩陣計算時如何實現高性能的討論結束。
當看到這些材料時,一個明顯的問題可能會出現:“為什么還要寫一本深度學習和自然語言處理的書呢?”一些優秀的論文已經出版,涵蓋了深度學習的理論和實踐方面,以及它在語言處理中的應用。然而,從我教授自然語言處理課程的經驗來看,我認為,盡管這些書的質量非常好,但大多數都不是針對最有可能的讀者。本書的目標讀者是那些在機器學習和自然語言處理之外的領域有經驗的人,并且他們的工作至少部分地依賴于對大量數據,特別是文本數據的自動化分析。這些專家可能包括社會科學家、政治科學家、生物醫學科學家,甚至是對機器學習接觸有限的計算機科學家和計算語言學家。
現有的深度學習和自然語言處理書籍通常分為兩大陣營。第一個陣營專注于深度學習的理論基礎。這對前面提到的讀者肯定是有用的,因為在使用工具之前應該了解它的理論方面。然而,這些書傾向于假設一個典型的機器學習研究者的背景,因此,我經常看到沒有這種背景的學生很快就迷失在這樣的材料中。為了緩解這個問題,目前存在的第二種類型的書集中在機器學習從業者;也就是說,如何使用深度學習軟件,而很少關注理論方面。我認為,關注實際方面同樣是必要的,但還不夠。考慮到深度學習框架和庫已經變得相當復雜,由于理論上的誤解而濫用它們的可能性很高。這個問題在我的課程中也很常見。
因此,本書旨在為自然語言處理的深度學習搭建理論和實踐的橋梁。我涵蓋了必要的理論背景,并假設讀者有最少的機器學習背景。我的目標是讓任何上過線性代數和微積分課程的人都能跟上理論材料。為了解決實際問題,本書包含了用于討論的較簡單算法的偽代碼,以及用于較復雜體系結構的實際Python代碼。任何上過Python編程課程的人都應該能夠理解這些代碼。讀完這本書后,我希望讀者能有必要的基礎,立即開始構建真實世界的、實用的自然語言處理系統,并通過閱讀有關這些主題的研究出版物來擴展他們的知識。
//clulab.cs.arizona.edu/gentlenlp/gentlenlp-book-05172020.pdf
有很多關于傅里葉變換的書; 然而,很少有面向多學科讀者的。為工程師寫一本關于代數概念的書是一個真正的挑戰,即使不是太難的事,也要比寫一本關于理論應用的代數書更有挑戰性。這就是本書試圖面對的挑戰。因此,每個讀者都能夠創建一個“按菜單”的程序,并從語句或計算機程序中提取特定元素,以建立他們在該領域的知識,或將其運用于更具體的問題。
本文敘述是非常詳細的。讀者可能偶爾需要一些關于有限組的高級概念,以及對組行為的熟悉程度。我強調了那些重要的定義和符號。例如,從多個角度(交換群、信號處理、非交換群)研究卷積的概念,每次都要放在它的背景知識中。因此,不同的段落,雖然遵循一個邏輯遞進,有一個真正的統一,但可以根據自己需要選取閱讀。
第一章用群論的語言來解釋主要概念,并解釋后面將用到的符號。第二章將所得結果應用于各種問題,并首次接觸快速算法(例如Walsh 變換)。第三章對離散傅里葉變換進行了闡述。第四章介紹了離散傅里葉變換的各種應用,并構成了對前一章的必要補充,以充分理解所涉及的機制以及在實際情況中使用。第五章圍繞傅里葉變換提出了更多新穎的思想和算法,產生了大量的應用。第六章需要一些更高級的知識,特別是對有限場理論的一些熟悉。它研究了有限域中的值變換,并給出了在校正碼中的應用。最后兩章(最困難的一章),具有更多的代數性質,并建議推廣已經在有限非交換群的情況下進行的構造。第七章揭示了線性表示的理論。第八章和最后一章將這一理論應用于理論(群的簡潔性研究)和實際(光譜分析)領域。
凸優化研究在凸集上最小化凸函數的問題。凸性,連同它的許多含義,已經被用來為許多類凸程序提出有效的算法。因此,凸優化已經廣泛地影響了科學和工程的幾個學科。
過去幾年,凸優化算法徹底改變了離散和連續優化問題的算法設計。對于圖的最大流、二部圖的最大匹配和子模函數最小化等問題,已知的最快算法涉及到對凸優化算法的基本和重要使用,如梯度下降、鏡像下降、內點方法和切割平面方法。令人驚訝的是,凸優化算法也被用于設計離散對象(如擬陣)的計數問題。同時,凸優化算法已經成為許多現代機器學習應用的中心。由于輸入實例越來越大、越來越復雜,對凸優化算法的需求也極大地推動了凸優化技術本身的發展。
這本書的目的是使讀者能夠獲得對凸優化算法的深入理解。重點是從第一性原理推導出凸優化的關鍵算法,并根據輸入長度建立精確的運行時間界限。由于這些方法的廣泛適用性,一本書不可能向所有人展示這些方法的應用。這本書展示了各種離散優化和計數問題的快速算法的應用。本書中所選的應用程序的目的是為了說明連續優化和離散優化之間的一個相當令人驚訝的橋梁。
目標受眾包括高級本科生、研究生和理論計算機科學、離散優化和機器學習方面的研究人員。
//convex-optimization.github.io/
第一章-連續優化和離散優化的銜接
我們提出了連續優化和離散優化之間的相互作用。最大流問題是一個激勵人心的例子。我們也追溯了線性規劃的歷史——從橢球法到現代內點法。最后介紹了橢球法在求解最大熵問題等一般凸規劃問題上的一些最新成果。
第二章 預備知識
我們復習這本書所需的數學基礎知識。這些內容包括多元微積分、線性代數、幾何、拓撲、動力系統和圖論中的一些標準概念和事實。
第三章-凸性
我們引入凸集,凸性的概念,并展示了伴隨凸性而來的能力:凸集具有分離超平面,子梯度存在,凸函數的局部最優解是全局最優解。
第四章-凸優化與效率
我們提出了凸優化的概念,并正式討論了它意味著什么,有效地解決一個凸程序作為一個函數的表示長度的輸入和期望的精度。
第五章-對偶性與最優性
我們引入拉格朗日對偶性的概念,并證明在一個稱為Slater條件的溫和條件下,強拉格朗日對偶性是成立的。隨后,我們介紹了拉格朗日對偶和優化方法中經常出現的Legendre-Fenchel對偶。最后,給出了Kahn-Karush-Tucker(KKT)最優性條件及其與強對偶性的關系。
第六章-梯度下降
我們首先介紹梯度下降法,并說明如何將其視為最陡下降。然后,我們證明了梯度下降法在函數的梯度是連續的情況下具有收斂時間界。最后,我們使用梯度下降法提出了一個快速算法的離散優化問題:計算最大流量無向圖。
第七章-鏡像下降和乘法權值更新
我們推出我們的凸優化的第二個算法-稱為鏡面下降法-通過正則化觀點。首先,提出了基于概率單純形的凸函數優化算法。隨后,我們展示了如何推廣它,重要的是,從它推導出乘法權值更新(MWU)方法。然后利用后一種算法開發了一個快速的近似算法來解決圖上的二部圖匹配問題。
第八章-加速梯度下降
提出了Nesterov的加速梯度下降算法。該算法可以看作是前面介紹的梯度下降法和鏡像下降法的混合。我們還提出了一個應用加速梯度法求解線性方程組。
第九章-牛頓法
IWe開始了設計凸優化算法的旅程,其迭代次數與誤差成對數關系。作為第一步,我們推導并分析了經典的牛頓方法,這是一個二階方法的例子。我們認為牛頓方法可以被看作是黎曼流形上的最速下降,然后對其收斂性進行仿射不變分析。
第十章 線性規劃的內點法
利用牛頓法及其收斂性,推導出一個線性規劃的多項式時間算法。該算法的關鍵是利用障礙函數的概念和相應的中心路徑,將有約束優化問題簡化為無約束優化問題。
第十一章-內點法的變種與自洽
給出了線性規劃中路徑遵循IPM的各種推廣。作為應用,我們推導了求解s-t最小代價流問題的快速算法。隨后,我們引入了自一致性的概念,并給出了多邊形和更一般凸集的障礙函數的概述。
第十二章 線性規劃的橢球法
介紹了凸優化的一類切割平面方法,并分析了一種特殊情況,即橢球體法。然后,我們展示了如何使用這個橢球方法來解決線性程序超過0-1多邊形時,我們只能訪問一個分離oracle的多邊形。
第十三章-凸優化的橢球法
我們展示了如何適應橢球法求解一般凸程序。作為應用,我們提出了子模函數最小化的多項式時間算法和計算組合多邊形上的最大熵分布的多項式時間算法。
本書建立在基本的Python教程的基礎上,解釋了許多沒有被常規覆蓋的Python語言特性:從通過利用入口點作為微服務扮演雙重角色的可重用控制臺腳本,到使用asyncio高效地整理大量來源的數據。通過這種方式,它涵蓋了基于類型提示的linting、低開銷測試和其他自動質量檢查,以演示一個健壯的實際開發過程。
Python的一些功能強大的方面通常用一些設計的示例來描述,這些示例僅作為一個獨立示例來解釋該特性。通過遵循從原型到生產質量的真實應用程序示例的設計和構建,您不僅將看到各種功能是如何工作的,而且還將看到它們如何作為更大的系統設計過程的一部分進行集成。此外,您還將受益于一些有用的附加說明和庫建議,它們是Python會議上問答會議的主要內容,也是討論現代Python最佳實踐和技術的主要內容,以便更好地生成易于維護的清晰代碼。
高級Python開發是為已經能用Python編寫簡單程序的開發人員準備的,這些開發人員希望了解什么時候使用新的和高級語言特性是合適的,并且能夠以一種自信的方式這樣做。它對于希望升級到更高級別的開發人員和迄今為止使用過較老版本Python的非常有經驗的開發人員特別有用。
你將學習
這本書是給誰的 -已經有Python經驗的中高級開發人員。
斯坦福大學Stephen Boyd教授與加州大學Lieven Vandenberghe教授合著的應用線性代數導論:向量、矩陣和最小二乘法《Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares》在2018年由劍橋大學出版社發行,開源書包含19章,473頁pdf,這本書的目的是提供一個介紹向量,矩陣,最小二乘方法,應用線性代數的基本主題。目標是讓學生通俗易懂,入門學習。讓學習者了解在包括數據擬合、機器學習和人工智能,斷層、導航、圖像處理、金融、和自動控制系統的應用。是一本不可多得好教材。?
Stephen P. Boyd是斯坦福大學電子工程Samsung 教授,信息系統實驗室電子工程教授,斯坦福大學電子工程系系主任。他在管理科學與工程系和計算機科學系任職,是計算與數學工程研究所的成員。他目前的研究重點是凸優化在控制、信號處理、機器學習和金融方面的應用。 //web.stanford.edu/~boyd/
Lieven Vandenberghe,美國加州大學洛杉磯分校電子與計算機工程系和數學系教授
這本書的目的是提供一個介紹向量,矩陣,最小二乘方法,應用線性代數的基本主題。我們的目標是讓很少或根本沒有接觸過線性代數的學生快速學習,以及對如何使用它們在許多應用程序中, 包括數據擬合、機器學習和人工智能, 斷層、導航、圖像處理、金融、和自動控制系統。
讀者所需要的背景知識是熟悉基本的數學符號。我們只在少數地方使用微積分,但它并不是一個關鍵的角色,也不是一個嚴格的先決條件。雖然這本書涵蓋了許多傳統上作為概率和統計的一部分來教授的話題,比如如何將數學模型與數據相匹配,但它并不需要概率和統計方面的知識或背景。
這本書涉及的數學比應用線性代數的典型文本還少。我們只使用線性代數中的一個理論概念,線性無關,和一個計算工具,QR分解;我們處理大多數應用程序的方法只依賴于一種方法,即最小二乘(或某種擴展)。從這個意義上說,我們的目標是知識經濟:僅用一些基本的數學思想、概念和方法,我們就涵蓋了許多應用。然而,我們所提供的數學是完整的,因為我們仔細地證明了每一個數學命題。然而,與大多數介紹性的線性代數文本不同,我們描述了許多應用程序,包括一些通常被認為是高級主題的應用程序,如文檔分類、控制、狀態估計和組合優化。
這本書分為三部分。第一部分向讀者介紹向量,以及各種向量運算和函數,如加法、內積、距離和角度。我們還將描述如何在應用程序中使用向量來表示文檔中的字數、時間序列、病人的屬性、產品的銷售、音軌、圖像或投資組合。第二部分對矩陣也做了同樣的處理,最終以矩陣的逆和求解線性方程的方法結束。第三部分,關于最小二乘,是回報,至少在應用方面。我們展示了近似求解一組超定方程的簡單而自然的思想,以及對這一基本思想的一些擴展,可以用來解決許多實際問題。