本教程介紹了機器學習(ML)的一些主要概念。從工程的角度來看,ML領域圍繞著實現科學原理的軟件開發: (i) 對一些現象設定一個假設(選擇一個模型),(ii) 收集數據來驗證假設(驗證模型),(iii) 完善假設(迭代)。基于這一原理的一類重要算法是梯度下降法,它旨在迭代地細化由某個(權重)向量參數化的模型。通過結合假設空間(模型)、質量度量(損失)和模型優化(優化方法)的計算實現的不同選擇,可以得到大量的ML方法。目前許多被認為是(人工)智能的系統都是基于幾種基本機器學習方法的組合。在形式化ML問題的主要構建模塊之后,討論了ML方法的一些流行算法設計模式。本教程是在“機器學習:基本原理”和“人工智能”兩門課程的課堂筆記基礎上發起來的,這兩門課程我從2015年開始在阿爾托大學(Aalto University)與人合作授課。
當看到這些材料時,一個明顯的問題可能會出現:“為什么還要寫一本深度學習和自然語言處理的書呢?”一些優秀的論文已經出版,涵蓋了深度學習的理論和實踐方面,以及它在語言處理中的應用。然而,從我教授自然語言處理課程的經驗來看,我認為,盡管這些書的質量非常好,但大多數都不是針對最有可能的讀者。本書的目標讀者是那些在機器學習和自然語言處理之外的領域有經驗的人,并且他們的工作至少部分地依賴于對大量數據,特別是文本數據的自動化分析。這些專家可能包括社會科學家、政治科學家、生物醫學科學家,甚至是對機器學習接觸有限的計算機科學家和計算語言學家。
現有的深度學習和自然語言處理書籍通常分為兩大陣營。第一個陣營專注于深度學習的理論基礎。這對前面提到的讀者肯定是有用的,因為在使用工具之前應該了解它的理論方面。然而,這些書傾向于假設一個典型的機器學習研究者的背景,因此,我經常看到沒有這種背景的學生很快就迷失在這樣的材料中。為了緩解這個問題,目前存在的第二種類型的書集中在機器學習從業者;也就是說,如何使用深度學習軟件,而很少關注理論方面。我認為,關注實際方面同樣是必要的,但還不夠。考慮到深度學習框架和庫已經變得相當復雜,由于理論上的誤解而濫用它們的可能性很高。這個問題在我的課程中也很常見。
因此,本書旨在為自然語言處理的深度學習搭建理論和實踐的橋梁。我涵蓋了必要的理論背景,并假設讀者有最少的機器學習背景。我的目標是讓任何上過線性代數和微積分課程的人都能跟上理論材料。為了解決實際問題,本書包含了用于討論的較簡單算法的偽代碼,以及用于較復雜體系結構的實際Python代碼。任何上過Python編程課程的人都應該能夠理解這些代碼。讀完這本書后,我希望讀者能有必要的基礎,立即開始構建真實世界的、實用的自然語言處理系統,并通過閱讀有關這些主題的研究出版物來擴展他們的知識。
//clulab.cs.arizona.edu/gentlenlp/gentlenlp-book-05172020.pdf
有很多關于傅里葉變換的書; 然而,很少有面向多學科讀者的。為工程師寫一本關于代數概念的書是一個真正的挑戰,即使不是太難的事,也要比寫一本關于理論應用的代數書更有挑戰性。這就是本書試圖面對的挑戰。因此,每個讀者都能夠創建一個“按菜單”的程序,并從語句或計算機程序中提取特定元素,以建立他們在該領域的知識,或將其運用于更具體的問題。
本文敘述是非常詳細的。讀者可能偶爾需要一些關于有限組的高級概念,以及對組行為的熟悉程度。我強調了那些重要的定義和符號。例如,從多個角度(交換群、信號處理、非交換群)研究卷積的概念,每次都要放在它的背景知識中。因此,不同的段落,雖然遵循一個邏輯遞進,有一個真正的統一,但可以根據自己需要選取閱讀。
第一章用群論的語言來解釋主要概念,并解釋后面將用到的符號。第二章將所得結果應用于各種問題,并首次接觸快速算法(例如Walsh 變換)。第三章對離散傅里葉變換進行了闡述。第四章介紹了離散傅里葉變換的各種應用,并構成了對前一章的必要補充,以充分理解所涉及的機制以及在實際情況中使用。第五章圍繞傅里葉變換提出了更多新穎的思想和算法,產生了大量的應用。第六章需要一些更高級的知識,特別是對有限場理論的一些熟悉。它研究了有限域中的值變換,并給出了在校正碼中的應用。最后兩章(最困難的一章),具有更多的代數性質,并建議推廣已經在有限非交換群的情況下進行的構造。第七章揭示了線性表示的理論。第八章和最后一章將這一理論應用于理論(群的簡潔性研究)和實際(光譜分析)領域。
近日,本科畢業于哈佛大學統計學與經濟學專業、現任哈佛助教的 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 創建函數和類。「代碼」部分則不需要這些知識。
參考鏈接:
首先加速介紹R生態系統、編程語言和工具,包括R腳本和RStudio。通過使用許多例子和項目,這本書教你如何將數據導入R,以及如何使用R處理這些數據。一旦基礎扎實,《實用R 4》的其余部分將深入具體的項目和例子,從使用R和LimeSurvey運行和分析調查開始。接下來,您將使用R和MouselabWeb執行高級統計分析。然后,您將看到在沒有統計信息的情況下R如何工作,包括如何使用R自動化數據格式化、操作、報告和自定義函數。
本書的最后一部分討論了在服務器上使用R;您將使用R構建一個腳本,該腳本可以運行RStudio服務器并監視報表源的更改,以便在發生更改時向用戶發出警報。這個項目包括定期電子郵件提醒和推送通知。最后,您將使用R創建一個定制的個人最重要信息的每日綱要報告,例如天氣報告、每日日歷、待辦事項等等。這演示了如何自動化這樣一個過程,以便用戶每天早上導航到相同的web頁面并獲得更新的報告。
你將學到什么
這本書是給誰的
使用Microsoft Excel中流行的數據挖掘技術,更好地理解機器學習方法。
軟件工具和編程語言包接受數據輸入并直接交付數據挖掘結果,對工作機制沒有任何見解,并在輸入和輸出之間造成了鴻溝。這就是Excel可以提供幫助的地方。
Excel允許您以透明的方式處理數據。當您打開一個Excel文件時,數據立即可見,您可以直接使用它。在執行挖掘任務時,可以檢查中間結果,從而更深入地理解如何操作數據和獲得結果。這些是隱藏在軟件工具和編程語言包中的模型構建過程的關鍵方面。
這本書教你通過Excel進行數據挖掘。您將了解當數據集不是很大時Excel在數據挖掘方面的優勢。它可以為您提供數據挖掘的可視化表示,在結果中建立信心。您將手動完成每一個步驟,這不僅提供了一個主動學習體驗,而且還告訴您挖掘過程是如何工作的,以及如何發現數據內部隱藏的模式。
你將學到什么
這本書是給誰的
這本書來自統計學習課程,這是一門統計機器學習的入門課程,面向具有一些微積分、線性代數和統計學背景的學生。這門課程的重點是監督學習:分類和回歸。本課程將涵蓋機器學習和數據科學中使用的一系列方法,包括:
這些方法將在整個課程中被研究并應用于來自各種應用的真實數據。課程還涵蓋了一些重要的實際問題,如交叉驗證、模型選擇和偏方差權衡。課程包括理論(例如,推導和證明)以及實踐(特別是實驗室和小型項目)。實際部分將使用Python實現。
隨著機器學習越來越多地被用于發現模式、進行分析和做出決策——投資于吸引更多的利益相關者加入是至關重要的。這本關于機器學習中的Python項目的書試圖做到這一點:為今天和明天的開發人員提供工具,他們可以使用這些工具更好地理解、評估和塑造機器學習,以幫助確保它為我們所有人服務。
如果你還沒有Python編程環境,這本書將為你提供一個,然后在“機器學習導論”一章中為你提供一個機器學習的概念理解。接下來是三個Python機器學習項目。它們將幫助你創建一個機器學習分類器,建立一個神經網絡來識別手寫數字,并通過為Atari構建一個機器人來給你一個深度強化學習的背景知識。
Python機器學習項目
高斯過程(GPs)為核機器的學習提供了一種有原則的、實用的、概率的方法。在過去的十年中,GPs在機器學習社區中得到了越來越多的關注,這本書提供了GPs在機器學習中理論和實踐方面長期需要的系統和統一的處理。該書是全面和獨立的,針對研究人員和學生在機器學習和應用統計學。
這本書處理監督學習問題的回歸和分類,并包括詳細的算法。提出了各種協方差(核)函數,并討論了它們的性質。從貝葉斯和經典的角度討論了模型選擇。討論了許多與其他著名技術的聯系,包括支持向量機、神經網絡、正則化網絡、相關向量機等。討論了包括學習曲線和PAC-Bayesian框架在內的理論問題,并討論了幾種用于大數據集學習的近似方法。這本書包含說明性的例子和練習,和代碼和數據集在網上是可得到的。附錄提供了數學背景和高斯馬爾可夫過程的討論。
對因果推理的簡明和自成體系的介紹,在數據科學和機器學習中越來越重要。
因果關系的數學化是一個相對較新的發展,在數據科學和機器學習中變得越來越重要。這本書提供了一個獨立的和簡明的介紹因果模型和如何學習他們的數據。在解釋因果模型的必要性,討論潛在的因果推論的一些原則,這本書教讀者如何使用因果模型:如何計算干預分布,如何從觀測推斷因果模型和介入的數據,和如何利用因果思想經典的機器學習問題。所有這些主題都將首先以兩個變量的形式進行討論,然后在更一般的多元情況下進行討論。對于因果學習來說,二元情況是一個特別困難的問題,因為經典方法中用于解決多元情況的條件獨立不存在。作者認為分析因果之間的統計不對稱是非常有意義的,他們報告了他們對這個問題十年來的深入研究。
本書對具有機器學習或統計學背景的讀者開放,可用于研究生課程或作為研究人員的參考。文本包括可以復制和粘貼的代碼片段、練習和附錄,其中包括最重要的技術概念摘要。
首先,本書主要研究因果關系推理子問題,這可能被認為是最基本和最不現實的。這是一個因果問題,需要分析的系統只包含兩個可觀測值。在過去十年中,作者對這個問題進行了較為詳細的研究。本書整理這方面的大部分工作,并試圖將其嵌入到作者認為對研究因果關系推理問題的選擇性至關重要的更大背景中。盡管先研究二元(bivariate)案例可能有指導意義,但按照章節順序,也可以直接開始閱讀多元(multivariate)章節;見圖一。
第二,本書提出的解決方法來源于機器學習和計算統計領域的技術。作者對其中的方法如何有助于因果結構的推斷更感興趣,以及因果推理是否能告訴我們應該如何進行機器學習。事實上,如果我們不把概率分布描述的隨機實驗作為出發點,而是考慮分布背后的因果結構,機器學習的一些最深刻的開放性問題就能得到最好的理解。
Fundamentals of Python Programming