想入門機器學習?機器之心為你準備了一份中文資源合集

2020-12-05 機器之心Pro

機器之心整理

參與:機器之心編輯部

機器學習日益廣為人知,越來越多的計算機科學家和工程師投身其中。不幸的是,理論、算法、應用、論文、書籍、視頻等信息如此之多,很容易讓初學者迷失其中,不清楚如何才能提升技能。本文作者依據自身經驗給出了一套快速上手的可行方法及學習資源的分類匯總,機器之心在其基礎上做了增益,希望對讀者有所幫助。

先決條件

機器學習的基礎是數學。數學並非是一個可選可不選的理論方法,而是不可或缺的支柱。如果你是一名計算機工程師,每天使用 UML、ORM、設計模式及其他軟體工程工具/技術,那麼請閉眼一秒鐘,忘掉一切。這並不是說這些概念不重要,絕不是!但是機器學習需要一種不同的方法。如今 Python 如此流行的原因之一是其「原型設計速度」。在機器學習中,一種使用幾行代碼即可建模算法的語言絕對是必要的。

微積分、線性代數、概率論在機器學習幾乎所有算法中不可或缺。如果你的數學背景很紮實,請跳過這一章節。如若不然,那麼重新溫習一下這些重要概念也不錯。考慮到理論的數量,我並不建議大家從大部頭開始。儘管一開始可以用它查詢具體概念,但是初學者先關注簡單的話題比較好。網上有很多好的在線資源(比如 Coursera、可汗學院或優達學城),實用且適合各種背景的人群。但是我建議從提綱之類的簡明書籍上手,其中所有核心概念均被涉及,次要概念可在需要的時候自行查詢。這種方法雖然不夠系統,但卻避免了這樣的缺陷:大量晦澀概念使得沒有紮實理論背景的人望而卻步。

初學者最好先學習下列內容:

概率論

離散型和連續型隨機變量

主要分布(伯努利分布、二項式分布、正態分布、 指數分布、 泊松分布、Beta 和 Gamma 分布)

矩估計和最大似然估計

貝葉斯統計

相關性係數和協方差(Correlation and Covariance)

線性代數

向量和矩陣

矩陣的行列式

特徵向量和特徵值

矩陣分解(如 SVD)

微積分

極限與導數

微分和積分

數值計算與最優化方法

網上有很多免費資源,比如

