本文作者在多年研究在線學習圖景、在不同平臺註冊大量機器學習課程後,收集了目前最好的 5 門機器學習課程。
選機器學習課程怕踩雷?有人幫你選出了top 5優質課

機器學習根植於統計學,正在逐漸成為最有趣、發展最快的計算機科學領域之一。機器學習可應用到無數行業和應用中,使其更加高效和智能。

聊天機器人、垃圾郵件過濾、廣告服務、搜索引擎和欺詐檢測,這些都是機器學習模型在日常生活中的應用實例。機器學習使我們為人類力不能及的事找到模式、創建數學模型。

與涉及探索性數據分析、統計學、通信和可視化技術的數據科學課程不同,機器學習課程主要講授機器學習算法、數學原理,以及如何使用某種編程語言寫算法。

本文介紹了 top 5 機器學習課程:

  • 吳恩達《機器學習》課程:https://www.learndatasci.com/out/coursera-machine-learning/
  • 吳恩達《深度學習專項課程》:https://www.learndatasci.com/out/coursera-deep-learning-specialization/
  • SAEED AGHABOZORGI 主講的 Machine Learning with Python 課程:https://www.learndatasci.com/out/coursera-ibm-machine-learning-python/
  • Advanced Machine Learning 專項課程:https://www.learndatasci.com/out/coursera-advanced-machine-learning-specialization/
  • 哥倫比亞大學的 Machine Learning 課程:https://www.learndatasci.com/out/edx-columbia-machine-learning/

篩選標準

本文介紹的 5 門機器學習課程遵循以下標準:

  • 嚴格專注於機器學習領域。
  • 使用免費開源的編程語言,如 Python、R 或 Octave。
  • 使用免費開源的庫。
  • 包含編程作業和實踐。
  • 解釋算法運行的數學原理。
  • 學員可以自己調節進度,大約每月可以獲取新的課程。
  • 講師有趣、課堂有趣。
  • 在不同網站和論壇上的評分和評價高於平均值。
  • 若想盡快全面地學習機器學習,那麼學習者還應該在在線學習之外看一些相關書籍。作者推薦了以下兩本書籍,這兩本書對作者的學習帶來了很大影響。

書籍

1. An Introduction to Statistical Learning: with Applications in R

免費在線版地址:http://www-bcf.usc.edu/~gareth/ISL/

這本書具備清晰直接的解釋和示例,可以幫助讀者提升對基礎機器學習技術的數學理解。這本書更加偏重理論,但仍然包含一些使用 R 語言的練習和示例。

2. Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

這本書是對上一本書的良好補充,它主要涉及使用 Python 的機器學習應用。這本書搭配以下任意一門課程,可以幫助大家強化編程技能,瞭解如何直接將機器學習應用到項目中。

以下是本文的重頭戲:top 5 機器學習課程。

一、吳恩達《機器學習》課程

這門課適合初學者,其講師和創建者是斯坦福大學教授、谷歌大腦聯合創始人、Coursera 聯合創始人吳恩達。

這門課的作業要求使用開源編程語言 Octave,而不是 Python 或 R。這對於很多人來說有些怪異,但對於新手而言,Octave 是學習機器學習基礎的簡單方式。

整體來看,這門課程的材料翔實,直接由吳恩達授課,詳細解釋了每個算法必需的所有數學知識,還涉及了一些微積分知識和線性代數知識。這門課程基本上是獨立的,不過提前瞭解一些線性代數知識會很有幫助。

  • 課程提供者:吳恩達,斯坦福大學
  • 費用:免費;如需課程證書,則需 79 美元

課程結構:

  • 單變量線性迴歸
  • 線性代數概要
  • 多變量線性迴歸
  • Octave/Matlab 教程
  • Logistic 迴歸
  • 正則化
  • 神經網絡:表徵
  • 神經網絡:學習
  • 使用機器學習的建議
  • 機器學習系統設計
  • 支持向量機
  • 降維
  • 異常檢測
  • 推薦系統
  • 大規模機器學習
  • 應用案例:Photo OCR

