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