這本書描述了深度學習系統: 算法,編譯器和處理器組件,以有效地訓練和部署深度學習模型的商業應用。
當最先進的深度學習(DL)工作負載消耗的計算量快速增長時,計算能力的指數增長正在放緩。模型大小、服務延遲和功率限制是在許多應用程序中部署DL模型的一個重大挑戰。因此,協同設計算法、編譯器和硬件勢在必行,以提高性能、功率和效率的整體系統級和算法解決方案來加速這一領域的發展。
推進深度學習系統的工程師通常包括三類:(1)數據科學家,他們與領域專家(如醫學、經濟或氣候科學家)合作,利用和開發深度學習算法;(2)硬件設計師開發專門的硬件來加速DL模型中的組件;(3)性能和編譯工程師優化軟件,使其在給定的硬件上更有效地運行。硬件工程師應該了解產品和學術模型的特性和組成部分,這些特性和組成部分很可能被業界采用,以指導影響未來硬件的設計決策。數據科學家在設計模型時應該注意部署平臺的限制。性能工程師應該支持跨不同模型、庫和硬件目標的優化。
本書的目的是提供扎實的理解 (1)工業DL算法的設計、訓練和應用; (2) 將深度學習代碼映射到硬件目標的編譯技術; (3) 加速DL系統的關鍵硬件特性。本書旨在促進DL系統的發展的共同創新。它是為在一個或多個領域工作的工程師編寫的,他們試圖了解整個系統堆棧,以便更好地與在系統堆棧其他部分工作的工程師協作。
這本書詳細介紹了工業中DL模型的進步和采用,解釋了訓練和部署過程,描述了今天和未來模型所需的基本硬件架構特征,并詳細介紹了DL編譯器的進步,以有效地執行各種硬件目標的算法。
本書的獨特之處在于對整個DL系統堆棧的全面闡述,對商業應用的強調,以及設計模型和加速其性能的實用技術。作者有幸與許多擁有超大規模數據中心的高科技公司的硬件、軟件、數據科學家和研究團隊一起工作。這些公司采用了本書中提供的許多例子和方法。
本書側重于基于python的工具和技術,以幫助您在典型數據科學棧的所有方面(如統計分析、可視化、模型選擇和特性工程)變得高效。
您將回顧日常業務流程中潛伏的低效率和瓶頸,并使用實際的解決方案來解決它們。重復數據科學任務的自動化是貫穿全書的一個關鍵思維模式。您將學習如何在Python生態系統中已經存在的高級庫和包的幫助下擴展現有的編碼實踐,以高效地處理更大的數據集。
這本書關注的主題包括如何測量機器學習模型的內存占用和執行速度,數據科學管道的質量測試,以及為應用程序開發模塊化數據科學管道。您將回顧Python庫,這些庫在自動化和加速日常任務方面非常有用。
最后,您將理解并執行傳統方法之外的數據科學和機器學習任務,并利用Python數據科學生態系統的全部范圍來提高生產率。
你將學習
隨著神經網絡在21世紀的復興,深度學習已經成為一個非常活躍的研究領域,為現代機器學習鋪平了道路。在這本實用的書中,作者Nikhil Buduma提供了例子和明確的解釋,以指導您通過這個復雜的領域的主要概念。
谷歌、微軟和Facebook等公司都在積極發展內部深度學習團隊。然而,對于我們其他人來說,深度學習仍然是一個相當復雜和難以掌握的學科。如果您熟悉Python,并且有微積分的背景知識,并且對機器學習有基本的了解,那么這本書將幫助您入門。
本書的第一章致力于通過深入鉆研線性代數和概率來介紹數學基礎,這些深度嵌入到深度學習領域。接下來的幾個章節將討論前饋神經網絡的結構,如何在代碼中實現它們,以及如何在現實世界的數據集上訓練和評估它們。本書的其余部分致力于深度學習的具體應用,并理解為這些應用開發的專門學習技術和神經網絡架構背后的直覺。雖然我們在后面的章節中涉及到高級的研究,但我們希望提供這些技術的分解,這些技術來源于基本原則,易于理解。
//www.oreilly.com/library/view/fundamentals-of-deep/9781491925607/
復雜的計算,比如訓練深度學習模型或運行大規模模擬,可能需要非常長的時間。高效的并行編程可以節省數小時甚至數天的計算時間。并行和高性能計算向您展示了如何通過掌握多核處理器和GPU硬件的并行技術,為您的程序提供更快的運行時間、更大的可擴展性和更高的能源效率。
并行和高性能計算提供了保證提高代碼有效性的技術。您將學習評估硬件架構并使用OpenMP和MPI等行業標準工具。您將掌握最適合高性能計算的數據結構和算法,并學習在手持設備上節省能源的技術。你甚至可以在一組GPU上運行一個大規模的海嘯模擬。
算法設計藝術是對所有算法設計書籍的補充感知,是所有層次學習者以及處理算法問題的專業人員的路線圖。此外,這本書提供了一個全面的介紹算法,涵蓋了相當深的,但使他們的設計和分析,以所有層次的讀者。所有的算法都是用“偽代碼”來描述和設計的,任何不懂編程的人都可以讀懂。
本書包括一系列綜合問題及其針對每種算法的解決方案,以展示其執行評估和復雜性,目標是:
//www.manning.com/books/graph-powered-machine-learning
機器學習的核心是有效地識別數據中的模式和關系。許多任務,例如查找詞匯之間的關聯以便您能夠做出準確的搜索建議,或者在社交網絡中定位具有相似興趣的個人,很自然地以圖Graph的形式表達出來。圖驅動機器學習教你如何使用基于圖形的算法和數據組織策略來開發高級的機器學習應用程序。
對這項技術
對于任何涉及到大型數據集中的模式匹配的任務,基于圖的機器學習都是一個非常強大的工具。應用程序包括安全問題,如識別欺詐或檢測網絡入侵,應用程序領域,如社交網絡或自然語言處理,以及更好的用戶體驗,通過準確的推薦和智能搜索。通過將數據組織和分析為圖形,您的應用程序可以更流暢地使用以圖形為中心的算法(如最近鄰算法或頁面排名算法),在這些算法中,快速識別和利用相關關系非常重要。現代圖形數據存儲(如Neo4j或Amazon Neptune)是支持圖形機器學習的現成工具。
關于這本書
圖驅動機器學習向您介紹圖技術概念,強調圖在機器學習和大數據平臺中的作用。您將深入了解各種技術,包括數據源建模、算法設計、鏈接分析、分類和集群。在掌握核心概念之后,您將探索三個端到端項目,它們將演示體系結構、最佳設計實踐、優化方法和常見缺陷。作者亞歷山德羅·內格羅在構建基于圖形的機器學習系統方面的豐富經驗在每一章中都有所體現,你可以從他與真實客戶合作的實例和具體場景中學習!
里面有什么
機器學習項目的生命周期 端到端應用程序 大數據平臺中的圖形 數據源建模 自然語言處理、推薦和相關搜索 優化方法
本書組織
這本書分為四部分,共12章。第一部分介紹了書中的主要主題,從通用機器學習和圖的概念開始,然后轉移到將這些概念結合起來的好處:
第一章介紹了機器學習和圖,涵蓋了理解以下章節所必需的基本概念。
第二章列舉了將大數據作為機器學習輸入的主要挑戰,并討論了如何使用圖模型和圖數據庫來處理這些挑戰。介紹了圖形數據庫的主要特點。
第三章詳細描述了圖在機器學習工作流中的作用,并描述了一個用于大規模圖處理的系統。
第2部分討論了幾個實際用例,在這些用例中,圖形支持了機器學習項目的開發,并改進了最終的結果,特別關注以下:
第四章介紹了最常見的推薦技術,并描述了如何為其中之一設計合適的圖模型:基于內容的推薦引擎。它詳細展示了如何將現有(非圖)數據集導入到圖模型中,并實現基于內容的工作推薦引擎。
第五章描述了如何為協同過濾方法設計合適的圖模型,以及如何實現充分工作的協同過濾推薦引擎。
第六章介紹了基于會話的推薦算法,并描述了一個能夠捕獲用戶會話數據的圖模型。它演示了如何將示例數據集導入到設計的模型中,并在其上實現一個真正的推薦引擎。
第七章通過一個考慮用戶上下文的推薦引擎的實現來驅動讀者。它描述了上下文感知推薦引擎的圖模型,并展示了如何將現有數據集導入到圖模型中。此外,本章還說明了如何在單個引擎中組合多種推薦方法。
第三部分討論了欺詐檢測:
第八章介紹了欺詐檢測,并描述了不同領域的不同類型的欺詐。它還規定了圖形在建模數據中的作用,以便更快更容易地揭示欺詐,以及一些用于打擊欺詐的簡單圖形模型中的技術和算法。
第九章轉向基于異常檢測的更高級的打擊欺詐的算法。它展示了如何使用圖來存儲和分析事務的k-NN,并識別異常事務。
第十章描述了如何使用社會網絡分析(SNA)對欺詐者和欺詐風險進行分類。它列出了基于SNA的欺詐分析的不同圖表算法,并展示了如何從數據中得出正確的圖表。
第四部分介紹了自然語言處理(NLP):
第十一章介紹了基于圖的自然語言處理的相關概念。特別地,它描述了一種通過NLP提取非結構化數據的隱藏結構來分解文本并將其存儲到圖中的簡單方法。
第十二章介紹了知識圖譜,詳細描述了如何從文本中提取實體和關系,并從中創建知識圖譜。它列出了知識圖譜使用的后處理技術,如語義網絡構建和自動主題抽取。
這本書是為那些對解決優化問題感興趣的人準備的。由于優化在科學、工程、經濟學和工業領域的廣泛(和不斷增長的)應用,對于學生和實踐者來說,發展對優化算法的理解是至關重要的。了解這些算法的能力和局限性有助于更好地理解它們對各種應用的影響,并為改進和擴展優化算法和軟件的未來研究指明了方向。在這本書中,我們的目標是對解決連續優化問題的最強大、最先進的技術進行全面描述。通過展示每個算法的激勵思想,我們試圖激發讀者的直覺,使技術細節更容易遵循。
優化是決策科學和物理系統分析中的一個重要工具。為了使用這個工具,我們必須首先確定一些目標,一個對所研究系統性能的定量度量。這個目標可以是利潤、時間、勢能,或者任何可以用單個數字表示的量或量的組合。目標取決于系統的某些特征,稱為變量或未知數。我們的目標是找到優化目標的變量值。在某些方面,變量通常是受限制的。例如,分子中的電子密度和貸款利率等物理量不能是負的。
在生產中使用端到端示例構建和部署機器學習和深度學習模型。
本書以機器學習模型部署過程及其相關挑戰為重點。接下來,它涵蓋了使用不同的web框架(如Flask和Streamlit)構建和部署機器學習模型的過程。關于Docker的那一章將介紹如何打包和包含機器學習模型。本書還說明了如何使用Kubernetes建立和訓練大規模的機器學習和深度學習模型。
對于那些希望通過采用預構建模型并將其部署到生產環境中來提高機器學習水平的人來說,這本書是一個很好的起點。它還為那些想要超越Jupyter ,在云環境下進行大規模訓練的人提供了指導。書中提供的所有代碼都以Python腳本的形式提供給您,您可以嘗試這些示例并以有趣的方式擴展它們。
你將學會 :
使用Kubernetes大規模構建、訓練和部署機器學習模型
將任何類型的機器學習模型容器化,并使用Docker在任何平臺上運行
使用Flask和Streamlit框架部署機器學習和深度學習模型
利用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