該課程持續時間為 11 周。如果可以堅持上完整個課程,你將在大約四個月內對機器學習有一個較好的基本瞭解。

之後,你可以再學習感興趣的高階或專項課程,如深度學習、機器學習工程等。

這門課程對於新手來說無疑是最好的課程。

參考文章:資源 | 吳恩達《機器學習》筆記,哥大研究生獻上

二、吳恩達深度學習專項課程

該課程同樣是吳恩達開設的。這是一個更高級的課程系列,適用於任何對機器學習、深度學習及其原理和應用感興趣的人。

該課程共包括 5 門課,每門課的作業和授課都使用 Python 編程語言和 TensorFlow 神經網絡庫。該課程是吳恩達機器學習課程的良好後續,因為授課風格類似,而且你還可以學習使用 Python 進行機器學習。

  • 課程提供者:吳恩達,deeplearning.ai
  • 費用:免費;如需課程證書,則 49 美元/月

課程結構:

1. 神經網絡和深度學習

  • 深度學習簡介
  • 神經網絡的基本概念
  • 淺層神經網絡
  • 深度神經網絡

2. 改善神經網絡:調參、正則化和優化

  • 深度學習的實踐
  • 優化算法
  • 超參數調整、批歸一化和編程框架

3. 構建機器學習項目

  • 機器學習策略(1)
  • 機器學習策略(2)

4. 卷積神經網絡

  • 卷積神經網絡基礎
  • 深度卷積模型:案例研究
  • 目標檢測
  • 特殊應用:人臉識別和神經風格遷移

5. 序列模型

  • 循環神經網絡
  • 自然語言處理和詞嵌入
  • 序列模型和注意力機制

要想理解該課程中介紹的算法,你應該先熟悉線性代數和機器學習。如果你需要關於學習所需數學知識的建議,可以參閱文末的學習指南(Learning Guide)。

參考文章:

  • 吳恩達 Deeplearning.ai 課程學習全體驗:深度學習必備課程(已獲證書)
  • 入門 | 吳恩達 Deeplearning.ai 全部課程學習心得分享
  • 資源 | 吳恩達 deeplearning.ai 五項課程完整筆記了解一下?
  • 這是一份優美的信息圖,吳恩達點讚的 deeplearning.ai 課程總結

三、用 Python 進行機器學習

這也是一個適合初學者的課程,只關注最基本的機器學習算法。講師、幻燈片動畫和對算法的解釋結合得非常好,能讓你對基本概念有直觀的瞭解。

該課程使用 Python,但對算法背後的數學知識講得較少。通過每個模塊,你將有機會在瀏覽器中下載一個交互式 Jupyter notebook 來實踐你學到的新概念。每個 notebook 會鞏固你的知識,並提供了在真實數據上使用算法的具體說明。

  • 課程提供者:IBM, Cognitive Class
  • 費用:免費;如需課程證書,則 39 美元/月

課程結構:

  • 機器學習導論
  • 迴歸
  • 分類
  • 聚類
  • 推薦系統
  • 期末專題

這門課提供的最大好處之一是為每個算法提供了實用的建議。在講授新算法時,講師會介紹它的工作原理、優缺點以及你應該在什麼樣的情況下使用它。其它課程很少會涉及這些,但這些信息對於初學者理解更廣泛的背景很重要。

四、高階機器學習專項課程

這是關於機器學習的另一個高階課程。如果你想盡可能多地學習機器學習技術,該專項課程就是一個很好的選擇。

這門課程的教學非常好:很精彩,而且簡明扼要。由於這是一門高級課程,因此你需要更多的數學知識。如果你已經參加了一門初級課程,並且複習了線性代數和微積分,這門課將是你補充機器學習其它專業知識的很好選擇。