《概率論入門》,Grinstead、Snell 著(https://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/amsbook.mac.pdf)

《線性代數入門》,Wise、Gallagher 著(http://www.stat.columbia.edu/~liam/teaching/4315-spr06/LinAlg.pdf)

《微積分入門》,Heinbockel 著(http://www.math.odu.edu/~jhh/Volume-1.PDF)

維基百科上也有很多好資源,對方程、定理等進行了清晰易懂的解釋。

機器之心也介紹過許多數學基礎與概念:

基礎入門:深度學習矩陣運算的概念和代碼實現

想了解概率圖模型?你要先理解圖論的基本定義與形式

深度神經網絡中的數學,對你來說會不會太難?

Reddit 熱門話題:如何閱讀並理解論文中的數學內容?

機器學習主要需要的數學基礎就是微積分、線性代數、概率論,我們感覺只需要掌握大學中常見的高數、線性代數、概率論與數理統計三門課程,基本上概念的理解就沒什麼問題了。如果再學一點數值計算和最優化等,我們基本上就能理解機器學習的學習過程推導。

機器學習方法建議(面向初學者)

特徵工程

開始機器學習的第一步是理解如何評估和改進數據集的質量。管理特徵的類別和缺失、歸一化和降維(PCA、ICA、NMF)是大幅提高算法性能的基本技術,而且還有助於研究如何將數據集分割成訓練集和測試集、如何採取交叉驗證來取代傳統的測試方法。

機器之心也曾詳解過特徵工程如 PCA 降維算法的詳細理論與推導,當然我們還介紹了其它有關特徵的概念:

從特徵分解到協方差矩陣:詳細剖析和實現PCA算法

基於TensorFlow理解三大降維技術:PCA、t-SNE 和自編碼器

似乎沒區別,但你混淆過驗證集和測試集嗎?

Numpy:Python 數值計算之王!

使用 Python 時,Numpy 不僅僅是一個庫。它是幾乎所有機器學習實現的基礎,因此了解它的工作原理、關注向量化和廣播(broadcasting)是非常必要的。這些技術可以幫助加速大多數算法的學習過程,利用多線程和 SIMD、MIMD 架構的力量。

官方文檔已經很完整了,不過,我還建議大家看一下以下資源:

《Python 數據科學手冊:數據使用的核心工具》,VanderPlas J. 著

《Python 科學編程入門書》,LangTangen P. H. 著

維度、廣播操作與可視化:如何高效使用TensorFlow

數據可視化

Matplotlib 即使不是純粹的機器學習話題,了解如何可視化數據集也很重要。Matplotlib 可能是最廣泛使用的解決方案:Matplotlib 易用,允許繪製不同種類的圖表。Bokeh 和 Seaborne 提供了有趣的替代方案。不必要徹底了解所有包,但是了解每一個包的優點和弱點還是很有用的,可以幫助你選擇合適的包。

了解 Matplotlib 細節的資源:《掌握 Matplotlib》,McGreggor D. 著

線性回歸

線性回歸是最簡單的模型之一,可以把它作為一個優化問題來研究,該問題可通過最小化均方誤差而得到求解。該方法雖然有效,但是限制了可利用的可能性。我建議還可以把它當作貝葉斯問題,使用之前的可能性展示參數(比如,高斯分布),優化變成了最大似然估計(Maximum Likelihood Estimation,MLE)。即使這看起來更加複雜,但該方法提供了一個可供幾十個其他複雜模型共享的新方法。

Coursera 上介紹貝葉斯統計的課程:

《貝葉斯統計:從概念到數據分析》(https://www.coursera.org/learn/bayesian-statistics/)

《貝葉斯統計:技術與模型》(https://www.coursera.org/learn/mcmc-bayesian-statistics)

以及這兩本書:

《思考貝葉斯》,Downey B. A. 著

《黑客的貝葉斯方法》Davidson-Pilon C. 著

包括線性回歸在內,機器之心曾介紹了一些解決回歸問題的方法(後文提供了 CART 算法進行回歸分析):

初學TensorFlow機器學習:如何實現線性回歸?

回歸、分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R實現)

線性分類

通常情況下,Logistic 回歸是最佳起始點,也是研究資訊理論進而了解信息熵、交叉熵和互信息的好機會。類別交叉熵(Categorical cross-entropy)是深度學習分類中最穩定、使用最廣泛的代價函數,一個簡單的 logistic 回歸可以展示它是如何加速學習過程的(與均方差相比)。另一個重要的話題是正則化(Ridge、Lasso 和 ElasticNet)。很多情況下,人們認為它是一種提高模型準確率的深奧方式,但是它的真實意義是更準確,在具體實例的幫助下變得易於理解。我還建議剛開始的時候,把 logistic 回歸當作一個簡單的神經網絡,可視化(以 2D 實例為例)權重向量在學習過程中的移動軌跡。

我還建議本節應包括超參數網格搜索。網格搜索不在沒有完整了解的情況下嘗試不同的值,而是評估不同的超參數集的性能。因此,工程師可以將注意力集中在可達到最高準確率的組合上。當然還有更加強大的貝葉斯優化方法,即利用先驗知識逼近未知目標函數的後驗分布從而調節超參數的方法。

從頭開始:用Python實現帶隨機梯度下降的Logistic回歸

如何通過牛頓法解決Logistic回歸問題

擬合目標函數後驗分布的調參利器:貝葉斯優化

支持向量機(SVM)

支持向量機提供了不同的分類方法(包括線性和非線性方法)。該算法非常簡單,具備基礎幾何知識的人也可以學會。不過,了解核支持向量機的工作原理非常有用,因為它會在線性方法失敗的時候展示出其真正實力。

一些有用的免費資源:

《支持向量機簡明教程》,Law 著

核函數方法,維基百科詞條

詳解支持向量機SVM:快速可靠的分類算法

詳解支持向量機(附學習資源)

決策樹

決策樹提供了另一種分類和回歸的方法。通常,它們不是解決複雜問題的首選,但它們提供了完全不同的方法,即使是非技術人員也可以很容易理解,該方法還可以在會議或演示中可視化。

教程 | 從頭開始:用Python實現決策樹算法

從決策樹到隨機森林:樹型算法的原理與實現

集成學習一覽

在理解了決策樹的動態特性以後,研究集成訓練樹的集(集成)來提高整體準確率的方法很有用。隨機森林、梯度樹提升和 AdaBoost 都是強大的算法,且複雜度較低。對比簡單的樹和提升方法與 bagging 方法採用的樹的學習過程挺有趣的。Scikit-Learn 提供了最常見的實現方法,但是如果你想更好地駕馭這些方法,我還是建議你在 XGBoost 上多花些時間,XGBoost 是一個既適用於 CPU 又適用於 GPU 的分布式框架,即使在較大的數據集上也能加速學習過程。

從Boosting到Stacking,概覽集成學習的方法與性能

聚類

當開始聚類方法的學習時,我的建議是從高斯混合算法(基於期望最大化/EM)學起。雖然 K-均值聚類要更加簡單易懂(也是必須要學習的),但是高斯混合算法為我們提供了純粹的貝葉斯方法,在其他類似任務中也十分實用。其它必學的算法還有層次聚類(Hierarchical Clustering)、譜聚類(Spectral Clustering)和 DBSCAN。這對你了解基於實例的學習或研究 K-近鄰算法(既適用於有監督又適用於無監督任務)也是有幫助的。譜聚類的一個有用的免費資源是:

《譜聚類教程》,Von Luxburg U 著

聚類算法是無監督學習中的代表,機器之心也曾詳細地介紹過各種聚類方法與實現:

機器理解大數據的秘密:聚類算法深度詳解

綜述分類、聚類和信息提取算法在文本挖掘領域內的應用

如何用Python和機器學習炒股賺錢?

神經網絡入門

神經網絡是深度學習的基礎,你可以在單獨的課程中學習神經網絡。但是,我認為理解感知機、多層感知機以及反向傳播算法的概念也很有幫助。Scikit-Learn 提供了一個實現神經網絡的簡單方法,但是,開始探索 Keras 也是一個好主意,Keras 是一個基於 Tensorflow、Theano 或 CNTK 的高級架構,允許使用最少的努力對神經網絡進行建模和訓練。開始神經網絡學習的一些好資源:

《人工神經網絡基礎》Hassoun M 著

《Keras 深度學習》Gulli A.、 Pal S. 著

目前最好的深度學習書籍可能就是:

《深度學習》,Goodfellow I.、 Bengio Y.、Courville A. 著

最全的DNN概述論文:詳解前饋、卷積和循環神經網絡技術

機器之心GitHub項目:從零開始用TensorFlow搭建卷積神經網絡

深度神經網絡全面概述:從基本概念到實際模型和硬體基礎

訓練的神經網絡不工作?一文帶你跨過這37個坑

TensorFlow從基礎到實戰:一步步教你創建交通標誌分類神經網絡

神經網絡快速入門:什麼是多層感知器和反向傳播?

教程 | 如何用30行JavaScript代碼編寫神經網絡異或運算器

神經網絡調試手冊:從數據集與神經網絡說起

神經網絡基礎:七種網絡單元,四種層連接方式

如何從信號分析角度理解卷積神經網絡的複雜機制?

神經網絡架構演進史:全面回顧從LeNet5到ENet十餘種架構(附論文)

麻省理工解讀神經網絡歷史,三篇論文剖析基礎理論

最後,我們將介紹部分機器之心曾發過的綜述性技術文章或論文,並希望這些文章能對大家全面理解各種方法有所幫助:

自動駕駛計算機視覺研究綜述:難題、數據集與前沿成果

一文幫你發現各種出色的GAN變體

深度強化學習綜述:從AlphaGo背後的力量到學習資源分享

從FPS到RTS,一文概述遊戲人工智慧中的深度學習算法

視覺問答全景概述:從數據集到技術方法

神經風格遷移研究概述:從當前研究到未來方向

從語言學到深度學習NLP,一文概述自然語言處理

遷移學習全面概述:從基本概念到相關研究

一文綜述所有用於推薦系統的深度學習方法

一文讀懂遺傳算法工作原理(附Python實現)

從自編碼器到生成對抗網絡:一文縱覽無監督學習研究現狀

從入門到進階,來試試「人工智慧系列課程之深度強化學習」,點擊「閱讀原文」,立即報名。

相關焦點

  • 關於機器學習,這可能是目前最全面最無痛的入門路徑和資源!
    最近有不少童鞋給李傑克留言,說自己對機器學習很感興趣卻無從下手,想知道我的學習路徑,也希望我可以分享一些適合入門的學習資源給到大家。 雲盤中三份之二資源,是李傑克已經看過並且覺得對於大家有幫助才放進去的,那些對現階段的大家沒有太大幫助的資料我都過濾掉了,畢竟為了看起來全而各種塞大家可能永遠都不會用上的資源沒有任何意義,我想做的是降低大家篩選學習資源的成本。
  • 機器之心2015閱讀計劃
    《1Q84》,村上春樹的超現實愛情長篇小說。輕盈《死生有命,富貴在天》,北大李霖 著,講周易的自然哲學。《書法有法》,孫曉雲圖文並茂告訴你千年不易之筆法。《攻殼機動隊 原畫集》,我想攻殼是所有關於人工智慧的文藝作品中最讓我驚豔,迷戀的了,它所構築的未來景觀於我而言如同一隻玻璃器皿中的玫瑰水母,精緻,華麗,冰冷,荒涼。「生死去來,棚頭傀儡,一線斷時,落落磊磊」是機器之心還是缸中之腦?各種關於機器的哲學命題,妙不可言。
  • 2019 WAIC之機器之心很忙
    圖片右滑更精彩WAIC 開發者日主單元吸引超過 2000 人到場參會,機器之心也為線上觀眾帶來了全程直播,超過 10 萬人同步觀看了本次盛會,機器之心也在第一時間發布了全程報導:《用 NumPy 寫深度模型,用 Julia 可微分編程寫函數,這是 WAIC 開發者日》。
  • 機器之心獨家對話百度 NLP:先解決語義理解,再談機器翻譯取代人類
    為此,機器之心專訪百度自然語言處理部技術負責人吳華、高級總監吳甜,就神經網絡機器翻譯系統的優缺點、如何獲得高質量訓練數據及百度翻譯目前進展展開話題。同時也藉此機會了解百度自然語言處理部及其開展的 NLP 技術研發工作。以下為採訪內容整理,以饗讀者。NMT、SMT 的優與缺機器之心:能請您先介紹一下百度 NLP 部門嗎?
  • 機器之心Pro:開發者請準備,前方有一大波更新正在接近
    1 個月前,我們發布了最新產品:人工智慧領域專業信息及數據平臺「機器之心Pro」。針對以上場景,我們最新上線了「機器之心Pro」的第五個模塊:人工智慧知識庫。人工智慧知識庫-首頁人工智慧知識庫涵蓋三類數據:知識、資源與人物。知識涵蓋:基礎概念、技術方法和技術任務;資源涵蓋:數據集、開發工具、教材、活動及會議和書籍期刊。
  • CDA承接的全球頂級機器學習Scikit-learn 中文社區上線啦!
    Scikit-learn作為機器學習的入門工具庫,深受初學者的喜愛。但是由於官方文檔是英文撰寫,限制了很多機器學習愛好者的學習過程。因此,專業、規範、實時的Scikit-learn中文學習社區,一直以來都是國內學習者所急需。
  • B站學強化學習?港中文周博磊變身up主,中文課程已上線
    機器之心報導機器之心編輯部眾所周知,B 站是一個學習網站。在看完羅翔老師的刑法課之後,是時候探索人工智慧了。新冠疫情還未退散,目前國內很多大學仍然沒有返校開學的計劃,不過留在家中的我們已經可以獲得越來越多的線上學習內容。此前有很多國內外學校已經把自家的 AI 課程搬到了線上。
  • 機器之心年度盤點:2018年重大研究與開源項目
    它們為深度學習開拓了新方向,也為未來提供了更多選擇。在這篇文章中,機器之心從想法到實踐介紹了 2018 年令人矚目的研究工作,它們共同構建了機器學習的當下。我們主要按領域從模型到開源工具展開,其中算法或模型的選擇標準主要是效果和潛力,而開源工具的選擇主要憑藉 GitHub 的收藏量與效果。
  • 面試資源、公共API、多樣化學習路徑,這10個GitHub庫開發者必看
    機器之心選自Medium作者:Simon Holdorf機器之心編譯參與:魔王本文介紹了十個適合軟體工程師的 GitHub 庫。想創建自己的程式語言,或屬於自己的 Docker、Git 嗎?這個庫是你的不錯選擇。2.
  • 機器之心年度獎項Synced Machine Intelligence Awards 2018正式發布
    根據六大獎項對研究實力、技術與產品、市場與行業潛力、運營能力、資本與財務狀況、創新性與實用性、戰略協同性等多項標準的要求,基於機器之心的「人工智慧知識庫和信息平臺」,機器之心最終評選出了 50 家獲獎 AI 企業、30 個獲獎 AI 應用案例、30 個獲獎 AI 產品/解決方案,以及 10 大 AI 資本事件。
  • 如何用免費GPU學習AI算法?這篇算法資源大集錦別錯過
    上一次寫了篇薅GPU百度AI Studio計算資源的文章,收到很多AI算法初學者私信,問我能不能補充一些AI Studio的學習資源。有求必應向來是我的風格,於是我加入了AI Studio和飛槳(PaddlePaddle)開發者QQ群,為大家收集了一些資源,涵蓋了從入門到高階的各種常用算法和代碼。
  • 科學家想用機器學習+電擊實驗,幫你增強記憶力
    安妮編譯自NewScientist量子位出品|公眾號QbitAI被遺忘的鑰匙、一份重要的文件、怎麼也想不起來的密碼、迎面走來的熟人叫什麼名字……這些記憶都被大腦扔到哪了?你抓了抓腦殼,還是一無所獲。你也很容易遺忘嗎?
  • 康耐視為您提供免費的機器視覺學習資源
    康耐視在公司網站上推出了新的免費學習資源,如果您對此感興趣,請訪問 機器視覺 和工業 ID 讀碼器。本文引用地址:http://www.eepw.com.cn/article/112440.htm  新加 探索與學習 的部分 www.cognex.com 讓您可以訪問關於從機器視覺和ID代碼讀取基礎內容到更深入的三維視覺、光學元件和難讀條形碼等所有內容的網絡研討會、講座、視頻、播客、白皮書和書籍等。
  • 機器之心GMIS 2017嘉賓揭秘:人工智慧「標準教科書」作者——Stuart Russell
    由機器之心主辦的全球人工智慧盛會——2017 全球機器智能峰會(GMIS 2017)——將於 5 月 27 日至 28 日在北京 898 創新空間舉行。本次大會將邀請海內外眾多嘉賓及機構,權威、系統地介紹機器智能相關技術的前沿研究,探討如何將技術轉化成產品和應用等問題。
  • 機器之心Pro上線:盯動態、找標的、做調研,AI 信息數據一站全
    機器之心產品繼續上新,我們這次推出的是人工智慧領域專業信息及數據平臺:「機器之心Pro」。人工智慧技術與產業發展速度日新月異,從業者需要持續關注動態、提升自身技能,以在錯綜複雜的變化中,緊跟時代潮流,正確決策,抓住機遇。
  • 思想實驗 | 中文房間:機器能否具有心智?
    1950年,計算機科學之父阿蘭·圖靈(Alan Mathison Turing)在其論文《計算機器與智能》(Computing Machinery and Intelligence)中試圖回答機器能否擁有智能這一問題。有關於何為機器的回答是簡單的,但對何為智能的標準界定則複雜許多。
  • 學習了!谷歌今日上線基於TensorFlow的機器學習速成課程
    谷歌官方描述為機器學習熱愛者的自學指南,且課程資料都是中文書寫,課程視頻都由機器學習技術轉述為中文音頻。這對於中文讀者來說將會有很大的幫助,當然我們也能選擇英文語音以更精確地學習內容。此外,據機器之心了解,這曾是谷歌內部培訓工程師的課程,有近萬名谷歌員工參與並將學到的東西用在產品的優化和增強上課程地址:https://developers.google.cn/machine-learning/crash-course/按照該課程所述,讀者可能需要初級代數知識,如變量與係數、線性方程組和函數曲線等以理解基本的機器學習模型
  • 【新書推薦】《機器學習及R應用》目錄
    編者薦語:  《機器學習及R應用》終於上市啦!不少讀者想知道《機器學習及R應用》的目錄。這裡附上詳細的二、三級目錄清單,讓我們先睹為快!  以下文章來源於計量經濟學及Stata應用,作者愛計量。  昨日推文引起極大反響,不少讀者想知道《機器學習及R應用》的目錄。這裡附上詳細的二、三級目錄,以饗讀者。
  • 《機器之心》是一部科幻警匪電視劇!
    《機器之心》是一部科幻警匪電視劇,由卡爾·厄本丶Michael Ealy等主演。J.J. Abrams掛名製片,《危機邊緣》(Fringe)製片人J.H. Wyman監製,Bad Robot公司出品。儘管約翰對機器人強烈厭惡,但還是被安排了一名機器搭檔--剛剛下線準備投入戰鬥的MX-43型機器戰警。當這位機器同事發現約翰隱藏著某種犯罪證據後,約翰毫不留情地「終結」了他(相關情節參考預告片)。於是實驗室技術員Rudy Lom(Mackenzie Crook飾)給他介紹了一位新的機器同伴:Dorian(Michael Ealy飾)。
  • 搜狗機器翻譯團隊獲得 WMT 2017 中英機器翻譯冠軍
    本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。每年的第三季度都是機器學習相關的頂級學術會議密集召開的時期,今年也不例外。搜狗語音交互技術中心代表搜狗參加了這次含金量極高的比賽,該中心研發的搜狗神經網絡機器翻譯(Sogou Neural Machine Translation)系統在「中文-英文」機器翻譯任務中獲得了冠軍。這個系統採用了哪些新方法、新結構,又為我們提供了哪些新思路?讓我們結合論文聊一聊 Sogou NMT。WMT 是機器翻譯領域的國際頂級評測比賽之一。