這本書是在2020年夏天在提供“CSE 312: Foundations of Computing II”期間寫的,它本質上是為計算機科學家提供的概率和統計。課程是以這門課程和斯坦福大學的“CS 109:計算機科學家的概率”為基礎的。我堅信編寫應用程序(包含在第9章中)對于展示為什么這門課是計算機科學的核心要求是必要的。這本教科書目前正在華盛頓大學(2020年秋季)使用。
//courses.cs.washington.edu/courses/cse312/21wi/
這本書的書名聽起來有點神秘。如果這本書以一種錯誤的方式呈現了這個主題,人們為什么要讀它呢?書中哪些地方做得特別“不對”?
在回答這些問題之前,讓我先描述一下本文的目標受眾。這本書是“榮譽線性代數”課程的課堂講稿。這應該是高等數學學生的第一門線性代數課程。它的目標是一個學生,雖然還不是非常熟悉抽象推理,但愿意學習更嚴格的數學,在“烹飪書風格”的微積分類型課程。除了作為線性代數的第一門課程,它也應該是第一門向學生介紹嚴格證明、形式定義——簡而言之,現代理論(抽象)數學風格的課程。
目標讀者解釋了基本概念和具體實例的非常具體的混合,它們通常出現在介紹性的線性代數文本中,具有更抽象的定義和高級書籍的典型構造。
機器學習是數學統計和計算機科學交叉的跨學科領域。機器學習研究統計模型和算法,以從經驗數據中得出預測因子或有意義的模式。機器學習技術主要應用于搜索引擎、語音識別和自然語言處理、圖像檢測、機器人技術等領域。在我們的課程中,我們將討論以下問題:學習的數學模型是什么?如何量化一個學習問題的難度/難度/復雜性?如何選擇學習模型和學習算法?如何衡量機器學習的成功?
我們的課程大綱:
監督學習,非監督學習,強化學習。
機器學習泛化能力
支持向量機,核機
神經網絡和深度學習
矩陣代數是數據分析和統計理論中最重要的數學領域之一。這本書的第一部分為統計中的應用提出矩陣代數的理論的相關方面。本部分從向量和向量空間的基本概念開始,接著介紹矩陣的基本代數性質,然后描述向量和矩陣在多元演算中的解析性質,最后討論線性系統解和特征分析中矩陣的運算。這部分基本上是獨立的。
本書的第二部分開始考慮在統計中遇到的各種類型的矩陣,例如投影矩陣和正定矩陣,并描述這些矩陣的特殊性質。第二部分也介紹了矩陣理論在統計中的一些應用,包括線性模型、多元分析和隨機過程。本部分說明了在本書第一部分中發展的矩陣理論。書的前兩個部分可以作為為統計學生的矩陣代數課程的文本,或作為在線性模型或多元統計的各種課程的補充文本。
這本書的第三部分涵蓋了數值線性代數。它以數值計算的基礎討論開始,然后描述精確和有效的算法因式分解矩陣,求解線性方程組,并提取特征值和特征向量。雖然這本書沒有捆綁到任何特定的軟件系統,它描述并給出了使用數字線性代數的現代計算機軟件的例子。這部分基本上是自包含的,盡管它假設有一些能力用Fortran或C編程和/或使用R/S-Plus或Matlab的能力。書的這一部分可以作為在統計計算中的一門課程的文本使用,或者作為強調計算的各種課程的補充文本。
這本書包括大量的練習,并在附錄中提供了一些解決方案。
James E. Gentle是喬治梅森大學計算統計學教授。他是美國統計協會(ASA)和美國科學促進會的會員。他曾在美國標準局擔任過幾個國家職務并擔任過美國標準局期刊的副主編以及其他統計和計算期刊的副主編。他是隨機數生成和蒙特卡羅方法,第二版,和計算統計元素的作者。
計算機科學在建模和解決問題的方法上正在經歷一個根本性的轉變。早期的計算機科學家主要研究離散數學,專注于由有限數量的不同片段組成的圖形、樹和陣列等結構。隨著快速浮點處理、“大數據”、三維掃描和其他噪雜輸入來源的引入,現代計算機科學工作者必須設計健壯的方法來處理和理解實值數據。現在,除了離散數學,計算機科學家必須同樣流利地掌握多元微積分和線性代數的語言。
數值算法介紹了計算機科學應用的數值方法的用戶所必需的技能。本文是為高級本科生和早期研究生設計的,他們熟悉數學符號和形式,但需要在考慮算法的同時復習連續的概念。它涵蓋了廣泛的主題基礎,從數值線性代數到優化和微分方程,目標是導出標準方法,同時發展直覺和舒適所需的理解更多的文獻在每個子主題。在書中,每一章都溫和而嚴謹地介紹了數值方法、數學背景和現代計算機科學的實例。
幾乎每個部分都考慮了給定類型的數值算法的實際用例。例如,奇異值分解與統計方法、點云對齊和低秩近似一起被引入,最小二乘的討論包括機器學習的概念,如核化和正則化。本理論與應用并行介紹的目的是提高設計數值方法和每種方法在實際情況中的應用。
本課程涵蓋了每個專業程序員需要了解的關于算法和數據結構的基本信息,重點是應用程序和Java實現的科學性能分析。第一部分介紹基本的數據結構、排序和搜索算法。第二部分重點介紹圖形和字符串處理算法。
《算法(第四版》是普林斯頓超級大神教授Robert Sedgewick的神作,該書還有配套的MOOC課程,是算法領域經典的參考書。
這本書涵蓋所有程序員必須掌握的50種算法,全面介紹了關于算法和數據結構的必備知識,并特別針對排序、搜索、圖處理和字符串處理進行了論述。第4版具體給出了每位程序員應知應會的50個算法,提供了實際代碼,而且這些Java代碼實現采用了模塊化的編程風格,讀者可以方便地加以改造。
線性代數是計算和數據科學家的基本工具之一。這本書“高級線性代數:基礎到前沿”(ALAFF)是一個替代傳統高級線性代數的計算研究生課程。重點是數值線性代數,研究理論、算法和計算機算法如何相互作用。這些材料通過將文本、視頻、練習和編程交織在一起來保持學習者的參與性。
我們在不同的設置中使用了這些材料。這是我們在德克薩斯大學奧斯汀分校名為“數值分析:線性代數”的課程的主要資源,該課程由計算機科學、數學、統計和數據科學、機械工程以及計算科學、工程和數學研究生課程提供。這門課程也通過UT-Austin計算機科學碩士在線課程提供“高級線性代數計算”。最后,它是edX平臺上名為“高級線性代數:基礎到前沿”的大規模在線開放課程(MOOC)的基礎。我們希望其他人可以將ALAFF材料重新用于其他學習設置,無論是整體還是部分。
為了退怕學習者,我們采取了傳統的主題的數字線性代數課程,并組織成三部分。正交性,求解線性系統,以及代數特征值問題。
第一部分:正交性探討了正交性(包括規范的處理、正交空間、奇異值分解(SVD)和解決線性最小二乘問題)。我們從這些主題開始,因為它們是其他課程的先決知識,學生們經常與高等線性代數并行(甚至在此之前)進行學習。
第二部分:求解線性系統集中在所謂的直接和迭代方法,同時也引入了數值穩定性的概念,它量化和限定了在問題的原始陳述中引入的誤差和/或在計算機算法中發生的舍入如何影響計算的正確性。
第三部分:代數特征值問題,重點是計算矩陣的特征值和特征向量的理論和實踐。這和對角化矩陣是密切相關的。推廣了求解特征值問題的實用算法,使其可以用于奇異值分解的計算。本部分和本課程以在現代計算機上執行矩陣計算時如何實現高性能的討論結束。
概率論起源于17世紀的法國,當時兩位偉大的法國數學家,布萊斯·帕斯卡和皮埃爾·德·費馬,對兩個來自機會博弈的問題進行了通信。帕斯卡和費馬解決的問題繼續影響著惠更斯、伯努利和DeMoivre等早期研究者建立數學概率論。今天,概率論是一個建立良好的數學分支,應用于從音樂到物理的學術活動的每一個領域,也應用于日常經驗,從天氣預報到預測新的醫療方法的風險。
本文是為數學、物理和社會科學、工程和計算機科學的二、三、四年級學生開設的概率論入門課程而設計的。它提出了一個徹底的處理概率的想法和技術為一個牢固的理解的主題必要。文本可以用于各種課程長度、水平和重點領域。
在標準的一學期課程中,離散概率和連續概率都包括在內,學生必須先修兩個學期的微積分,包括多重積分的介紹。第11章包含了關于馬爾可夫鏈的材料,為了涵蓋這一章,一些矩陣理論的知識是必要的。
文本也可以用于離散概率課程。材料被組織在這樣一種方式,離散和連續的概率討論是在一個獨立的,但平行的方式,呈現。這種組織驅散了對概率過于嚴格或正式的觀點,并提供了一些強大的教學價值,因為離散的討論有時可以激發更抽象的連續的概率討論。在離散概率課程中,學生應該先修一學期的微積分。
為了充分利用文中的計算材料和例子,假設或必要的計算背景很少。所有在文本中使用的程序都是用TrueBASIC、Maple和Mathematica語言編寫的。
《算法》基于伊利諾伊大學厄巴納 - 香檳分校的計算機科學教授 Jeff Erickson 為多個算法課程寫的講義集合,這本教科書已經在伊利諾伊大學厄巴納 - 香檳分校出版,自 1999 年 1 月以來 Jeff Erickson 每年都會使用這本書教授一次算法課程。由于本科理論課程的變化,Jeff Erickson 在 2016 年對講義進行了重大修訂;本書是 Erickson 教授修訂的最基礎課程材料的一部分,主要反映了新的初級理論課程的算法內容。
書籍開源主頁://jeffe.cs.illinois.edu/teaching/algorithms/
Erickson 教授在伊利諾伊州教授的算法課程有兩個重要的先決條件:離散數學課程和基礎數據結構課程。因此,這本教科書可能不適合大多數學生作為數據結構和算法的第一門課程。特別是,Erickson 教授假設至少熟悉以下特定主題:離散數學、證明技巧、迭代編程概念、基礎抽象數據類型、基礎數據結構、基礎算法、基本算法分析、數學能力成熟度。
關于此書的其它信息:
Erickson 教授打算在近期將這本書自印出版,但不用擔心,出版后這個資源也仍然是免費的。 Erickson 教授有一個維護多年的 GitHub 項目,專門為這本書做 Bug 追蹤。 Erickson 教授明確表示,歡迎任何人下載電子版或紙質打印,使用、復制和/或分發此頁面上的任何內容都是允許的。 這本書基于兩門課程,分別是 CS 374 (Spring 2018) 和 CS 473 (Spring 2017),Erickson 還在另一個頁面上提供了課程作業和測試。
GitHub 地址: 作業地址:
Jeff 提供了很多課程資料,包括 CS374 的 PPT、本書沒有涉及的 CS 473 主題以及形式化語言的一些課件。這些資源有的有獨到的見解,但筆記仍然不會有教科書那么精煉,讀者可在教程主頁找到這些額外的課程資源。
近年來,神經網絡已成為分析復雜和抽象數據模型的有力工具。然而,它們的引入本質上增加了我們的不確定性,即分析的哪些特征是與模型相關的,哪些是由神經網絡造成的。這意味著,神經網絡的預測存在偏差,無法與數據的創建和觀察的真實本質區分開來。為了嘗試解決這些問題,我們討論了貝葉斯神經網絡:可以描述由網絡引起的不確定性的神經網絡。特別地,我們提出了貝葉斯統計框架,它允許我們根據觀察某些數據的根深蒂固的隨機性和我們缺乏關于如何創建和觀察數據的知識的不確定性來對不確定性進行分類。在介紹這些技術時,我們展示了如何從原理上獲得神經網絡預測中的誤差,并提供了描述這些誤差的兩種常用方法。我們還將描述這兩種方法在實際應用時如何存在重大缺陷,并強調在使用神經網絡時需要其他統計技術來真正進行推理。