本課程涵蓋的大部分內容對許多機器學習項目至關重要。

  • 課程提供者:俄羅斯國家研究型高等經濟大學(National Research University Higher School of Economics,HSE)
  • 費用:免費;如需課程證書,則 49 美元/月

課程結構:

1. 深度學習導論

  • 優化簡介
  • 神經網絡簡介
  • 圖像深度學習
  • 無監督表徵學習
  • 序列深度學習
  • 最終項目

2. 如何在數據科學競賽中獲勝:向頂尖 kaggler 學習

  • 介紹和回顧
  • 模型的特徵處理和生成
  • 最終項目說明
  • 探索性數據分析
  • 驗證
  • 數據洩露
  • 度量優化
  • 高級特徵工程 1
  • 超參數優化
  • 高級特徵工程 2
  • 集成
  • 競賽介紹
  • 最終項目

3. 機器學習貝葉斯方法

  • 貝葉斯方法和共軛先驗簡介
  • 期望最大化算法
  • 變分推斷和隱含狄利克雷分佈(LDA)
  • 馬爾科夫鏈蒙特卡洛
  • 變分自編碼器
  • 高斯過程和貝葉斯優化
  • 最終項目

4. 實用強化學習

  • 簡介
  • 強化學習核心:動態編程
  • 無模型方法
  • 基於近似值的方法
  • 基於策略的方法
  • 探索

5. 計算機視覺中的深度學習

  • 圖像處理和計算機視覺簡介
  • 視覺識別的卷積特徵
  • 目標檢測
  • 目標跟蹤和動作識別
  • 圖像分割與合成

6. 自然語言處理

  • 概念介紹和文本分類
  • 語言建模和序列標註
  • 語義向量空間模型
  • 序列到序列任務
  • 對話系統

7. 用機器學習應對大型強子對撞機的挑戰

  • 面向數據科學家的粒子物理學導論
  • 粒子鑑別
  • 在稀有衰變中探索新物理學
  • 在新 CERN 實驗中用機器學習尋找暗物質暗示
  • 檢測器優化

完成該系列課程大概需要 8-10 個月的時間,所以如果你從今天開始學習,在近一年的時間裡,你將學到大量關於機器學習以及前沿應用的知識。

在這幾個月裡,你還將創建幾個真正的項目。這些項目將極大豐富你的簡歷,讓你的 GitHub 更吸引人。

五、機器學習

這是數學基礎要求最高的一門高級課程。你的線性代數、微積分、概率、編程基礎都需要非常牢固。該課程的有趣編程作業可以使用 Python 或 Octave 完成,但不提供關於這兩種語言的課程。

該課程最大的亮點在於其涵蓋了機器學習的概率方法。如果你之前讀過《Machine Learning: A Probabilistic Perspective》等教科書,那麼這門課程將成為良好的補充。

  • 課程提供者:哥倫比亞大學
  • 費用:免費;如需課程證書,則需 300 美元

課程結構:

  • 最大似然估計、線性迴歸、最小二乘法
  • 嶺迴歸、偏差-方差、貝葉斯法則、最大後驗概率推理
  • 最近鄰分類、貝葉斯分類器、線性分類器、感知機
  • Logistic 迴歸、拉普拉斯近似、核方法、高斯過程
  • 最大間隔、支持向量機(SVM)、樹、隨機森林、Boosting 算法
  • 聚類、K-均值、EM 算法、缺失數據
  • 混合高斯過程、矩陣分解
  • 非負矩陣分解、隱因子模型、主成分分析及其變體
  • 馬爾科夫模型、隱馬爾科夫模型
  • 連續狀態空間模型、關聯分析
  • 模型選擇、未來走向

許多針對初學者的課程可能已經介紹過上述很多主題,但這個課程的數學卻是實打實的。如果你已經學過這些,想在數學上更進一步,並且想通過做編程作業推導出一些算法,那麼這個課程值得一試。

