【讀後心得】《零基礎入門的機器學習圖鑑》,日本亞馬遜熱銷!全圖像化各類機器學習演算法,附範例Python程式碼

--

秋庭伸也、杉山阿聖、寺田學:《零基礎入門的機器學習圖鑑:2大類機器學習╳ 17種演算法 ╳ Python基礎教學,讓你輕鬆學以致用》(采實文化:2021/01,初版)

上個月接獲采實文化邀稿,要來談談《零基礎入門的機器學習圖鑑:2大類機器學習╳ 17種演算法 ╳ Python基礎教學,讓你輕鬆學以致用》。此書由秋庭伸也、杉山阿聖、寺田學合著,是機器學習(Machine Learning,常簡稱 ML)的入門指南。

機器學習是當前很夯的學科技術,其實寫之前我很怕文組出身的自己沒法寫出有用的心得、書評,畢竟離本身學科很遠、入門門檻也很高,只有工作上會稍微接觸到 ML 。好在,這本書並沒有詳細解說機器學習的數學原理及最佳化運算過程,因此在業務有需求的情況下,純粹以工具入門(而非科學普及)的角度來看,還是讀得完。

我在過年期間趁空(略顯艱辛地)看完此書,覺得本書適合以下讀者閱讀:

  1. 對機器學習、AI 應用完全不懂,出於興趣想要了解(推薦給有數學、理工、資料相關背景的朋友閱讀);
  2. 想運用基礎機器學習概念,分析大量原始數據資料(Raw Data)的商業相關分析師;
  3. 正在學習 Python,想要找東西來練的(本書附有大量 Python 語法)
  4. 已具備某種程度的機器學習相關知識,想再深入一點學習。

當然,這類入門書,多少會因為野心太大、想要在宏觀角度下快速收斂各種艱深概念,因而有語意不清的狀況。這本書也很難避免這個缺點。此外,本書專有名詞不少,雖然作者有試著解釋每個專有名詞,但在 Domain Knowledge 不夠嫻熟的情況下,要能流暢的閱讀還是很吃力。

什麼是機器學習?與人工智慧有何不同?

ML 是一門對數學運算與模型最佳化要求相當的技術學科,許多人會將人工智慧(AI)、深度學習、圖像辨識等名詞與機器學習全都混用一起,但其實彼此的關係比較像下圖:

感謝出版社采實文化授權自攝書籍內頁作為心得範例。版權為原作者與出版社所有,請勿轉載。秋庭伸也、杉山阿聖、寺田學:《零基礎入門的機器學習圖鑑:2大類機器學習╳ 17種演算法 ╳ Python基礎教學,讓你輕鬆學以致用》(采實文化:2021/01,初版)

也就是說,人工智慧是最上層的總括式概念,機器學習則是實現人工智慧的其中一種方法;而深度學習是機器學習演算法的一種,常用於圖像辨識領域。

零基礎入門的機器學習圖鑑》則是系統性地介紹多種機器學習演算法,讓讀者(使用者)能根據機器學習的性質與自身的演算目標,選擇最合用的演算法。當然,這是一個相對理想的目標,畢竟一次要介紹兩大類 17 種演算法,很難講太深;個人覺得本書更像是指引有興趣的人,該往哪個方向探索,而非直接做出應用的選擇。

機器學習怎麼分類?我該用哪一種?

機器學習的種類繁多,本書作者群用「輸入資料(Input Data)」作為分類基礎,分出三類,並從三類中挑選兩類,進一步介紹 17 種演算法:

感謝出版社采實文化授權自攝書籍內頁作為心得範例。版權為原作者與出版社所有,請勿轉載。秋庭伸也、杉山阿聖、寺田學:《零基礎入門的機器學習圖鑑:2大類機器學習╳ 17種演算法 ╳ Python基礎教學,讓你輕鬆學以致用》(采實文化:2021/01,初版)
  1. 監督式學習(Supervised Learning):將問題的答案(特徵)預先輸入電腦,讓電腦學習「機器學習模型」。需要提供資料與答案。常見的監督式學習有「羅吉斯迴歸(頁83–89)」、「線性迴歸(頁64–72)」。
  2. 非監督式學習(Un-supervised Learning):跟監都式學習很像,需要先提供資料,不過無須給答案(目標變數);答案是用類推/預測的方式,用得分值的偏差與否,判斷答案是否為真。常用的方法有「降維(Dimensionality Reduction)」、「分群(Clustering)」
  3. 強化學習(Reinforcement Learning):類似監督式學習,不在本書的討論中。作者群以電玩遊戲不斷練習為例,如玩家反覆玩遊戲,獲得各種不同動作評分(特徵),機器則以強化學習,學習玩家的行動與遊戲成果(目標變數),最終學會最有效益的行動。

