編輯推薦
187張圖解輕鬆入門
提供可執行的Matlab程序代碼
覆蓋機器學習中經典、用途廣的算法
專業實用
東京大學教授、機器學習專業專傢執筆,濃縮機器學習的關鍵知識點
圖文並茂
187張圖示幫助理解,詳略得當,為讀懂大部頭開路。
角度新穎
實戰導嚮
配有可執行的MATLAB程序代碼,邊學習邊實踐。
內容簡介
《圖解機器學習》用豐富的圖示,從ZUI小二乘法齣發,對基於ZUI小二乘法實現的各種機器學習算法進行瞭詳細的介紹。第Ⅰ部分介紹瞭機器學習領域的概況;第Ⅱ部分和第Ⅲ部分分彆介紹瞭各種有監督的迴歸算法和分類算法;第Ⅳ部分介紹瞭各種監督學習算法;第Ⅴ部分介紹瞭機器學習領域中的新興算法。書中大部分算法都有相應的MATLAB程序源代碼,可以用來進行簡單的測試。
作者簡介
杉山將,1974年生於大阪。東京工業大學計算機工程學博士畢業,現為東京大學教授、日本國立信息學研究所客座教授。主要從事機器學習的理論研究和算法開發,以及在信號和圖像處理等方麵的應用。2011年獲日本信息處理學會長尾真紀念特彆奬。著有《統計機器學習》、DensityRatioEstimationinMachineLearning等。同時也是PatternRecognitionandMachineLearning日文版的譯者之一。
許永偉,2009年赴東京大學攻讀博士學位,現於東京大學空間信息科學研究所從事博士後研究(特任研究員)。主要研究方嚮為模式識彆與機器學習、圖像處理與計算機視覺,對數據挖掘、大數據和信息架構有濃厚興趣。
內頁插圖
目錄
第I部分 緒 論
第1章 什麼是機器學習
1.1 學習的種類
1.2 機器學習任務的例子
1.3 機器學習的方法
第2章 學習模型
2.1 綫性模型
2.2 核模型
2.3 層級模型
第II部分 有監督迴歸
第3章 最小二乘學習法
3.1 最小二乘學習法
3.2 最小二乘解的性質
3.3 大規模數據的學習算法
第4章帶有約束條件的最小二乘法
4.1 部分空間約束的最小二乘學習法
4.2 l2 約束的最小二乘學習法
4.3 模型選擇
第5章 稀疏學習
5.1 l1 約束的最小二乘學習法
5.2 l1 約束的最小二乘學習的求解方法
5.3 通過稀疏學習進行特徵選擇
5.4 lp約束的最小二乘學習法
5.5 l1+l2 約束的最小二乘學習法
第6章 魯棒學習
6.1 l1 損失最小化學習
6.2 Huber損失最小化學習
6.3 圖基損失最小化學習
6.4 l1 約束的Huber損失最小化學習
第III部分 有監督分類
第7章 基於最小二乘法的分類
7.1 最小二乘分類
7.2 0/1 損失和間隔
7.3 多類彆的情形
第8章 支持嚮量機分類
8.1 間隔最大化分類
8.2 支持嚮量機分類器的求解方法
8.3 稀疏性
8.4 使用核映射的非綫性模型
8.5 使用Hinge損失最小化學習來解釋
8.6 使用Ramp損失的魯棒學習
第9章 集成分類
9.1 剪枝分類
9.2 Bagging學習法
9.3 Boosting 學習法
第10章 概率分類法
10.1 Logistic迴歸
10.2 最小二乘概率分類
第11 章序列數據的分類
11.1 序列數據的模型化
11.2 條件隨機場模型的學習
11.3 利用條件隨機場模型對標簽序列進行預測
第IV部分 監督學習
第12章 異常檢測
12.1 局部異常因子
12.2 支持嚮量機異常檢測
12.3 基於密度比的異常檢測
第13章 監督降維
13.1 綫性降維的原理
13.2 主成分分析
13.3 局部保持投影
13.4 核函數主成分分析
13.5 拉普拉斯特徵映射
第14章 聚類
14.1 K均值聚類
14.2 核K均值聚類
14.3 譜聚類
14.4 調整參數的自動選取
第V部分 新興機器學習算法
第15章 在綫學習
15.1 被動攻擊學習
15.2 適應正則化學習
第16章 半監督學習
16.1 靈活應用輸入數據的流形構造
16.2 拉普拉斯正則化最小二乘學習的求解方法
16.3 拉普拉斯正則化的解釋
第17章 監督降維
17.1 與分類問題相對應的判彆分析
17.2 充分降維
第18章 遷移學習
18.1 協變量移位下的遷移學習
18.2 類彆平衡變化下的遷移學習
第19章 多任務學習
19.1 使用最小二乘迴歸的多任務學習
19.2 使用最小二乘概率分類器的多任務學習
19.3 多次維輸齣函數的學習
第VI部分 結 語
第20章 總結與展望
參考文獻
前言/序言
機器學習領域是深不可測的嗎?人工智能是天方夜譚嗎?時至今日,機器學習研究的重要性與可行性已得到廣泛承認,並在模式識彆、通信、控製、金融、機器人、生物信息學等許多領域都有著廣泛的應用。
如何自動歸類篩選郵件和網頁?如何嚮大傢推薦你可能感興趣的人?如何預測整體市場行情的好壞?如何從統計學的角度對照片進行歸類?本書就介紹瞭這樣一些算法。
如果想得到最通俗、簡潔的講解,本書最為閤適。
如果想立即知道算法的性能,並期望有可運行的源代碼,本書最為方便。
很多人都是看著日本的動畫長大的。殊不知,大部分日本人都具有熟練的繪畫能力。他們總可以把復雜、枯燥的事物用惟妙惟肖的漫畫生動地錶達齣來。廣告、網頁、海報,甚至政府公告都圖文並茂。市麵上也有不計其數的“圖解……”“圖說……”一類的書籍。本書就是其中一例,這也是本書的最大特點。
杉山將博士今年赴任東京大學教授,他在機器學習領域頗有建樹。他的研究室吸引瞭來自世界各地的機器學習研究者。本書承襲瞭日本特有的繪畫特色,依靠作者豐富的機器學習經驗,用最精簡的文字,將原本復雜抽象的數學原理,用形象的漫畫與數據圖形進行瞭清晰的說明。作者也將最前沿和最核心的研究成果匯集到瞭本書之中。
本書的側重點不在於機器學習原理的相關推導,而在於結論的分析和應用。讀者朋友可以更快地掌握各種算法的特點和使用方法,提綱挈領地消化應用,而不必拘泥於算法的細節不能自拔。另外,本書旁徵博引,圖文並茂,結構清晰,範例實用豐富,深入淺齣地說明瞭機器學習中最典型和用途最廣泛的算法。
本書內容覆蓋麵廣,不但與市麵上眾多的機器學習書籍並無重復,更可與其互為補充。大部分算法都有簡潔、現成的MATLAB源代碼,讀者朋友可以輕鬆地進行驗證。以此為原型,再稍加修改擴充,即可做齣為自己所用的項目代碼。
機器學習領域日新月異,書中所涉及的概念和術語數目繁多,且有許多概念和術語目前尚無公認的中文譯法。如果有不閤讀者朋友習慣的術語齣現,請參考譯者注,確認其原始詞意。
本譯稿得到瞭圖靈公司編輯的悉心指導,她們為保證本書的質量做瞭大量的補譯、校正及編輯工作,在此錶示深深的謝意。
許永偉
2014年12月於東京
《深度探秘:算法的邏輯與創新的實踐》 本書並非對某類特定技術或理論的羅列,而是旨在構建一個關於“思考如何解決問題”的通用框架。我們聚焦於那些驅動現代智能技術的核心邏輯,以及這些邏輯如何在現實世界中轉化為創新應用。本書的核心在於“理解”,而非“記憶”;在於“推理”,而非“套用”。 第一部分:思維的基石——抽象與建模 在深入探索復雜係統之前,任何學科都需要一套清晰的思維工具。本部分將帶領讀者迴歸思維的本源,學習如何將紛繁復雜的世界提煉成易於分析和操作的模型。 一、認識現實的邊界:從具象到抽象 1.1 觀察與提問:一切分析的起點 我們如何看待和理解周圍的事物?本節將探討不同尺度的觀察如何引導我們發現問題的關鍵。從日常生活現象到科學前沿的觀察,我們將學習如何捕捉那些看似微小卻蘊含重大意義的細節。 “為什麼會這樣?”“如果……會怎樣?”——學習提齣能夠引導深入思考和探索的問題,是構建知識體係的第一步。我們將分析提問的藝術,包括開放式提問、限定性提問以及如何通過問題層層遞進,觸及問題的本質。 1.2 抓住本質:辨彆關鍵特徵與忽略噪音 在海量信息中,哪些是真正影響事物運作的要素?本節將介紹識彆“關鍵特徵”的方法,例如通過對比分析、歸納總結以及可視化手段,找齣事物最核心的屬性和行為模式。 “噪音”並非一無是處,但何時需要忽略它?我們將探討區分“噪音”與“信號”的策略,以及如何避免被無關信息乾擾,從而聚焦於核心問題。 1.3 構建模型:思維的藍圖 什麼是模型?它為何如此重要?本節將闡述模型的概念,從簡單的物理模型、數學模型到更復雜的概念模型,理解模型是如何幫助我們理解、預測和控製現實世界的。 模型的要素:變量、關係與約束。我們將學習如何定義模型的構成部分,如何描述變量之間的相互作用,以及模型的局限性——哪些約束條件決定瞭模型的適用範圍。 從概念到形式:將直觀理解轉化為結構化描述。本節將引導讀者將對現實世界的理解轉化為具有邏輯結構的形式化描述,為後續的分析和計算奠定基礎。 二、邏輯的語言:符號、規則與推理 2.1 符號係統:構建邏輯的基石 為何需要符號?符號如何承載意義?本節將深入探討符號的本質,以及它們在不同領域(如數學、編程、自然語言)中扮演的角色。理解符號的抽象性和靈活性是掌握復雜邏輯的關鍵。 從簡單到復雜:符號組閤的規則。我們將學習不同的符號組閤規則,例如數學運算符號的組閤、邏輯運算符的優先級,以及它們如何構建齣更復雜的意義。 2.2 規則的力量:指令與約束 規則的類型:顯性規則與隱性規則。本節將區分不同類型的規則,例如明確的程序指令、自然界的物理法則,以及社會中的約定俗成。 規則的執行:如何讓“行動”成為“邏輯”?我們將探討規則如何被解釋和執行,以及“執行”過程中可能遇到的問題,如歧義、衝突和不完整性。 2.3 推理的藝術:從已知到未知 演繹推理:從一般到特殊。本節將詳細講解演繹推理的原理,包括前提、結論以及推理的有效性。通過具體的例子,理解如何從普遍真理推導齣特定結論。 歸納推理:從特殊到一般。我們將探索歸納推理的魅力與挑戰,瞭解如何通過觀察大量個例來形成普遍性結論,並討論歸納推理的局限性以及如何提高其可靠性。 溯因推理(Abduction):尋找最佳解釋。本節將介紹溯因推理,即在觀察到一係列現象後,尋找最可能解釋這些現象的原因。這種推理方式在診斷、故障排除和科學發現中至關重要。 第二部分:算法的靈魂——結構、流程與優化 理解瞭思維的基石,我們便可以開始構建實現這些思維的“機器”——算法。本部分將深入剖析算法的內在結構、執行流程以及優化之道。 三、算法的架構:數據與指令的舞蹈 3.1 數據結構:信息的組織之道 為何需要結構?不同結構的優勢與劣勢。本節將探討數據在計算機中如何被組織和存儲,從最基本的數組、鏈錶,到更復雜的樹、圖等。理解不同數據結構的特性,是選擇最高效處理信息的關鍵。 選擇閤適的結構:匹配問題與數據的特性。我們將學習如何根據問題的需求和數據的特徵,選擇最適閤的數據結構,從而提高處理效率和降低資源消耗。 抽象數據類型(ADT):隱藏實現細節。本節將介紹ADT的概念,理解它如何提供一種通用的接口,隱藏底層實現的復雜性,使得算法的設計更加靈活和模塊化。 3.2 控製流:指令的執行序列 順序執行:最簡單也最基礎的指令排列。本節將迴顧最基本的指令執行方式,以及如何通過簡單的組閤實現一係列操作。 分支與判斷:讓算法“思考”。我們將深入理解條件語句(if-else)、選擇語句(switch)等如何讓算法根據不同的情況做齣不同的決策,這是算法具有智能性的基礎。 循環與迭代:重復的力量。本節將探討各種循環結構(for, while),以及它們如何實現重復性的任務,效率地處理大量數據,並介紹迭代器的概念。 遞歸:優雅的自我調用。我們將深入理解遞歸的原理,及其在解決分治問題、樹狀結構遍曆等方麵的強大能力,並討論遞歸與迭代的相互轉化。 四、流程的優化:效率與性能的藝術 4.1 衡量效率:時間與空間復雜度 什麼是“效率”?超越直覺的度量。本節將引入時間復雜度和空間復雜度的概念,解釋它們如何描述算法隨輸入規模增長而變化的性能錶現。 大O錶示法:描述增長趨勢的通用語言。我們將學習使用大O錶示法來分析和比較不同算法的效率,理解常數時間、對數時間、綫性時間、平方時間等概念。 案例分析:不同算法效率的對比。通過具體的例子,例如排序算法(冒泡排序、快速排序)或查找算法(綫性查找、二分查找),直觀展示不同算法在時間和空間復雜度上的差異。 4.2 算法設計策略:解決問題的通用方法 分治法(Divide and Conquer):化繁為簡。本節將深入講解分治法的思想,如何將大問題分解為小問題,獨立解決後再閤並結果。 動態規劃(Dynamic Programming):避免重復計算的智慧。我們將探討動態規劃的核心思想,如何通過存儲子問題的解來避免重復計算,從而高效地解決具有重疊子問題和最優子結構的問題。 貪心算法(Greedy Algorithms):局部最優的追求。本節將介紹貪心算法的策略,即在每一步都做齣當前看起來最優的選擇,以期獲得全局最優解,並討論其適用條件。 迴溯法(Backtracking):試探與剪枝。我們將學習迴溯法的思想,如何通過係統地搜索所有可能的解決方案,並在發現當前路徑無法達成目標時“迴溯”到之前的狀態,從而找到解。 4.3 算法的評估與選擇:在約束條件下做齣明智決策 多種解法:不存在“唯一最優”的算法。本節將強調,對於同一問題,可能存在多種解決算法,每種算法都有其優缺點。 權衡取捨:效率、可讀性與實現難度。我們將討論如何在實際應用中權衡算法的運行效率、代碼的可讀性、實現的難度以及對特定硬件的要求。 特定場景的優化:針對性地改進。本節將引導讀者思考,如何根據具體應用場景的特點,對通用算法進行局部優化,以達到最佳性能。 第三部分:創新的實踐——應用與演進 理解瞭思維的邏輯和算法的精髓,我們便能將這些能力應用於解決現實世界中的各種挑戰,並持續推動創新。 五、問題的轉化:從業務需求到算法藍圖 5.1 理解痛點:需求分析的深度 “用戶想要什麼?”——超越錶麵需求。本節將探討如何通過深入的訪談、用戶調研和場景分析,挖掘用戶隱藏的、深層次的需求,而不是僅僅停留在錶麵的請求。 識彆關鍵瓶頸:在流程中找到“斷點”。我們將學習如何分析現有流程或係統,找齣效率低下、成本高昂或體驗不佳的關鍵環節,這些環節通常是應用算法的最佳切入點。 量化目標:讓“好”有標準。如何將模糊的改進目標轉化為可衡量的指標?本節將討論設定清晰、可量化的成功標準,例如提高準確率、降低延遲、減少錯誤率等。 5.2 特徵工程:為算法注入“理解力” 何為“特徵”?數據的“眼睛”。本節將深入闡釋特徵的概念,即從原始數據中提取齣的、能夠有效反映問題本質的屬性。 特徵的來源:原始數據、組閤與轉換。我們將探索如何從原始數據中提取特徵(如文本的詞頻、圖像的像素值),如何通過組閤現有特徵生成新特徵(如年齡段、收入水平),以及如何對數據進行轉換(如歸一化、離散化)以適應不同算法的需求。 特徵的選擇與評估:去僞存真。本節將介紹多種特徵選擇方法,例如過濾法、包裹法和嵌入法,以及如何通過評估特徵的重要性來構建更精簡、更有效的特徵集。 5.3 問題的建模與映射:為算法找到“傢” 選擇閤適的模型類型:分類、迴歸、聚類……?本節將引導讀者瞭解不同類型的建模任務(如預測一個離散的類彆、預測一個連續的數值、發現數據的內在分組),並根據問題性質選擇最閤適的建模框架。 將問題映射到算法:找到“天生一對”。如何將現實問題轉化為算法可以處理的形式?我們將學習如何將業務目標、數據特徵與算法的輸入輸齣對應起來。 定義評價指標:衡量算法的“聰明程度”。本節將詳細介紹各種評價指標(如準確率、精確率、召迴率、F1分數、均方誤差等),以及如何根據不同的應用場景選擇最閤適的評價指標。 六、算法的生命周期:從訓練到部署再到迭代 6.1 模型的訓練:讓算法“學習” 訓練數據的準備:質量決定一切。本節將強調訓練數據的質量、數量和代錶性對模型性能的決定性影響,以及數據劃分(訓練集、驗證集、測試集)的重要性。 算法的學習過程:參數的調整與優化。我們將深入理解模型是如何通過算法在訓練數據上調整內部參數,以最小化誤差或最大化目標函數的過程。 驗證與調參:防止“過擬閤”與“欠擬閤”。本節將介紹驗證集的作用,以及如何通過調整超參數來優化模型性能,避免模型在訓練數據上錶現優秀但在新數據上錶現糟糕(過擬閤)或在任何數據上錶現都不佳(欠擬閤)。 6.2 模型的評估與部署:走嚮“實戰” 在測試集上的最終檢驗:真實世界的“模擬考試”。本節將強調測試集的重要性,它模擬瞭模型在未知數據上的錶現,是衡量模型泛化能力的關鍵。 部署的挑戰:從實驗室到生産環境。我們將討論將訓練好的模型集成到實際應用中可能遇到的技術挑戰,如計算資源、延遲要求、數據流處理等。 用戶體驗與集成:算法融入日常。如何讓算法“潤物細無聲”地服務於用戶?本節將關注算法與用戶界麵、業務流程的順暢集成,確保用戶能夠從中受益。 6.3 模型的監控與迭代:持續的改進之路 性能監控:算法的“健康體檢”。模型部署後並非一勞永逸,本節將強調持續監控模型在實際運行中的性能,及時發現性能下降或異常。 數據漂移與概念漂移:世界在變,算法也需適應。我們將探討外部環境變化(如用戶行為改變、數據分布偏移)對模型性能的影響,以及如何識彆這些變化。 模型的再訓練與更新:讓算法“永葆青春”。本節將介紹何時需要對模型進行再訓練,如何利用新收集到的數據來更新模型,以適應不斷變化的世界。 模型的可解釋性與透明度:理解“為什麼”。在某些關鍵領域,理解算法做齣決策的原因至關重要。本節將探討可解釋性模型的重要性以及相關技術。 結語:探索無限的可能 本書並非提供一套固定不變的“秘籍”,而是緻力於開啓讀者探索未知、解決問題的思維方式。我們相信,理解算法的內在邏輯、掌握抽象與建模的藝術,並能夠將這些能力創造性地應用於實踐,纔是應對未來挑戰的關鍵。願讀者在本書的引導下,能夠成為更具洞察力、更富創造力的思考者和實踐者。