學習指南

首先介紹一下多數機器學習課程需要的知識儲備。

課程知識儲備

高階課程需要以下知識儲備:

  • 線性代數
  • 概率
  • 微積分
  • 編程

這些是理解機器學習內在工作原理的必備知識。許多初學者課程通常要求至少有一些編程基礎,並熟悉線性代數的基礎知識,如向量、矩陣及其符號。

本文提及的第一份課程——吳恩達的《機器學習》複習了大部分所需數學知識,但如果你之前沒有學過線性代數,那麼同時學習機器學習和線性代數可能會有點困難。

如果你需要溫習數學基礎知識,請參考以下建議:

推薦學習 Python,因為多數機器學習課程用的編程語言都是 Python。即使你學的是吳恩達的《機器學習》課程(該課程用 Octave),你也應該抽時間學一下 Python,因為早晚都得用到。dataquest.io 也是一份極好的 Python 資源,其交互式瀏覽器環境中有很多免費的 Python 課程。

這些知識儲備有助於初步瞭解算法的工作原理。

基礎算法

以下是大家需要熟悉和練習使用的基礎算法集合:

  • 線性迴歸
  • Logistic 迴歸
  • k-均值聚類
  • k-最近鄰
  • 支持向量機(SVM)
  • 決策樹
  • 隨機森林
  • 樸素貝葉斯

這些算法是必須瞭解的,當然還有很多其他算法。上述課程介紹了這些算法及其變體。理解這些技術的原理以及何時使用它們對處理新項目非常重要。

除了這些基礎算法之外,還有一些比較高級的技術需要學習:

  • 集成
  • Boosting
  • 降維
  • 強化學習
  • 神經網絡和深度學習

這只是開始,這些算法通常是最有趣的機器學習解決方案中會使用到的,它們對你的工具箱來說也是個有效的補充。

與基礎技術一樣,每學習一項新工具,你就要直接將其應用到項目中,以加深理解、融會貫通。

解決項目

在線學習機器學習很有難度,當然回報也很大。不過你要記住,只看講課視頻、做測驗並不能證明你真的在學習教材。如果你創建一個與課程使用數據和目標皆不同的項目,那麼你會學到更多。

在你剛開始學習機器學習基礎知識時,你就應該尋找一些有趣的數據,以便實踐新技能。上述課程將使學習者瞭解何時應用算法,因此在自己的項目中應用機器學習算法是一項不錯的實踐。

通過試錯、探索和反饋,你會發現如何使用不同的技術、如何衡量結果、如何分類或預測。關於 ML 項目,這裡有一份示例列表,參見:https://github.com/NirantK/awesome-project-ideas。

解決項目會幫助你更好、更高級地理解機器學習。如果你開始瞭解更高級的概念(如深度學習),那麼將有無數種技術和方法去理解和使用。

閱讀新研究

機器學習是一個快速發展的領域,每天都有新技術和應用出現。你掌握了機器學習基礎知識之後,可以閱讀自己感興趣的研究論文。

有一些網站可以即時獲取感興趣領域的新論文。比如谷歌學者,輸入關鍵詞「machine learning」和「twitter」,或其他感興趣的主題,點擊「Create Alert」,即可通過電子郵件獲取相關新論文通知。

養成每週閱讀提醒郵件的習慣,瀏覽論文以確定是否有閱讀的必要,然後深入理解某項研究的具體內容。如果某些研究與你正在做的項目相關,你可以看看是否可以將這些技術應用到自己的問題上。

結語

機器學習是一個非常有趣的領域,值得你去學習和體驗,希望在這裡你可以找到一個適合自己的課程。

機器學習是數據科學的一個重要組成部分,如果你對統計、可視化、數據分析等方面感興趣的話,可以參考關於頂級數據科學課程推薦的文章:https://www.learndatasci.com / best-data-science-online-courses /。

相關推薦

推薦中...