前述提到這本書的問題,大概在進到分類說明演算法時,偶爾會顯得艱澀。可能該名詞在很多頁之前有說明過,突然又出現在後面章節,導致認知不連貫甚至障礙的情況。另外選用的例子,網路上有評論覺得以常情而言說不通,這邊我倒覺得從機器學習的角度來看可以理解(以下舉例說明)。

比如說,「單純貝式分類器」將一連串虛構的新聞報導標題,區分為「電影」和「宇宙」兩種類別,最後再給予一個測驗用的虛構標題,請電腦判斷這到底是哪一類。實際出來的結果,是2/3機率為電影,1/3機率為宇宙。至於這個判斷的正確與否,其實取決於一開始餵的那一連串標題與分類,而非真實語意的判斷。假如你怎麼看都覺得電腦判錯了,其實很正常──因為電腦是根據你給的資料來決策;至於你的人工判斷(合不合理)則已經在人工驗證/回饋的階段,兩者不能一概而論。至於電腦會不會改善判斷,則是取決於下一輪的資料來源與學習過程。

機器學習的應用方式

機器學習的應用其實包山包海,《零基礎入門的機器學習圖鑑》提到汽車自動駕駛、文字自動分類與翻譯,或是醫療領域的X光片分析、氣象資訊的情勢分析等,都有關聯應用。

目前我待過的幾間公司,或多或少都有用到機器學習技術,只是深淺之分。與電商為例,機器學習多半用於用戶喜好與行為分析(或預測),藉此提供最佳化的內容;同理也常用於廣告投放分析。相信軟體業的產品經理們對此必不陌生。

只是,畢竟技術原理相當倚賴數學能力,模型設計也是工程師的活,因此在實務上遇到機器學習需求時,比較多是產品經理描述需求,直接讓ML工程師帶隊選用方法、設計模型、訓練資料,最終再由產品經理、營運團隊或相關同仁,參與結果驗收(檢驗)結果是否正確,從而進行下一輪的機器學習。

Photo by rawpixel.com on lifeofpix.com

我可以怎麼閱讀這本書?

坦白說,《零基礎入門的機器學習圖鑑》,對於純文學學科背景(如我)的讀者而言,可能只能讀一半;非軟體業或業務無涉機器學習者,可能只能讀更少。離標題標榜的「淺顯易懂」,其實有一小段距離。

原因很簡單,雖然全書有大量圖解,也在每種機器學習方法清楚列出了原理、實務應用方向、範例成果等,所以讀者在「隨機森林」、「類神經網路」、「單純貝式分類器」、「潛在語義分析(LSA,Latent Semantic Analysis)」可以快速理解。

只是,進到每一節後半段的範例程式碼,或是章節中數學講比較深的地方,難免會有「吸收不了」、「無處可用」、「名詞艱深」的為難。

不過,我始終覺得,一本書哪怕整本都寫很爛,只要有一句話打動你的心、對人生或思想有所影響,那讀書的時間也就值得了。

所以儘管對我來說,此書只有讀一半的遺憾,但另一半讓我補上了機器學習的基礎知識,掌握機器學習的整體輪廓與概念,幫助我在跟同事討論工程進度時,不至於鴨子聽雷一頭霧水,也可以省掉一些些工程師賣力解釋的時間,其實就非常實用了!

雖然還做不到「精準選對演算法」這個略嫌進階的目標,但反正專業事交給專業人決策(就交給工程師吧)!能提升溝通效率,就已非常有幫助。

最後還是要說,機器學習門檻真的頗高,這本也真的偏向入門「工具書」而非科普書。如果工作、興趣上沒有需要,請自行判斷是否需要購入此書。

如果你喜歡這篇文章,請給我 10 個 Clap(拍手)!
鼓勵我繼續寫作、分享職場與好書心得!❤️

如果你對這本書有興趣,可到博客來購買《零基礎入門的機器學習圖鑑。(點擊本文附贈連結購書,我將獲得4% 回饋金,回饋金將用於流浪動物團體捐款。)

--

--

陳亭勻 (Selena)

外商 APP 產品經理,8年工作經驗,待過大集團與小團隊,加拿大與台灣,產業橫跨零售、外貿、遊戲、數據分析、行銷、財經資訊。熱衷產品打磨、密室逃脫與用戶行為研究,人生中最久的身份是跨平台遊戲玩家。邀稿請洽:selenaceline@gmail.com