這本書是為那些對解決優化問題感興趣的人準備的。由于優化在科學、工程、經濟學和工業領域的廣泛(和不斷增長的)應用,對于學生和實踐者來說,發展對優化算法的理解是至關重要的。了解這些算法的能力和局限性有助于更好地理解它們對各種應用的影響,并為改進和擴展優化算法和軟件的未來研究指明了方向。在這本書中,我們的目標是對解決連續優化問題的最強大、最先進的技術進行全面描述。通過展示每個算法的激勵思想,我們試圖激發讀者的直覺,使技術細節更容易遵循。
優化是決策科學和物理系統分析中的一個重要工具。為了使用這個工具,我們必須首先確定一些目標,一個對所研究系統性能的定量度量。這個目標可以是利潤、時間、勢能,或者任何可以用單個數字表示的量或量的組合。目標取決于系統的某些特征,稱為變量或未知數。我們的目標是找到優化目標的變量值。在某些方面,變量通常是受限制的。例如,分子中的電子密度和貸款利率等物理量不能是負的。
組合學是研究有限或可數離散結構的數學分支。組合學的方面包括計算給定種類和大小的結構(枚舉組合學),決定何時可以滿足某些標準,以及構造和分析滿足標準的對象(如在組合設計和矩陣理論中),找到“最大”,“最小”,或“最優”對象(極值組合學和組合優化學),以及在代數背景下研究組合結構,或將代數技術應用于組合問題(代數組合學)。
圖論是對圖的研究,圖是用來建模對象之間的成對關系的數學結構。在這種情況下,“圖”是由“頂點”或“節點”和連接它們的線(稱為邊)組成的。一個圖可以是無向的,這意味著與每條邊關聯的兩個頂點之間沒有區別,或者它的邊可以從一個頂點指向另一個頂點;參見圖表(數學)以獲得更詳細的定義,以及通常被認為是圖表類型的其他變體。圖是離散數學的主要研究對象之一。
這本書讓讀者了解組合學和圖論的經典部分,同時也討論了這一領域的一些最新進展:一方面,提供幫助學生學習基本技術的材料,另一方面,表明一些研究前沿的問題是可以理解的,對有才華和勤奮的本科生來說是容易理解的。
在過去的十年里,人們對人工智能和機器學習的興趣有了相當大的增長。從最廣泛的意義上說,這些領域旨在“學習一些有用的東西”,了解生物體所處的環境。如何處理收集到的信息導致了算法的發展——如何處理高維數據和處理不確定性。在機器學習和相關領域的早期研究階段,類似的技術在相對孤立的研究社區中被發現。雖然不是所有的技術都有概率論的自然描述,但許多都有,它是圖模型的框架(圖和概率論的結合),使從統計物理、統計、機器學習和信息理論的想法的理解和轉移。在這種程度上,現在有理由期待機器學習研究人員熟悉統計建模技術的基礎知識。這本書集中在信息處理和機器學習的概率方面。當然,沒有人說這種方法是正確的,也沒有人說這是唯一有用的方法。事實上,有人可能會反駁說,這是沒有必要的,因為“生物有機體不使用概率論”。無論情況是否如此,不可否認的是,圖模型和概率框架幫助機器學習領域出現了新算法和模型的爆炸式增長。我們還應該清楚,貝葉斯觀點并不是描述機器學習和信息處理的唯一方法。貝葉斯和概率技術在需要考慮不確定性的領域中發揮了自己的作用。
//www0.cs.ucl.ac.uk/staff/d.barber/brml/
本書結構
本書第一部分的目的之一是鼓勵計算機科學專業的學生進入這一領域。許多現代學生面臨的一個特別困難是有限的正規微積分和線性代數訓練,這意味著連續和高維分布的細節可能會讓他們離開。在以概率作為推理系統的一種形式開始時,我們希望向讀者展示他們可能更熟悉的邏輯推理和動態規劃的想法如何在概率環境中有自然的相似之處。特別是,計算機科學的學生熟悉的概念,算法為核心。然而,在機器學習中更常見的做法是將模型視為核心,而如何實現則是次要的。從這個角度來看,理解如何將一個數學模型轉換成一段計算機代碼是核心。
第二部分介紹了理解連續分布所需的統計背景,以及如何從概率框架來看待學習。第三部分討論機器學習的主題。當然,當一些讀者看到他們最喜歡的統計話題被列在機器學習下面時,他們會感到驚訝。統計學和機器學習之間的一個不同觀點是,我們最終希望構建什么樣的系統(能夠完成“人類/生物信息處理任務的機器),而不是某些技術。因此,我認為這本書的這一部分對機器學習者來說是有用的。第四部分討論了明確考慮時間的動態模型。特別是卡爾曼濾波器被視為圖模型的一種形式,這有助于強調模型是什么,而不是像工程文獻中更傳統的那樣把它作為一個“過濾器”。第五部分簡要介紹了近似推理技術,包括隨機(蒙特卡羅)和確定性(變分)技術。
強化學習是一種學習范式,它關注的是如何控制一個系統,從而最大化一個表示長期目標的數值性能度量。強化學習與監督學習的區別在于,對于學習器的預測,只會給予部分反饋。此外,這些預測可能通過影響被控制系統的未來狀態而產生長期影響。因此,時間扮演著特殊的角色。強化學習的目標是發展有效的學習算法,以及了解算法的優點和局限性。強化學習之所以引起人們極大的興趣,是因為它可以用于解決大量的實際應用,從人工智能到運籌學或控制工程的問題。在這本書中,我們專注于那些建立在強大的動態規劃理論基礎上的強化學習算法。我們給出了一個相當全面的學習問題的目錄,描述了核心思想,關注大量的最先進的算法,然后討論了它們的理論性質和局限性。
約束優化已經成為一個很好的研究領域,有一些強大的技術可以解決該領域的一般問題。在這本書中,考慮了一類特殊的約束,稱為幾何約束,它表示優化問題的解在流形上。這是一個最近的研究領域,它為更一般的約束優化方法提供了強大的替代方案。經典的約束優化技術適用于比流形大得多的嵌入式空間。因此,在流形上工作的優化算法具有較低的復雜性,而且通常還具有更好的數值特性(例如,保持能量等不變量的數值積分方案)。作者將此稱為受限搜索空間中的無約束優化。
可以用流形來描述差分方程或微分方程的思想起源于布羅克特、弗拉施卡和魯提肖瑟的工作。例如,他們描述了等譜流,這些流產生的時變矩陣彼此相似,最終收斂到有序特征值的對角矩陣。這些想法在數值線性代數領域沒有像在動力系統領域那樣得到那么多的關注,因為由此產生的差分和微分方程并沒有立即導致有效的算法實現。
這本書對發展高階優化技術的微分幾何的進行了深入的介紹,但它仍然成功地用簡單的想法解釋復雜的概念。這些思想隨后被用于發展牛頓型方法以及其他超線性方法,如信賴域方法和非精確和準牛頓方法,這些方法更加強調概念算法的高效數值實現。
圖論和組合優化之間的融合已經導致了理論深刻和實際有用的算法,但目前沒有一本書同時涵蓋這兩個領域。《圖論、組合優化和算法手冊》是第一本對圖論和組合優化進行統一、全面處理的書。
地址:
分為11個章節,集中在圖論,組合優化和算法問題。本書為讀者提供了算法和理論基礎:
理解由圖結構形成的現象 為圖結構的研究開發所需的算法和優化工具 設計和規劃導致某些理想行為的圖形結構
有來自40多個世界各地的專家的貢獻,這本手冊配備讀者必要的技術和工具,以解決各種應用中的問題。讀者可以接觸到圖論和組合優化的廣泛主題的理論和算法基礎,使他們能夠識別(并因此解決)在不同學科中遇到的問題,如電氣、通信、計算機、社會、交通、生物和其他網絡。
圖論和組合優化的研究在過去的三十年左右經歷了爆炸性的增長。電信網絡、大規模集成電路設計等技術突飛猛進;網絡科學等新領域的出現強調了在社會網絡和生物網絡中的應用;理論計算機科學的進步都促進了圖論、組合優化和相關算法問題的興趣和知識的爆炸。因此,毫不奇怪,這些學科已經成為工程和計算機科學課程的中心角色。現在有幾本關于圖論或組合優化的優秀教科書。這些書大致可以分為兩類。第一類是處理圖論或組合優化中所有基本主題的書籍。這些書是供大四本科生和初學研究生使用的教科書。第二類是對某些特定主題進行深入探討的書籍。它們適合那些打算從事圖論或組合優化研究的學生。由于這些學科已經達到了一定的成熟水平,我們認為需要一本對圖論和組合優化提供更廣泛和綜合處理的書。這樣的一本書將幫助學生和研究人員裝備自己的技術和工具,將加強他們的能力,看到機會應用圖論和組合優化解決他們在應用中遇到的問題。我們多年來在教學和應用圖論和組合優化方面的經驗使我們相信,雖然工具和技術能提高一個人解決問題的能力,但更廣泛地接觸它們也能幫助個人看到其他情況下看不到的問題。
利用Python及其標準庫中的數值和數學模塊,以及流行的開源數值Python包,如NumPy、SciPy、FiPy、matplotlib等。這個完全修訂的版本,更新了每個包的最新細節和更改Jupyter項目,演示了如何在大數據,云計算,金融工程,商業管理和更多的數字計算解決方案和數學模型應用。
Numerical Python,第二版,提供了許多使用Python在數據科學和統計中應用的全新案例研究示例,以及對以前的許多示例的擴展。由于Python的語法簡單而高級,以及數據分析的多種選項,因此它們都展示了Python在快速開發和探索性計算方面的強大功能。
閱讀本書后,讀者將熟悉許多計算技術,包括基于數組和符號計算,可視化和數字文件I/O,方程求解,優化,插值和積分,以及領域特定的計算問題,如微分方程求解,數據分析,統計建模和機器學習。
科學和數值計算是研究、工程和分析領域的一個蓬勃發展的領域。在過去的幾十年里,計算機行業的革命為計算機從業者提供了新的和強大的工具。這使得前所未有的規模和復雜性的計算工作成為可能。結果,整個領域和行業如雨后春筍般涌現出來。這種發展仍在繼續,隨著硬件、軟件和算法的不斷改進,它正在創造新的機會。最終,實現這一運動的技術是近幾十年來發展起來的強大的計算硬件。然而,對于計算從業者來說,用于計算工作的軟件環境與執行計算的硬件同等重要(如果不是更重要的話)。這本書是關于一個流行的快速增長的數值計算環境:Python編程語言及其用于計算工作的庫和擴展的充滿活力的生態系統。
計算是一項跨學科的活動,需要理論和實踐學科的經驗和專業知識:對數學和科學思維的牢固理解是有效計算工作的基本要求。同樣重要的是在計算機編程和計算機科學方面的扎實訓練。這本書的作用是通過介紹如何使用Python編程語言和圍繞該語言出現的計算環境來完成科學計算,從而將這兩個主題連接起來。在這本書中,假定讀者先前有一些數學和數值方法的訓練,以及Python編程的基本知識。這本書的重點是介紹用Python解決計算問題的實用方法。簡要介紹的理論涵蓋的主題給出在每一章,以介紹符號和提醒讀者的基本方法和算法。然而,這本書并不是對數值方法的自洽處理。為了幫助讀者以前不熟悉這本書的一些主題,進一步閱讀的參考文獻在每一章的結尾。同樣,沒有Python編程經驗的讀者可能會發現,將這本書和一本專注于Python編程語言本身的書一起閱讀會很有用
//www.programmer-books.com/wp-content/uploads/2019/02/Numerical-Python-2nd-Edition.pdf
有很多介紹抽象代數概念。然而,對于那些在工程、計算機科學、物理科學、工業或金融領域需要數學背景的人來說,沒有哪一個比本書《代數:計算導論》更適合。作者用一種獨特的方法和演示,演示了如何使用軟件作為解決代數問題的工具。
多種因素使這篇文章與眾不同。它清晰的闡述,每一章都建立在前一章的基礎上,為讀者提供了更清晰的理解。首先介紹置換群,然后是線性群,最后是抽象群。他通過引入伽羅瓦群作為對稱群來謹慎地推動伽羅瓦理論。他包括了許多計算,既作為例子,也作為練習。所有這些都是為了幫助讀者更好地理解更抽象的概念。
//www.routledge.com/Algebra-A-Computational-Introduction/Scherk/p/book/9781584880646
通過仔細集成使用的Mathematica?在整個書中的例子和練習,作者幫助讀者發展一個更深的理解和欣賞材料。從互聯網上下載的大量練習和示例有助于建立有價值的Mathematica工作知識,并為在該領域遇到的復雜問題提供了很好的參考。
凸優化研究在凸集上最小化凸函數的問題。凸性,連同它的許多含義,已經被用來為許多類凸程序提出有效的算法。因此,凸優化已經廣泛地影響了科學和工程的幾個學科。
過去幾年,凸優化算法徹底改變了離散和連續優化問題的算法設計。對于圖的最大流、二部圖的最大匹配和子模函數最小化等問題,已知的最快算法涉及到對凸優化算法的基本和重要使用,如梯度下降、鏡像下降、內點方法和切割平面方法。令人驚訝的是,凸優化算法也被用于設計離散對象(如擬陣)的計數問題。同時,凸優化算法已經成為許多現代機器學習應用的中心。由于輸入實例越來越大、越來越復雜,對凸優化算法的需求也極大地推動了凸優化技術本身的發展。
這本書的目的是使讀者能夠獲得對凸優化算法的深入理解。重點是從第一性原理推導出凸優化的關鍵算法,并根據輸入長度建立精確的運行時間界限。由于這些方法的廣泛適用性,一本書不可能向所有人展示這些方法的應用。這本書展示了各種離散優化和計數問題的快速算法的應用。本書中所選的應用程序的目的是為了說明連續優化和離散優化之間的一個相當令人驚訝的橋梁。
目標受眾包括高級本科生、研究生和理論計算機科學、離散優化和機器學習方面的研究人員。
//convex-optimization.github.io/
第一章-連續優化和離散優化的銜接
我們提出了連續優化和離散優化之間的相互作用。最大流問題是一個激勵人心的例子。我們也追溯了線性規劃的歷史——從橢球法到現代內點法。最后介紹了橢球法在求解最大熵問題等一般凸規劃問題上的一些最新成果。
第二章 預備知識
我們復習這本書所需的數學基礎知識。這些內容包括多元微積分、線性代數、幾何、拓撲、動力系統和圖論中的一些標準概念和事實。
第三章-凸性
我們引入凸集,凸性的概念,并展示了伴隨凸性而來的能力:凸集具有分離超平面,子梯度存在,凸函數的局部最優解是全局最優解。
第四章-凸優化與效率
我們提出了凸優化的概念,并正式討論了它意味著什么,有效地解決一個凸程序作為一個函數的表示長度的輸入和期望的精度。
第五章-對偶性與最優性
我們引入拉格朗日對偶性的概念,并證明在一個稱為Slater條件的溫和條件下,強拉格朗日對偶性是成立的。隨后,我們介紹了拉格朗日對偶和優化方法中經常出現的Legendre-Fenchel對偶。最后,給出了Kahn-Karush-Tucker(KKT)最優性條件及其與強對偶性的關系。
第六章-梯度下降
我們首先介紹梯度下降法,并說明如何將其視為最陡下降。然后,我們證明了梯度下降法在函數的梯度是連續的情況下具有收斂時間界。最后,我們使用梯度下降法提出了一個快速算法的離散優化問題:計算最大流量無向圖。
第七章-鏡像下降和乘法權值更新
我們推出我們的凸優化的第二個算法-稱為鏡面下降法-通過正則化觀點。首先,提出了基于概率單純形的凸函數優化算法。隨后,我們展示了如何推廣它,重要的是,從它推導出乘法權值更新(MWU)方法。然后利用后一種算法開發了一個快速的近似算法來解決圖上的二部圖匹配問題。
第八章-加速梯度下降
提出了Nesterov的加速梯度下降算法。該算法可以看作是前面介紹的梯度下降法和鏡像下降法的混合。我們還提出了一個應用加速梯度法求解線性方程組。
第九章-牛頓法
IWe開始了設計凸優化算法的旅程,其迭代次數與誤差成對數關系。作為第一步,我們推導并分析了經典的牛頓方法,這是一個二階方法的例子。我們認為牛頓方法可以被看作是黎曼流形上的最速下降,然后對其收斂性進行仿射不變分析。
第十章 線性規劃的內點法
利用牛頓法及其收斂性,推導出一個線性規劃的多項式時間算法。該算法的關鍵是利用障礙函數的概念和相應的中心路徑,將有約束優化問題簡化為無約束優化問題。
第十一章-內點法的變種與自洽
給出了線性規劃中路徑遵循IPM的各種推廣。作為應用,我們推導了求解s-t最小代價流問題的快速算法。隨后,我們引入了自一致性的概念,并給出了多邊形和更一般凸集的障礙函數的概述。
第十二章 線性規劃的橢球法
介紹了凸優化的一類切割平面方法,并分析了一種特殊情況,即橢球體法。然后,我們展示了如何使用這個橢球方法來解決線性程序超過0-1多邊形時,我們只能訪問一個分離oracle的多邊形。
第十三章-凸優化的橢球法
我們展示了如何適應橢球法求解一般凸程序。作為應用,我們提出了子模函數最小化的多項式時間算法和計算組合多邊形上的最大熵分布的多項式時間算法。
這本書全面介紹優化工程系統設計的實用算法。這本書從工程的角度進行優化,其目標是設計一個系統來優化受約束的一組指標。讀者將學習一系列挑戰的計算方法,包括高維搜索空間,處理有多個競爭目標的問題,以及適應指標中的不確定性。圖表、例子和練習傳達了數學方法背后的直覺。文本提供了Julia編程語言的具體實現。
//mitpress.mit.edu/books/algorithms-optimization
許多學科的核心都涉及到優化。在物理學中,系統被驅動到他們的最低能量狀態服從物理定律。在商業上,公司的目標是股東價值最大化。在生物學中,越健康的生物體越有可能生存下來。這本書將從工程的角度關注優化,目標是設計一個系統來優化受約束的一組指標。這個系統可以是一個復雜的物理系統,比如飛機,也可以是一個簡單的結構,比如自行車車架。這個系統甚至可能不是物理的;例如,我們可能會有興趣為自動化車輛設計一個控制系統,或設計一個計算機視覺系統來檢測腫瘤活檢的圖像是否為癌。我們希望這些系統能運行得盡可能好。根據應用程序的不同,相關的度量可能包括效率、安全性和準確性。對設計的限制可能包括成本、重量和結構堅固性。
這本書是關于優化的算法,或計算過程。給定系統設計的一些表示,如編碼機翼幾何的一組數字,這些算法將告訴我們如何搜索空間的可能設計,以找到最好的一個。根據應用程序的不同,這種搜索可能涉及運行物理實驗,比如風洞測試,也可能涉及計算解析表達式或運行計算機模擬。我們將討論解決各種挑戰的計算方法,例如如何搜索高維空間,處理有多個競爭目標的問題,以及適應指標中的不確定性。
在復雜的以人為中心的系統中,每天的決策都具有決策相關信息不完全的特點。現有決策理論的主要問題是,它們沒有能力處理概率和事件不精確的情況。在這本書中,我們描述了一個新的理論的決策與不完全的信息。其目的是將決策分析和經濟行為的基礎從領域二價邏輯轉向領域模糊邏輯和Z約束,從行為決策的外部建模轉向組合狀態的框架。
這本書將有助于在模糊邏輯,決策科學,人工智能,數學經濟學,和計算經濟學的專業人員,學者,經理和研究生。
讀者:專業人士,學者,管理者和研究生在模糊邏輯,決策科學,人工智能,數學經濟學,和計算經濟學。