來自Andrew撰寫的《 “簡明機器學習”》旨在是發展對ML內部工作機制的直覺理解。我們使用簡單直觀的例子來解釋復雜的概念、算法或方法,以及背后的所有數學。讀完這本書,你將理解所有進入監督機器學習范圍內的東西。你不僅能理解數學的本質細節,而且還能向任何人解釋機器學習模型是如何工作的。
Andrew,MLOps工程師 //www.awolf.io/
簡明機器學習:監督學習
書的第一部分詳細介紹了監督學習。我們將解釋大部分術語-人工智能,數據科學,機器學習,深度學習,梯度下降,線性回歸,過擬合和欠擬合,偏差和方差誤差,基擴展和正則化。本書的第二部分尚未出版,但將涵蓋所有已知的算法,包括logit模型、最大邊際模型、貝葉斯模型、集成模型(boosting / bagging)、基于樹的模型和評估指標。
地址:
有監督機器學習問題的典型流程。步驟一和步驟二負責提取和準備數據,步驟三負責構建機器學習模型(本書的其余部分將詳細介紹這個過程中的步驟),步驟四負責部署模型。在一個小項目中,一個人可能可以完成所有的任務。然而,在一個大型項目中,步驟I和步驟II可能由數據科學專家執行,步驟III可能由數據科學家或機器學習操作執行,或MLOps,工程師執行,步驟IV可能由MLOps工程師執行。
基本AI: 基本AI是AI最簡單的形式。它不會形成對過去經驗的記憶來影響現在或未來的決定。換句話說,它不學習,它只對當前存在的條件做出反應。基本的人工智能通常利用由人類編碼的一組預定義的簡單規則。Basic AI的一個例子就是上面提到的智能電梯。
有限的人工智能: 有限的人工智能系統需要大量的信息或數據來做出決策。這樣做的好處是,它們可以在沒有明確編程的情況下做出決策。上面討論的電子郵件垃圾郵件檢測器是有限人工智能的一個例子——垃圾郵件檢測器根據已知是垃圾郵件或不是垃圾郵件的電子郵件數據集學習預測電子郵件是否是垃圾郵件的規則。(通常,人類必須提供這些機器學習的標簽。)機器學習是有限人工智能的主要和最著名的例子,電子郵件垃圾郵件檢測器是監督ML的一個例子,我們將在下一節討論。
先進的人工智能: 先進的人工智能系統將擁有人類的智能。例如,它們將能夠駕駛你的汽車,識別你的臉,與其他人類對話,理解他們的情緒,并執行任何一個智能人類可以做的任務。這些系統通常被描述為計算“大腦”。
超級智能: 超級智能人工智能系統將擁有遠遠超過人類能力的智能。
本書詳細介紹了數據準備和模型構建模塊——圖1.2的步驟II和步驟III。這本書也分為兩部分。在第一部分,你將學習機器學習的基礎知識,在第二部分,你將學習更復雜的機器學習算法的細節。我把這本書分成這兩個部分是出于一個非常重要的原因。很多時候,人們聽到某些強大的機器學習算法的名字,如支持向量機、神經網絡或增強決策樹,并對它們著迷。他們急于學習復雜的算法。你可以想象,如果他們不先學習簡單的模型,就很難學習復雜的模型。但是,您可能還沒有意識到,大多數ML模型都會遇到一些常見的問題和困難(比如過擬合),這些您將在下一章中了解。因此,雖然可能很想馬上深入研究特定的算法,但你應該花時間來獲得ML世界的高層圖片以及它所建立的基本原則的所有細節(例如,從數學的角度來看,算法實際上是如何從數據中學習的)。這有點像用封面上的圖片做拼圖;當然,你可以在沒有圖像的情況下完成拼圖,但這會花費更長的時間,而且你可能會犯很多錯誤。一旦你掌握了ML的基本原理,你將對這些常見問題有一個清晰的想法,你將能夠理解如何避免常見的陷阱,無論你使用哪種學習算法用于特定的問題。
目錄內容:
在過去的十年里,人們對人工智能和機器學習的興趣有了相當大的增長。從最廣泛的意義上說,這些領域旨在“學習一些有用的東西”,了解生物體所處的環境。如何處理收集到的信息導致了算法的發展——如何處理高維數據和處理不確定性。在機器學習和相關領域的早期研究階段,類似的技術在相對孤立的研究社區中被發現。雖然不是所有的技術都有概率論的自然描述,但許多都有,它是圖模型的框架(圖和概率論的結合),使從統計物理、統計、機器學習和信息理論的想法的理解和轉移。在這種程度上,現在有理由期待機器學習研究人員熟悉統計建模技術的基礎知識。這本書集中在信息處理和機器學習的概率方面。當然,沒有人說這種方法是正確的,也沒有人說這是唯一有用的方法。事實上,有人可能會反駁說,這是沒有必要的,因為“生物有機體不使用概率論”。無論情況是否如此,不可否認的是,圖模型和概率框架幫助機器學習領域出現了新算法和模型的爆炸式增長。我們還應該清楚,貝葉斯觀點并不是描述機器學習和信息處理的唯一方法。貝葉斯和概率技術在需要考慮不確定性的領域中發揮了自己的作用。
//www0.cs.ucl.ac.uk/staff/d.barber/brml/
本書結構
本書第一部分的目的之一是鼓勵計算機科學專業的學生進入這一領域。許多現代學生面臨的一個特別困難是有限的正規微積分和線性代數訓練,這意味著連續和高維分布的細節可能會讓他們離開。在以概率作為推理系統的一種形式開始時,我們希望向讀者展示他們可能更熟悉的邏輯推理和動態規劃的想法如何在概率環境中有自然的相似之處。特別是,計算機科學的學生熟悉的概念,算法為核心。然而,在機器學習中更常見的做法是將模型視為核心,而如何實現則是次要的。從這個角度來看,理解如何將一個數學模型轉換成一段計算機代碼是核心。
第二部分介紹了理解連續分布所需的統計背景,以及如何從概率框架來看待學習。第三部分討論機器學習的主題。當然,當一些讀者看到他們最喜歡的統計話題被列在機器學習下面時,他們會感到驚訝。統計學和機器學習之間的一個不同觀點是,我們最終希望構建什么樣的系統(能夠完成“人類/生物信息處理任務的機器),而不是某些技術。因此,我認為這本書的這一部分對機器學習者來說是有用的。第四部分討論了明確考慮時間的動態模型。特別是卡爾曼濾波器被視為圖模型的一種形式,這有助于強調模型是什么,而不是像工程文獻中更傳統的那樣把它作為一個“過濾器”。第五部分簡要介紹了近似推理技術,包括隨機(蒙特卡羅)和確定性(變分)技術。
如今,企業創建的機器學習(ML)模型中,有一半以上都沒有投入生產。主要是面臨技術上的操作挑戰和障礙,還有組織上的。不管怎樣,最基本的是,不在生產中的模型不能提供業務影響。
這本書介紹了MLOps的關鍵概念,幫助數據科學家和應用工程師不僅可以操作ML模型來驅動真正的業務變化,而且還可以隨著時間的推移維護和改進這些模型。通過基于世界各地眾多MLOps應用的經驗教訓,九位機器學習專家對模型生命周期的五個步驟——構建、預生產、部署、監控和治理——提供了深刻見解,揭示了如何將穩健的MLOps過程貫穿始終。
//www.oreilly.com/library/view/introducing-mlops/9781492083283/
這本書幫助你:
通過減少整個ML管道和工作流程的沖突,實現數據科學價值 通過再訓練、定期調整和完全重構來改進ML模型,以確保長期的準確性 設計MLOps的生命周期,使組織風險最小化,模型是公正的、公平的和可解釋的 為管道部署和更復雜、不那么標準化的外部業務系統操作ML模型
學習使用Python分析數據和預測結果的更簡單和更有效的方法
Python機器學習教程展示了通過關注兩個核心機器學習算法家族來成功分析數據,本書能夠提供工作機制的完整描述,以及使用特定的、可破解的代碼來說明機制的示例。算法用簡單的術語解釋,沒有復雜的數學,并使用Python應用,指導算法選擇,數據準備,并在實踐中使用訓練過的模型。您將學習一套核心的Python編程技術,各種構建預測模型的方法,以及如何測量每個模型的性能,以確保使用正確的模型。關于線性回歸和集成方法的章節深入研究了每種算法,你可以使用書中的示例代碼來開發你自己的數據分析解決方案。
機器學習算法是數據分析和可視化的核心。在過去,這些方法需要深厚的數學和統計學背景,通常需要結合專門的R編程語言。這本書演示了機器學習可以如何實現使用更廣泛的使用和可訪問的Python編程語言。
使用線性和集成算法族預測結果
建立可以解決一系列簡單和復雜問題的預測模型
使用Python應用核心機器學習算法
直接使用示例代碼構建自定義解決方案
機器學習不需要復雜和高度專業化。Python使用了更簡單、有效和經過良好測試的方法,使這項技術更容易為更廣泛的受眾所接受。Python中的機器學習將向您展示如何做到這一點,而不需要廣泛的數學或統計背景。
機器學習和人工神經網絡無處不在,它們對我們日常生活的影響比我們可能意識到的還要深遠。這堂課是專門針對機器學習在不同科學領域的使用的介紹。在科學研究中,我們看到機器學習的應用越來越多,反映了工業技術的發展。這樣一來,機器學習就成為了精確科學的通用新工具,與微積分、傳統統計學和數值模擬等方法并行其道。這就提出了一個問題,在圖2所示的科學工作流程中,這些新方法是最好的。
此外,一旦確定了一項特定的任務,將機器學習應用到科學領域就會面臨非常具體的挑戰: (i) 科學數據通常具有非常特定的結構,例如晶體圖像中近乎完美的周期性; (ii) 通常情況下,我們對應該反映在機器學習分析中的數據相關性有特定的知識; (iii) 我們想要了解為什么一個特定的算法會起作用,尋求對自然機制和法則的基本見解; (iv) 在科學領域,我們習慣于算法和定律提供確定性答案,而機器學習本質上是概率性的——不存在絕對的確定性。盡管如此,定量精度在許多科學領域是至關重要的,因此是機器學習方法的一個關鍵基準。
這堂課是為科學領域的科學家和學生介紹基本機器學習算法。我們將涵蓋:
機器學習領域充滿了行話,對于不了解機器學習的人來說,這些行話掩蓋了機器學習方法的核心。作為一個不斷變化的領域,新的術語正在以快速的速度被引入。我們的目標是通過精確的數學公式和簡潔的公式來切入俚語,為那些了解微積分和線性代數的人揭開機器學習概念的神秘面紗。
如上所述,數據是本節課所討論的大多數機器學習方法的核心。由于原始數據在很多情況下非常復雜和高維,首先更好地理解數據并降低它們的維數往往是至關重要的。下一節,第2節將討論在轉向神經網絡的重型機器之前可以使用的簡單算法。
我們最關注的機器學習算法,一般可以分為兩類算法,即判別算法和生成算法,如圖3所示。判別任務的例子包括分類問題,如上述數字分類或分類為固體,液體和氣相給出一些實驗觀測。同樣,回歸,也就是估計變量之間的關系,也是一個判別問題。更具體地說,我們在給定一些輸入數據x的情況下,嘗試近似某個變量y (label)的條件概率分布P(y|x)。由于這些任務中的大部分數據都是以輸入數據和目標數據的形式提供的,這些算法通常采用監督學習。判別算法最直接地適用于科學,我們將在第3和第4節中討論它們。
人工智能的前景可能引發科學領域的不合理預期。畢竟,科學知識的產生是最復雜的智力過程之一。計算機算法肯定還遠沒有達到那樣復雜的水平,而且在不久的將來也不會獨立地制定新的自然法則。盡管如此,研究人員研究了機器學習如何幫助科學工作流程的各個部分(圖2)。雖然制定牛頓經典力學定律所需的抽象類型似乎難以置信地復雜,但神經網絡非常擅長隱式知識表示。然而,要準確地理解它們是如何完成某些任務的,并不是一件容易的事情。我們將在第6節討論這個可解釋的問題。
第三類算法被稱為強化學習(reinforcement learning),它不完全符合近似統計模型的框架. 機器學習的成功很大程度上與科學家使用適當算法的經驗有關。因此,我們強烈建議認真解決伴隨練習,并充分利用練習課程。
深入機器學習模型的超參數調整,關注什么是超參數以及它們是如何工作的。這本書討論了不同的超參數調優技術,從基礎到高級方法。
這是一個關于超參數優化的分步指南,從什么是超參數以及它們如何影響機器學習模型的不同方面開始。然后介紹一些基本的超參數優化算法。此外,作者利用分布式優化方法解決了時間和內存約束的問題。接下來您將討論超參數搜索的貝葉斯優化,它從以前的歷史中吸取了教訓。
這本書討論了不同的框架,如Hyperopt和Optuna,它實現了基于順序模型的全局優化(SMBO)算法。在這些討論中,您將關注不同的方面,比如搜索空間的創建和這些庫的分布式優化。
機器學習中的超參數優化有助于理解這些算法是如何工作的,以及如何在現實數據科學問題中使用它們。最后一章總結了超參數優化在自動機器學習中的作用,并以一個創建自己的自動腳本的教程結束。
超參數優化是一項冗長乏味的任務,所以請坐下來,讓這些算法來完成您的工作。你將學到什么
這本書是給誰的
在構建機器學習模型時選擇正確的超參數是數據科學從業者面臨的最大問題之一。這本書是超參數優化(HPO)的指南。它從超參數的最基本定義開始,并帶您使用高級HPO技術構建您自己的AutoML腳本。這本書是打算為學生和數據科學專業人員。這本書由五章組成。
這本書的目的是讓讀者以一種直觀和實用的方式來理解HPO的概念,每個部分都提供了代碼實現。我希望你能喜歡。
通過使用Python開發用例,全面了解監督學習算法您將學習監督學習概念、Python代碼、數據集、最佳實踐、常見問題和缺陷的解決方案,以及實現結構化、文本和圖像數據集算法的實踐知識。
你將從介紹機器學習開始,強調監督學習、半監督學習和非監督學習之間的區別。在接下來的章節中,你將學習回歸和分類問題,它們背后的數學,像線性回歸、邏輯回歸、決策樹、KNN、樸素貝葉斯等算法,以及像隨機森林、支持向量機、梯度增強和神經網絡等高級算法。提供了所有算法的Python實現。最后,您將得到一個端到端模型開發流程,包括模型的部署和維護。在閱讀了Python的監督學習之后,你將會對監督學習和它的實際實現有一個廣泛的理解,并且能夠以一種創新的方式運行代碼和擴展它。
你將學習:
這本書是給誰的
《The Hundred-Page Machine Learning Book》,中文翻譯為為《百頁機器學習書》。這本書是Andriy Burkov所著,其是Gartner的機器學習團隊負責人。這本書短小精悍,只有一百頁左右,包含大量自 20 世紀 60 年代以來具有重要實用價值的機器學習材料。它既適用于初學者,也適用于有經驗的從業者。
讓我們從實話實說開始:機器其實不會學習。典型的“Learning Machine”所做的是找到一個數學公式,當它應用于一組輸入(稱為“訓練數據”)時,就會產生所需的輸出。這個數學公式還可以為大多數其他輸入(與訓練數據不同)生成正確的輸出,條件是這些輸入來自與訓練數據相同或類似的統計分布。
為什么這不是學習?因為如果你稍微改變或扭曲一下輸入,輸出就很可能完全錯誤。但動物的學習不是這樣的。如果你學會了通過直視屏幕來玩電子游戲,那么如果有人稍微轉動一下屏幕,你仍然可以玩得很好。機器學習算法,如果它是通過“直視”屏幕來訓練的,除非它也經過了識別旋轉的訓練,否則它將無法在旋轉的屏幕上玩游戲。
那么為什么叫“機器學習”呢?原因是由于市場營銷:美國電腦游戲和人工智能領域的先驅阿瑟?塞繆爾(Arthur Samuel) 于1959年在IBM工作時創造了這個詞。與IBM在2010年試圖推銷“認知計算(cognitive computing)”一詞在競爭中脫穎而出的情況類似,在上世紀60年代,IBM使用了新的“機器學習(machine learning)”一詞來吸引客戶和有才華的員工。
正如你所看到的,就像人工智能不是智能一樣,機器學習也不是學習。然而,機器學習是一個被普遍認可的術語,通常指的是制造機器的科學和工程,這些機器能夠在沒有明確編程的情況下完成各種有用的事情。因此,這個術語中的“學習”這個詞是用來類比動物的學習,而不是字面上的學習。
近日,本科畢業于哈佛大學統計學與經濟學專業、現任哈佛助教的 Daniel Friedman 開放了他撰寫的一本免費在線書籍《Machine Learning from Scratch》,該書從理論和數學上介紹了 ML 最常見算法(OLS、邏輯回歸、樸素貝葉斯、決策樹、boosts 和神經網絡等)的完整推論。
地址://dafriedman97.github.io/mlbook/content/introduction.html
該書是為讀者學習新的機器學習算法或了解更深層次的算法。具體地說,它是為那些有興趣學習機器學習算法的讀者準備的。這些推導可能有助于讀者,特別是對基礎算法不熟悉的讀者,可以更直觀地理解它們是如何工作的。或者,這些推導可以幫助有建模經驗的讀者理解不同算法是如何創建模型,以及每種算法的優缺點。
書籍概述
這本書涵蓋了機器學習中最常見的方法。這些方法就像一個工具箱,為那些進入機器學習領域的人提供了便利,從而可以很快地找到所需工具。該書由 7 個章節以及 1 個附錄組成。書的每一章節都對應一種機器學習方法或一組方法。
通過學習,你將學得:普通線性回歸、線性回歸擴展、判別分類器(Logistic 回歸)、生成分類器(樸素貝葉斯)以及決策樹等算法的完整推論。
每個章節均由這 3 部分組成。
其中,概念部分從概念上介紹這些方法,并從數學上推導結果;構建部分展示了如何使用 Python 從頭開始構建方法;實現部分介紹了如何使用 Python 中的工具包(如 scikit-learn、statsmodels 和 tensorflow)應用這些方法。
為什么選擇這本書?
現在關于機器學習的書籍數不勝數,在網上就可以免費獲得。像《An Introduction to Statistical Learning》、《Elements of Statistical Learning》 和 《Pattern Recognition and Machine Learning》,這些機器學習書籍的作者掌握的知識更豐富,書籍內容涵蓋的范圍也更廣。但值得注意的一點是:這些書籍只提供了概念上的機器學習以及方法背后的理論。
但是,本書重點介紹了機器學習算法的基本框架,旨在為讀者提供獨立構建這些算法的能力。作為一種「工具箱」而言,本書旨在成為用戶指南,它不是用來指導用戶關于該領域的廣泛實踐,而是在微觀層面上講述如何使用每種工具。
這本書需要讀者掌握哪些知識?
需要注意的是,這本書的「概念」部分需要讀者了解微積分知識,有些還需要了解概率(如最大似然和貝葉斯規則)和基本線性代數知識(如矩陣運算和點積)。
不過,該書附錄部分回顧了所需的數學和概率知識。「概念」部分還參考了一些常見的機器學習方法,這些方法在附錄中也有介紹。所以,「概念」部分不需要任何編程知識。
該書的「構建」和「代碼」部分使用了一些基礎的 Python 知識。「構建」部分需要了解相應的內容,并且需要熟悉用 Python 創建函數和類。「代碼」部分則不需要這些知識。
參考鏈接:
機器學習是學習數據和經驗的算法的研究。它被廣泛應用于各種應用領域,從醫學到廣告,從軍事到行人。任何需要理解數據的領域都是機器學習的潛在的消費者。《A Course in Machine Learning》屬于入門級資料,它涵蓋了現代機器學習的大多數主要方面(監督學習,無監督學習,大間隔方法,概率建模,學習理論等)。它的重點是具有嚴格基礎的廣泛應用。
機器學習是一個廣闊而迷人的領域。即使在今天,機器學習技術仍然在你的生活中占據了相當大的一部分,而且常常是在你不知情的情況下。在某種程度上,任何看似合理的人工智能方法都必須包括學習,如果不是為了別的原因,而是因為如果一個系統不能學習,那么它就很難被稱為智能系統。機器學習本身也很吸引人,因為它提出了關于學習和成功完成任務的意義的哲學問題。
同時,機器學習也是一個非常廣泛的領域,試圖涵蓋所有領域對于教學來說將是一場災難。因為它發展得如此之快,以至于任何試圖報道最新發展的書籍在上線之前都會過時。因此,本書有兩個目標。首先,要通俗地介紹一個非常深的領域是什么。第二,為讀者提供必要的技能,以便在新技術發展過程中掌握新技術。