機器學習簡單分類「點擊可查看大圖」
分類依據參考推薦圖書,不權威
說起機器學習的緣起,通常大家都會提到這兩位大佬:Arthur Samuel 和 Tom Mitchell。
1959 年,Samuel 首創 Machine Learning 一詞,他給 ML 下的非正式定義為:
Field of study that gives computers the ability to learn without being explicitly programmed.
「沒有明確編程指令的情況下,能讓計算機學習的研究領域就是機器學習。」
這個定義比較概括,1998 年,Tom Mitchell 給出了一個更為精確的定義:
Well posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
「「對於某類任務 T 和性能度量 P,如果一個電腦程式在 T 上以 P 衡量的性能隨著經驗 E 而自我完善,那麼我們稱這個電腦程式在從經驗 E 學習。」 也就是說能夠隨著經驗積累自動提升性能。」
這個定義比較學術哈,畢竟是學術界大佬給的,咱就應付個開場哈,別覺得很無趣~
Arthur Samuel ,計算機科學家,人工智慧先驅,1956 年達特茅斯會議參與者,他寫了第一個真正的機器學習下棋程序。讓 Samuel 在機器學習領域揚名立萬的這篇文章發表在 IBM Journal of Research and Development 上,文章叫:「Some Studies in Machine Learning Using the Game of Checkers」 ,Samuel 彼時為 IBM 公司工程師。
Tom Mitchell ,機器學習領域先驅,卡內基梅隆大學教授,美國工程院院士,以人工智慧、機器學習、認知神經科學等領域貢獻著稱。1997 年出版 Machine Learning 一書。
機器學習是人工智慧的一種實現方法,其中涉及很多算法和模型。神經網絡就是當前非常受歡迎的一種機器學習模型,而深度學習是應用了深度神經網絡的機器學習。文章一開始的思維導圖中簡單地列出了一些比較常見的算法或者模型。
接下來我們就給出一些機器學習領域非常受歡迎或者比較有特色的圖書,我會儘量少推薦幾本。
程式設計師閱讀指北「機器學習」書單
粗略用工程派和學院派分類「點擊可查看大圖」
學院派圖書難度稍大,並不絕對
- 機器學習 -
Python 神經網絡編程
作者:塔裡克·拉希德(Tariq Rashid)
譯者:林賜
原作名:Make Your Own Neural Network
不要被神經網絡嚇到,目測這本是所有圖書裡最簡單的,不少豆瓣網友寫書評號稱這本是文科生也能看懂的機器學習入門書。作者在前言裡表示他想讓中學生水平的讀者就能看明白這本書——用儘可能簡潔明了的方式介紹神經網絡的基本思路。看目錄可能是只用了 3 層神經網絡,所以還算是簡單的機器學習算法,而不是深度學習。
作者:Oliver Theobald
作者: Andriy Burkov
這兩本書是英文版的,暫時沒看到中文版,都很薄,在 150 頁左右,是目前 Amazon 上比較受歡迎的入門書,從目錄和試讀看,讀起來都相對輕鬆,第一本數學公式很少,第二本多一些。
機器學習實戰:基於 Scikit-Learn 和 TensorFlow
作者:Aurélien Géron
譯者:王靜源 / 賈瑋 / 邊蕤 / 邱俊濤
原書名:Hands-On Machine Learning with Scikit-Learn and TensorFlow
這本是機器學習領域近年來的暢銷書,原版 Amazon 評價非常好。偏實戰,意在教你快速掌握構建人工智慧系統的概念和工具。它分兩部分講,前半部分講機器學習的基礎理論知識和基本算法,以 Scikit-Learn 實現,後半部分講深度學習和 TensorFlow,教你快速搭建和訓練深度神經網絡。
機器學習實戰
作者:Peter Harrington
譯者:李銳,李鵬,曲亞東,王斌
原書名:Machine Learning in Action
這本書算是工程領域的暢銷經典了,出得比較早,雖然是 Python 2.x 實現,至今依然很受歡迎。如果你不夠了解機器學習原理,但想快速通過代碼上手機器學習,那這本不錯,這也是很多自學者喜歡的路徑。
機器學習
作者:周志華
被讀者稱為西瓜書,不僅因為封面上有西瓜,西瓜也是貫穿全書示例的主角。這本是國內最暢銷的機器學習圖書。作者在前言中說它是入門級教科書,意在理清機器學習領域基本概念,讓讀者了解領域概貌。實際上,可能更適合已經了解機器學習基本概念,想認識機器學習原理(Why)、數學公式、算法實現的小夥伴;或者作為有教師講解指導下的參考書。完全零基礎自學(尤其是計算機和數學功底不夠強)的讀者,恐怕會被虐。
西瓜書內容全面系統,排版精緻,書中給出了大量該領域的專業參考資料,方便大家深入學習,是原創學院派佳作。書後面也包括了深度學習和強化學習的內容。
統計學習方法
作者:李航
又是一本評價非常好的原創圖書,介紹了支持向量機、Boosting、最大熵、條件隨機場等十個統計學習方法(也就是機器學習方法)。靠這本完全零基礎入門依然是比較吃力,適合看推導和理解算法原理。
其他推薦
「入門課程」
吳恩達的《機器學習》是公認的非常棒的機器學習入門線上課程,Coursera 上雖然也有翻譯,不過並不是以字幕形式:
https://www.coursera.org/learn/machine-learning/lecture/RKFpn/welcome;
英語吃力的同學,可以用網易公開課上的 CS229:https://open.163.com/movie/2008/1/M/C/M6SGF6VB4_M6SGHFBMC.html
「其他圖書」
An Introduction to Statistical Learning: with Applications in RThe Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second EditionMachine Learning: A Probabilistic Perspective這四本書都是學院派的,第一本相對簡單,剩下的三本有難度。
- 深度學習 -
深度學習入門:基於 Python 的理論與實現
作者:齋藤康毅
譯者:陸宇傑
這本書是從日語翻譯過來的,原版就非常暢銷。這本算是入門入得比較徹底,不會用任何深度學習框架,而是教大家用 NumPy 庫和 Matplotlib 庫從零開始實現自己的深度學習模型。遇到必要的數學公式和原始碼都會一一講解。要說可能有部分讀者在意的地方是,只有圖像識別的示例,沒有自然語言處理、語音識別等的示例實現。
Python 深度學習
作者:弗朗索瓦·肖萊
譯者:張亮(hysic)
原書名:Deep Learning with Python
Keras 之父 François Chollet 的作品,非常棒的深度學習入門圖書,講得深入淺出、通俗易懂。文中採用了對深度學習初學者友好的 Keras 框架,涉及計算機視覺、自然語言處理、生成模型等應用。
TensorFlow:實戰 Google 深度學習框架(第2版)
作者:顧思宇,梁博文,鄭澤宇
原創圖書中評價不錯的一本,TensorFlow 實戰入門書,版本是 1.4.0,注重通過實例講解實際問題。
前三本都是很棒的入門書,都不厚,前兩本不超過 300 頁,後面一本 300 多頁,建議看到學院派圖書頭大的讀者先讀這類書;一些只想了解簡單原理的朋友也可以優先選擇這類書。
深度學習
作者: 伊恩·古德費洛 / 約書亞·本吉奧 / 亞倫·庫維爾
譯者:趙申劍,黎彧君,符天凡,李凱
原書名:Deep Learning
大名鼎鼎的花書,被稱為深度學習領域聖經。作者之一 Yoshua Bengio,前幾天剛跟兩位亦師亦友的大神專家 Geoffrey Hinton 和 Yann LeCun 獲得了 2018 年度圖靈獎,三位都是深度學習領域頂級大佬。
花書是學院派經典,非常全面系統綜合,不過呢,領域大部頭學起來也是需要些毅力。
- 強化學習 -
作者:Richard Sutton,Andrew Barto
強化學習領域聖經,是強化學習大佬 Sutton 和他的老師、也是強化學習發明人 Barto 的作品,學院派硬核書。這本書第一版是 1998 年出的,這些年堅持研究強化學習值得敬佩,在阿爾法狗大敗李世石之前,強化學習也算是冷門研究領域了。
其他推薦
「入門課程」
吳恩達《深度學習》:
https://www.coursera.org/specializations/deep-learning
網易雲課程字幕版:https://mooc.study.163.com/smartSpec/detail/1001319001.htm
「其他圖書」
Dive into Deep Learning 「李沐團隊《動手學深度學習》」
http://www.d2l.ai/index.html
這本強化學習的書評價也不錯,適合工程派。
<End>
●編號799,輸入編號直達本文
●輸入m獲取文章目錄
程式設計師書庫
更多推薦《25個技術類公眾微信》
涵蓋:程序人生、算法與數據結構、黑客技術與網絡安全、大數據技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等