并行、并發和分布式計算(CPDC)越來越多地融入到幾乎所有的計算機使用環節中。僅僅具備傳統順序編程的能力對于任何級別的程序員來說已經不夠了。甚至初級程序員也需要能做更多的事情。本書討論了并行性的實踐探索,目標讀者是沒有或只有最基礎編程經驗的學生的教師。實踐活動是在Scratch編程語言中開發的。Scratch在各種高等教育機構被用作專業和非專業的第一語言。Scratch的一個優點是,編程是通過拖拽和連接塊來完成的,因此學生可以非常快速地創建有趣的程序。這對于無先決條件的方法來說是至關重要的。隨著大量數據的可用性和同時使用互聯網的人數的持續增加,“并行”進行計算活動也變得越來越重要,這也被稱為并發。并行和分布式計算的概念適用于計算機科學領域的許多子領域。這些子領域包括算法、計算機架構、網絡、操作系統和軟件工程。在21世紀初,多處理器的設計以及其他使復雜程序運行得更快的策略的發展如雨后春筍。并發、互斥、狀態和內存操作的一致性、消息傳輸和共享內存模型構成了并行和分布式計算的基礎。本書包含多個小例子、演示材料和樣本練習,教師可以用它們來教授剛剛接觸基礎編程概念的學生并行編程概念。更具體地說,它解決了Python多處理特性,如fork/join線程、消息傳遞、線程間共享資源和使用鎖。并行性的應用示例來自搜索、排序、模擬和圖像處理等應用領域。這本書總共分為八個不同的章節。第一章為讀者深入介紹了計算模型。并行、并發和分布式計算的發展是第二章的討論主題。第三章詳細討論了并發計算的概念。在第四章中,讀者會全面了解并行計算的概念。分布式計算模型是第五章的主要討論話題。第六章闡述了并發計算、并行計算和分布式計算的應用。在第七章中,討論了計算模型的最新進展。在最后一章,“并發、并行和分布式計算”,我們討論了這三種計算的前景。這本書很好地概述了計算機領域的許多不同方面。書中的材料以一種即使是沒有計算機知識的讀者也能理解并熟悉涉及的基本思想的方式呈現。
《自然語言處理深度學習》教你如何使用Python和Keras深度學習庫創建高級NLP應用。您將學習使用最先進的工具和技術,包括BERT和XLNET、多任務學習和基于深度記憶的NLP。精彩的示例為您提供了各種真實的NLP應用程序的實際操作經驗。另外,詳細的代碼討論向您展示了如何使每個示例適合您自己的使用!
//www.manning.com/books/deep-learning-for-natural-language-processing
近幾十年來,計算機一直在努力理解語言。在語言學、計算機科學、統計學和機器學習等學科的支持下,計算語言學或自然語言處理(NLP)領域在眾多科學期刊、會議和行業積極參與的支持下,已經全面發展起來。像谷歌、Facebook、IBM和微軟這樣的大型科技公司似乎已經把他們在自然語言分析和理解方面的努力放在了優先位置,并逐步為自然語言處理社區提供數據集和有用的開源軟件。目前,深度學習正日益主導著自然語言處理領域。
對于渴望加入這一激動人心的領域的人來說,面向深度學習的NLP社區的新發展速度之快可能會讓人望而生畏。一方面,描述、統計和更傳統的機器學習方法與深度學習神經網絡的高度技術性、程序性方法之間似乎存在很大的差距。本書旨在通過對NLP深度學習的簡單介紹,來彌合這一差距。它的目標是學生、語言學家、計算機科學家、從業者以及所有對人工智能感興趣的人。讓我們把這些人稱為NLP工程師。當我還是一名學生的時候,當時缺乏系統的計算語言學課程,我幾乎拼湊了一個個人的——而且必然是不完整的——NLP課程。這是一項艱難的工作。我寫這本書的動機是為了讓有抱負的NLP工程師的旅程更容易一些,并通過向您介紹基于深度學習的NLP的基礎知識,給您一個領先的開始。
本書將為您全面介紹深度學習應用于各種語言分析任務,并輔以實際操作代碼。明確地將計算語言學的常青樹(如詞性標記、文本相似性、主題標記和問題回答)與深度學習聯系起來,將幫助您成為熟練的深度學習、自然語言處理(NLP)專家。除此之外,這本書還涵蓋了最先進的方法來挑戰新問題。
第1部分由第1、2和3章組成,介紹了深度學習的歷史、面向NLP的深度學習的基本架構及其在Keras中的實現,以及如何使用嵌入和流行的嵌入策略表示用于深度學習的文本。第2部分由第4、5和6章組成,重點是用深度學習評估文本的相似性,用帶有記憶的問答模型處理長序列,然后將這種記憶模型應用于其他NLP。第3部分由第7、8、9和10章組成,首先介紹神經注意,然后使用transformer轉到多任務學習的概念,最后實際使用BERT并檢查它產生的嵌入。
這本教科書在機器學習的背景下介紹線性代數和優化。書中提供了例子和練習。每個章節末尾的練習解決方案手冊可供教學指導老師使用。本教材針對計算機科學、數學和數據科學領域的研究生和教授。高級本科生也可以使用本教材。本書各章節的組織方式如下:
1. 線性代數及其應用:章節集中在線性代數的基礎以及它們在奇異值分解、矩陣分解、相似矩陣(核方法)和圖分析方面的常見應用。大量的機器學習應用已經被用作例子,如光譜聚類、基于核的分類和異常值檢測。緊密整合的線性代數方法與例子,從機器學習區分這本書從線性代數的一般卷。重點顯然是機器學習線性代數最相關的方面,并教讀者如何應用這些概念。
2. 優化及其應用:機器學習的大部分內容都是優化問題,其中我們試圖最大化回歸和分類模型的準確性。以優化為中心的機器學習的“父問題”是最小二乘回歸。有趣的是,這個問題在線性代數和優化中都有出現,是連接這兩個領域的關鍵問題之一。最小二乘回歸也是支持向量機、邏輯回歸和推薦系統的起點。此外,降維和矩陣分解的方法也需要優化方法的發展。在計算圖中討論了優化的一般觀點,以及它在神經網絡中的反向傳播的應用。
機器學習初學者經常面臨的一個挑戰是線性代數和優化所需的廣泛背景。一個問題是,現有的線性代數和優化課程并不是針對機器學習的;因此,一個人通常需要完成比機器學習所需的更多的課程材料。此外,優化和線性代數的某些類型的思想和技巧在機器學習中出現的頻率比其他以應用程序為中心的設置更高。因此,發展一種更適合機器學習的特定視角的線性代數和優化的觀點具有重要的價值。
Python 3編程高級指南深入探討了許多主題,如果您要開發復雜的真實世界的程序,您需要了解這些主題。每個主題之前都有一個介紹,然后是更高級的主題,以及大量的示例,這些示例將帶您進入高級級別。
書中有九個不同的部分涉及計算機圖形學 (包括GUIs)、游戲、測試、文件輸入和輸出、數據庫訪問、日志、并發和并行、響應式編程和網絡。每個部分都是獨立的,可以單獨閱讀,也可以作為全書的一部分。
這本書的目標讀者是那些已經學習了Python 3語言基礎知識的人 但想要更深入地研究Python的附加庫和模塊生態系統, 探索并發性和并行性,創建令人印象深刻的圖形界面,使用數據庫和文件,并提供專業的日志記錄工具。
//www.manning.com/books/advanced-algorithms-and-data-structures
作為一名軟件工程師,您將遇到無數的編程挑戰,這些挑戰最初看起來令人困惑、困難甚至是不可能的。不要絕望!許多這些“新”問題已經有了完善的解決方案。高級算法和數據結構為您提供了強大的方法來應對各種棘手的編碼挑戰,您可以對這些挑戰進行調整并應用于自己的應用程序。本實用指南提供了經典、先進和新的算法的平衡混合,用新的視角和實踐技術升級您的編程工具箱。
《高級算法和數據結構》介紹了一系列算法,用于數據分析、機器學習和圖計算中的復雜編程挑戰。您將發現解決各種棘手情況的尖端方法。您甚至將學習為需要自定義解決方案的項目設計自己的數據結構。
第1部分著重于發現高級數據結構,這些結構允許您改進一些基本操作,例如跟蹤事物或事物組。關鍵是要習慣這樣一種思想,即對數據執行操作有多種方式,而最佳方式取決于上下文和需求。
第2部分介紹了搜索中的另一種特殊情況: 處理多維數據、索引該數據和執行空間查詢。我們將再次展示特別數據結構如何在使用基本搜索算法的基礎上提供巨大的改進。但是,本部分還描述了其他重要的主題:集群、高度利用空間查詢和分布式計算,特別是使用MapReduce編程模型。
第3部分主要關注單個數據結構和圖表,這將是介紹一些優化技術的共同主線,這些技術推動了當今的人工智能和大數據工作。
復雜的計算,比如訓練深度學習模型或運行大規模模擬,可能需要非常長的時間。高效的并行編程可以節省數小時甚至數天的計算時間。并行和高性能計算向您展示了如何通過掌握多核處理器和GPU硬件的并行技術,為您的程序提供更快的運行時間、更大的可擴展性和更高的能源效率。
并行和高性能計算提供了保證提高代碼有效性的技術。您將學習評估硬件架構并使用OpenMP和MPI等行業標準工具。您將掌握最適合高性能計算的數據結構和算法,并學習在手持設備上節省能源的技術。你甚至可以在一組GPU上運行一個大規模的海嘯模擬。
本書使用高級Python語言首次介紹科學應用的計算機編程。該闡述以實例和問題為導向,其中應用程序取自數學、數值微積分、統計學、物理學、生物學和金融。這本書教授“matlab風格”和過程編程以及面向對象編程。高中數學是一個必要的背景,它有利于學習經典和數字一元微積分并行閱讀這本書。除了學習如何編寫計算機程序,讀者還將學習如何利用數值方法和程序設計來解決科學和工程的各個分支中出現的數學問題。通過混合編程,數學和科學應用,這本書為實踐計算科學奠定了堅實的基礎。
這本書的目的是使用從數學和自然科學的例子來教授計算機編程。我們選擇使用Python編程語言,因為它結合了非凡的表達能力和非常干凈、簡單和緊湊的語法。Python很容易學習,非常適合作為計算機編程的入門。Python也非常類似于MATLAB,是一種很好的數學計算語言。將Python與編譯語言(如Fortran、C和c++)相結合很容易,這些語言被廣泛用于科學計算。
本書中的例子將編程與數學、物理、生物和金融的應用程序相結合。讀者需要具備基本的一元微積分知識,在高中數學強化課程中教授。這當然是一個優勢,以并行的大學微積分課程,最好包含經典和數值方面的微積分。雖然不是嚴格要求,高中物理背景使許多例子更有意義。
許多入門編程書籍都很緊湊,重點是列出編程語言的功能。然而,學習編程就是學習如何像程序員一樣思考。這本書主要關注的是思考過程,或者等價地說: 編程是一種解決問題的技術。這就是為什么大多數頁面都致力于編程中的案例研究,在這里我們定義一個問題并解釋如何創建相應的程序。新的結構和編程風格(我們可以稱之為理論)通常也通過示例介紹。
W. Keith Nicholson的《線性代數與應用》,傳統上出版多年,現在作為開放教育資源和Lyryx的一部分發布與開放文本!支持今天的學生和教師需要更多的教科書,這就是為什么尼克爾森博士選擇與Lyryx學習工作。
總的來說,教材的目標是在計算技能,理論和線性代數的應用之間達到平衡。它是線性代數的思想和技術的一個相對先進的介紹,目標是科學和工程學生,他們不僅需要理解如何使用這些方法,而且還需要深入了解為什么他們工作。
它介紹了線性代數的一般思想遠早于競爭保持與線性代數相同的嚴格和簡潔的方法。隨著許多圖表和例子,幫助學生形象化,它也保持與概念的不斷介紹。
課程內容有足夠的靈活性,可以呈現一個傳統的主題介紹,或者允許一個更實用的課程。第1-4章為初學者開設了一學期的課程,而第5-9章為第二學期的課程。這本教科書主要是關于實數線性代數的,在適當的時候提到了復數(在附錄A中回顧)。
有很多介紹抽象代數概念。然而,對于那些在工程、計算機科學、物理科學、工業或金融領域需要數學背景的人來說,沒有哪一個比本書《代數:計算導論》更適合。作者用一種獨特的方法和演示,演示了如何使用軟件作為解決代數問題的工具。
多種因素使這篇文章與眾不同。它清晰的闡述,每一章都建立在前一章的基礎上,為讀者提供了更清晰的理解。首先介紹置換群,然后是線性群,最后是抽象群。他通過引入伽羅瓦群作為對稱群來謹慎地推動伽羅瓦理論。他包括了許多計算,既作為例子,也作為練習。所有這些都是為了幫助讀者更好地理解更抽象的概念。
//www.routledge.com/Algebra-A-Computational-Introduction/Scherk/p/book/9781584880646
通過仔細集成使用的Mathematica?在整個書中的例子和練習,作者幫助讀者發展一個更深的理解和欣賞材料。從互聯網上下載的大量練習和示例有助于建立有價值的Mathematica工作知識,并為在該領域遇到的復雜問題提供了很好的參考。
最后,一本關于創造性編程的書,直接寫給藝術家和設計師!這本書的目標讀者是那些在設計、藝術和教育的交叉領域工作的創造性人才,而不是遵循計算機科學課程。
這本書你將學習如何將計算應用到創造性的過程中,遵循四個步驟,通過這個步驟,你將進入編碼和藝術的橫截面,重點放在實際的例子和相關的工作結構上。您將跟隨計算藝術的一個真實的用例,并看到它如何與四個關鍵支柱聯系起來,并解決創造性過程中的潛在陷阱和挑戰。所有的代碼示例都是在一個完全集成的處理示例庫中提供的,這使得讀者很容易上手。
這種在技能習得和創造性過程和開發之間的獨特和微妙的平衡方法使《編碼藝術》成為了一本實用的參考書,無論是對于創造性編程還是對于教授和學生的創造性過程。
你將學習
這本書是給誰的
有很多關于傅里葉變換的書; 然而,很少有面向多學科讀者的。為工程師寫一本關于代數概念的書是一個真正的挑戰,即使不是太難的事,也要比寫一本關于理論應用的代數書更有挑戰性。這就是本書試圖面對的挑戰。因此,每個讀者都能夠創建一個“按菜單”的程序,并從語句或計算機程序中提取特定元素,以建立他們在該領域的知識,或將其運用于更具體的問題。
本文敘述是非常詳細的。讀者可能偶爾需要一些關于有限組的高級概念,以及對組行為的熟悉程度。我強調了那些重要的定義和符號。例如,從多個角度(交換群、信號處理、非交換群)研究卷積的概念,每次都要放在它的背景知識中。因此,不同的段落,雖然遵循一個邏輯遞進,有一個真正的統一,但可以根據自己需要選取閱讀。
第一章用群論的語言來解釋主要概念,并解釋后面將用到的符號。第二章將所得結果應用于各種問題,并首次接觸快速算法(例如Walsh 變換)。第三章對離散傅里葉變換進行了闡述。第四章介紹了離散傅里葉變換的各種應用,并構成了對前一章的必要補充,以充分理解所涉及的機制以及在實際情況中使用。第五章圍繞傅里葉變換提出了更多新穎的思想和算法,產生了大量的應用。第六章需要一些更高級的知識,特別是對有限場理論的一些熟悉。它研究了有限域中的值變換,并給出了在校正碼中的應用。最后兩章(最困難的一章),具有更多的代數性質,并建議推廣已經在有限非交換群的情況下進行的構造。第七章揭示了線性表示的理論。第八章和最后一章將這一理論應用于理論(群的簡潔性研究)和實際(光譜分析)領域。