本書全面介紹了人工智能(AI)和機器學習(ML)的理論和應用。與僅僅從理論或實踐的角度來看待這個領域不同,本書將這兩個角度結合在了一起,給予全面的理解。第1部分介紹了人工智能和ML的概念以及它們的起源和現(xiàn)狀。第2和第3部分深入探討了靜態(tài)ML技術和動態(tài)ML技術的概念和理論方面。第4部分描述了所提出的技術可以應用的實際應用。第5部分向用戶介紹了解決現(xiàn)實ML問題的一些實現(xiàn)策略。
有史以來偉大的物理學家之一、諾貝爾獎獲得者理查德·費曼(Richard Feynman)博士曾經(jīng)被他的同行要求解釋當時剛剛發(fā)現(xiàn)的費米狄拉克(Fermi-Dirac)統(tǒng)計的一個性質。費曼迅速說道:
我不僅會向你們解釋它,而且還將為新手準備一個關于它的講座。
然而,很不尋常的是,幾天后,他回來承認:
我做不到。我無法將解釋簡化為新手水平。那意味著我們真的不理解它。
甚至連費曼博士也說出了這種言論。然而,除了費米狄拉克統(tǒng)計本身的話題外,它還暗示著我們對一般事物理解的深刻思考。這里的新手水平基本上意味著可以直接使用數(shù)學或物理中的基本原理推導出來的東西。這種想法總是使我有意識地嘗試用基本原理來解釋我聲稱理解的所有事物,嘗試從概念上解釋所有事物,而不僅僅是使用復雜的方程組。
在過去的十年里,人工智能和機器學習領域發(fā)展迅猛。隨著廣泛的普及,該領域的核心概念時而被淡化,時而被重新詮釋。隨著該領域的指數(shù)級增長,該領域的范圍也在不斷地增長。這個領域的新手很快就會發(fā)現(xiàn)這個話題令人生畏和困惑。人們總是可以從網(wǎng)絡上搜索相關主題或者只是從維基百科開始了解相關內容,但通常情況下,每一個主題都會給你帶來越來越多的新概念和未知的概念,很容易讓你迷失方向。而且,機器學習中的大多數(shù)概念都深深植根于數(shù)學和統(tǒng)計學中。沒有理論數(shù)學和統(tǒng)計學的扎實背景,定理和引理的復雜推導會使人們對該領域感到困惑和無趣。
我在這里嘗試介紹機器學習及其應用中基本的主題,以直觀和概念性的方式構建人工智能解決方案。有時會使用一些數(shù)學指導,如果沒有這些指導,概念就不夠清晰,但我已經(jīng)盡量避免復雜的推導和證明,以便讓那些不具有強大數(shù)學背景的讀者更容易理解書中的內容。根據(jù)費曼博士的說法,在這個過程中,我還要確保自己理解了它們。就一般的數(shù)學和統(tǒng)計要求而言,我認為一般的本科水平應該足夠了。而且,隨著開源領域中機器學習庫的激增和標準化,人們不需要對該理論進行多么深入的數(shù)學理解就可以實現(xiàn)的機器學習模型,從而得到的智能解決方案。
當嘗試解決給定應用程序中的問題時,引起混亂的主要根源之一是算法的選擇。通常,這里介紹的每種算法都源自某個特定的問題,但是該算法通常不限于僅解決該問題。然而,即使對于一個具有強大數(shù)學背景的博士生來說,為給定的問題選擇正確的算法也并非易事。為了區(qū)分兩者,我已經(jīng)把這兩個方面分成了獨立的部分來介紹。這將使讀者更容易理解。
建議讀者從部分開始,然后根據(jù)需要選擇第二部分或第三部分。對于學生來說,按順序學習本書是理想的選擇,而具有專業(yè)背景的該領域的新手則更適合從第三部分開始,以便理解或專注于手頭的精確應用,然后根據(jù)需要在第二部分深入研究算法的理論細節(jié)。第四部分和第五部分應隨后學習。我已經(jīng)在兩個部分之間添加了足夠的交叉引用,以使過渡平滑。
在我看來,除非人們能看到模型在真實數(shù)據(jù)上的作用,否則就無法完全理解。因此,在詳細介紹算法和應用程序之后,我添加了另一部分內容,以介紹使用免費和開源選項的模型的基本實現(xiàn)。完成這部分內容的學習將使讀者能夠使用的機器學習技術解決人工智能中的現(xiàn)實問題!
Ameet Joshi
美國華盛頓州雷德蒙德
2019年3月
序
前言
致謝
部分 簡 介
第1章 人工智能和機器學習簡介2
1.1 引言2
1.2 什么是人工智能2
1.3 什么是機器學習3
1.4 本書的結構3
1.4.1 簡介4
1.4.2 機器學習4
1.4.3 構建端到端管道4
1.4.4 人工智能4
1.4.5 實現(xiàn)5
1.4.6 結語5
第2章 人工智能和機器學習的基本概念6
2.1 引言6
2.2 大數(shù)據(jù)和非大數(shù)據(jù)6
2.2.1 什么是大數(shù)據(jù)6
2.2.2 為什么我們應該區(qū)別對待大數(shù)據(jù)6
2.3 學習類型7
2.3.1 監(jiān)督學習7
2.3.2 無監(jiān)督學習7
2.3.3 強化學習8
2.4 基于時間的機器學習方法8
2.4.1 靜態(tài)學習8
2.4.2 動態(tài)學習8
2.5 維數(shù)8
2.6 線性和非線性10
2.7 奧卡姆剃刀原理12
2.8 沒有免費的午餐定理14
2.9 收益遞減規(guī)律14
2.10 機器學習的早期趨勢14
2.11 小結15
第3章 數(shù)據(jù)的理解、表示和可視化16
3.1 引言16
3.2 理解數(shù)據(jù)16
3.2.1 理解實體17
3.2.2 理解屬性17
3.2.3 理解數(shù)據(jù)類型18
3.3 數(shù)據(jù)的表示和可視化19
3.3.1 主成分分析19
3.3.2 線性判別分析21
3.4 小結22
第二部分 機 器 學 習
第4章 線性方法26
4.1 引言26
4.2 線性模型和廣義線性模型27
4.3 線性回歸27
4.3.1 定義問題27
4.3.2 解決問題27
4.4 正則化的線性回歸28
4.4.1 正則化28
4.4.2 嶺回歸29
4.4.3 Lasso回歸29
4.5 廣義線性模型30
4.6 k近鄰算法30
4.6.1 KNN的定義31
4.6.2 分類和回歸32
4.6.3 KNN的其他變體32
4.7 小結32
第5章 感知器和神經(jīng)網(wǎng)絡34
5.1 引言34
5.2 感知器34
5.3 多層感知器或人工神經(jīng)網(wǎng)絡35
5.3.1 前饋操作35
5.3.2 非線性多層感知器或非線性人工神經(jīng)網(wǎng)絡36
5.3.3 訓練多層感知器36
5.3.4 隱藏層38
5.4 徑向基函數(shù)網(wǎng)絡38
5.5 過度擬合與正則化40
5.5.1 L1和L2正則化40
5.5.2 丟棄正則化41
5.6 小結41
第6章 決策樹42
6.1 引言42
6.2 為什么使用決策樹43
6.3 構建決策樹的算法43
6.4 回歸樹44
6.5 分類樹45
6.6 決策指標45
6.6.1 誤分類誤差46
6.6.2 基尼指數(shù)46
6.6.3 交叉熵或偏差46
6.7 卡方自動交叉檢驗47
6.8 訓練決策樹47
6.9 集成決策樹48
6.10 Bagging集成樹48
6.11 隨機森林49
6.12 Boosted集成樹49
6.12.1 AdaBoost50
6.12.2 梯度提升50
6.13 小結50
第7章 支持向量機51
7.1 引言51
7.2 動機和范圍51
7.2.1 擴展到多元分類51
7.2.2 非線性情況的擴展53
7.3 支持向量機理論53
7.4 可分離性和間隔54
7.4.1 正則化和軟間隔SVM54
7.4.2 松弛變量的使用54
7.5 非線性與核函數(shù)的使用55
7.5.1 徑向基函數(shù)55
7.5.2 多項式函數(shù)56
7.5.3 Sigmoid56
7.6 風險小化56
7.7 小結56
第8章 概率模型57
8.1 引言57
8.2 判別模型58
8.2.1 似然估計58
8.2.2 貝葉斯方法58
8.2.3 似然估計和貝葉斯方法的比較59
8.3 生成模型61
8.3.1 混合方法62
8.3.2 貝葉斯網(wǎng)絡62
8.4 一些有用的概率分布62
8.4.1 正態(tài)分布或高斯分布63
8.4.2 伯努利分布64
8.4.3 二項分布65
8.4.4 伽馬分布66
8.4.5 泊松分布67
8.5 小結70
第9章 動態(tài)規(guī)劃和強化學習71
9.1 引言71
9.2 動態(tài)規(guī)劃的基本方程71
9.3 動態(tài)規(guī)劃下的問題類別72
9.4 強化學習73
9.4.1 強化學習的特點73
9.4.2 框架和算法73
9.5 探索和開發(fā)74
9.6 強化學習應用示例75
9.7 強化學習理論76
9.8 小結77
第10章 演化算法78
10.1 引言78
10.2 傳統(tǒng)方法的瓶頸78
10.3 達爾文的進化論80
10.4 遺傳規(guī)劃80
10.5 群體智能82
10.6 蟻群優(yōu)化83
10.7 模擬退火84
10.8 小結84
第11章 時間序列模型85
11.1 引言85
11.2 平穩(wěn)性85
11.3 自回歸和移動平均模型87
11.3.1 自回歸過程87
11.3.2 移動平均過程88
11.3.3 自回歸移動平均過程88
11.4 差分自回歸移動平均模型88
11.5 隱馬爾可夫模型89
11.6 條件隨機場91
11.7 小結92
第12章 深度學習93
12.1 引言93
12.2 現(xiàn)代深度學習的起源94
12.3 卷積神經(jīng)網(wǎng)絡95
12.3.1 一維卷積95
12.3.2 二維卷積95
12.3.3 CNN的架構96
12.3.4 訓練CNN98
12.4 循環(huán)神經(jīng)網(wǎng)絡98
12.4.1 RNN的局限性 99
12