個人推薦學習資源: for AI 技術底層與應用──機器學習篇 (持續更新中)


我想推薦對我來說重要的學習資源,可以更認識機器學習的概貌與底層知識。這些素材在我的學習過程中我經常使用,甚至開始工作後我還在用,覺得獲益良多。我會針對這些書籍,介紹他們的特色或優缺點,有些也會提及我如何使用。以下是關於「機器學習」的推薦。



1.  圖解AI: 機器學習和深度學習的技術與原理

先來介紹輕鬆的:《圖解AI|機器學習和深度學習的技術與原理》。這本書以涵蓋度廣為寫作目標,特色是視覺化的講解複雜的概念,主題涵蓋機器學習、深度學習和強化學習,以及資料操作與轉換。書中也會提及一些典範思想的演進史、基礎概念以及應用範例。


優點如書名所示,其使用「圖解」來說明技術操作和運算過程,複雜的東西可以清楚視覺化,對於入門者或是快速回憶演算法的人方便。缺點也很明顯,整本書正文不到240頁要寫這麼多東西,還要畫圖,許多技術內容只能淺嘗即止。



2.  StatQuest with Josh Starmer


頻道:https://www.youtube.com/@statquest

主題完全集中在機器學習 (與重要統計觀念) 的講解,我覺得非常佩服的頻道。把抽象的演算法運作與觀念,用視覺化方式講解清楚。


以前讀書時想像不出一個演算法是如何運作的,就會詳看此頻道教學。內容精簡沒有廢話,而且還非常搞笑風趣,有無厘頭的語助詞,每個單元影片還配有一首專屬的silly song。頻道還推出過自己的周邊商品。



3.  3blue1brown


頻道https://www.youtube.com/@3blue1brown

非常有名的教學頻道,用動畫的方式呈現一些底層知識的運作機制和基礎架構,深入淺出。以前讀書時碰到一些難懂的底層原理,都會來這裡找清楚不失專業的講解。主題多樣,不侷限機器學習,有統計、數學、物理和電腦科學。但近期也有經網路架構、LLM的運作的主題。



4. Hands-on Machine Learning with Scikit-Learn, Keras & Tensorflow


這本算深入淺出,覺得是新手友善的實作教材。這本書有三個我喜歡的點。(一) 很結構性與組織性:分成經典機器學習跟深度學習,其中又將經典機器學習分成監督式跟非監督式。監督式講到樹模型、線性模型、SVM跟集成學習;非監督式則是聚類和混合﹝mixture﹞模型。每一模型都有詳細介紹經典機制、特性和變形。


雖然我覺得還可以再多講一些主題,例如機率為基礎的高斯模型或貝葉斯類模型,不過此書的基礎,已夠我們在實務上理解和操作許多模型了。


(二) 實務導向,有講解模型訓練的流程,也教開發模型和分析、解讀模型的常用套件。(三) 描述簡潔,能用準確的語言描述操作和背後的原理,有些比較複雜的概念性的比較,也能用圖/表講清楚。如果他數學講解不好懂,其實可以先看它的實作,再反過頭來看數學也行。



5. 機器學習及深度學習真實生活應用 


這一本描述方式算很平衡,雖是實作導向的書,但不會太單薄到欠缺原理,或比重失衡導致只針對程式碼做講解而已。他借重數學形式表達概念,但也不會太深或太沉溺於推導,這是我說很平衡的原因。但會不會變成多方不討好,我不知道。其舉例提及的應用情境也不錯,提昇我們實務應用上的直覺。


這本書的主題也很平衡,特徵工程、數據挖掘、參數最佳化、部分經典機器學習模型﹝很偏重線性回歸跟樹模型﹞,以及傳統時間序列模型都有碰到。神經網路只算有點到而已,被歸類在複雜回歸的其中一個章節。


這本書很實作導向,實作程式上,書中幾乎都自己寫算法,而非用現成的套件﹝儘管工作中多不需要自己從頭到尾刻一個演算法﹞。可是我喜歡這種方式,因為這讓我們理解模型底層邏輯,增加程式的敏感度;我們也會比較能駕馭程式工具,擴充到自己想要做的專案。最後需要注意的是,作者是中國大陸人士﹝書是繁體中文﹞,可能有些專有名詞會跟台灣不一樣,這點要特別注意。



6.  機器學習

周志華《機器學習》又被稱作西瓜書,原理講解的範例以「西瓜」貫串全書,在簡體中文世界頗有盛名。其架構清楚,涵蓋度廣。原理講解深刻且極為著重數學推導。


開頭兩章是導論與模型選擇/評估,第3-10章提及神經網路與經典機器學習算法﹝線性模型、樹模型、貝葉斯、SVM、集成學習、降維﹞、11-16章算是進階主題,半監督學習、機率圖模型和強化學習等。這本書優點在於,對於認識AI主線劇情和學習路線有很大的幫助。然而對台灣人來說缺點也比較明顯,作者是中國人,書中專有名詞和技術用語和台灣不同,所以在理解上和學完之後與人溝通,會有一定隔閡。


但最近發現他出了英文版https://www.leiphone.com/category/academic/KIlngywI6HAVb0D8.html


7. Machine Learning: an algorithm perspective


這本不是搞實作的書,畢竟是「演算法視角的機器學習」。專門講演算法的數學、機制或原理。書中實作/範例也是自己刻寫演算法,而不是直接引入常用套件。所以大多人想像的那種清晰實作案例、簡明的現成套件,通通都沒有。


但這本卻是我最常用的工具書。和西瓜書相同,內容有監督式和非監督式的經典機器學習算法,也有進階的像神經網路、強化學習和機率圖模型等。不同的是,首先這本書主線偏機器學習多,此基礎上也多了高斯過程和基因演算法這類演化算法;再者進階模型部分,像神經網路、強化學習和機率圖模型,程度只能當入門的台階,沒辦法認識到主流方法的全貌和比較。


我經常用這本書對照自己工作中所學到的新方法,當作基礎打底;也會查找所用方法的數理特性,指引合適的應用方式和實務運作場景。


8.  Mathematics for machine learning


顧名思義就是講機器學習裡面需要的數學,以「數學」方法為主角。這是機器學習 / AI的最底層且基礎的數學,也是關於模型求解、優化和機制設計的基礎。單獨學會有點枯燥,回饋感很低,你知道機器學習所需數學有這些,但讀起來就是感受不太到自己正在機器學習的路上前進。


這本我只推薦給好奇寶寶、想複習數學者或是穩固基礎的人。我最常使用本書前七章,也就是線性代數、座標幾何、微分/向量微分、機率分布、連續優化等議題。


這個在學校裡面都分立為不同課程,放在同一本書裡面就變得執簡馭繁,相比直接在大學裏面分門別類的學這些硬課,讀這本感覺輕快舒適一些。如果對這些完全都沒概念,我很推薦認識一下這些名詞和概念。行有餘力或是還是學生的人,也推薦仔細學一下線性代數、統計學、數理統計和微積分。

0 留言