1. 程式人生 > >GitHub超全機器學習工程師成長路線圖,開源兩日收獲3700+Star!【轉】

GitHub超全機器學習工程師成長路線圖,開源兩日收獲3700+Star!【轉】

參數優化 及其 公式 pre 大量 toc exp geb 共享文檔

作者 | 琥珀

出品 | AI科技大本營(ID:rgznai100)

近日,一個在 GitHub 上開源即收獲了 3700+ Star 的項目,引起了營長的註意。據介紹,該項目以 TensorFlow 和 Scikit-learn 的機器學習框架的基礎庫為例,詳細介紹了如何成為一名機器學習工程師的成長路徑。

該項目的作者還是一位來自意大利的 IT 工程師,名叫 Giacomo Ciarlini,十分帥氣的有沒有?

作者首先強烈推薦了《Scikit-Learn 與 TensorFlow 機器學習實用指南》一書。之外,他還上傳了全球頂尖大學和開源組織的學習資源,並收集了理論和示例,以及對選擇最佳資源的建議。

內容主要分為四大部分:

一、先決條件

  • Python

  • Jupyter Notebook

  • 需要掌握的基本數學知識

  • 機器學習全貌

二、使如何使用 Scikit-Learn 進行機器學習

  • 為什麽是 Scikit-Learn?

  • 端到端機器學習項目

  • 線性回歸

  • 分類

  • 訓練模型

  • 支持向量機

  • 決策樹

  • 合奏學習和隨機森林

  • 無監督學習

  • 結語和期待

三、通過 TensorFlow 訓練的神經網絡

  • 為何選擇 TensorFlow?

  • 使用 TensorFlow

  • ANN - 人工神經網絡

  • CNN - 卷積神經網絡

  • RNN - 遞歸神經網絡

  • 訓練網絡:最佳實踐

  • 自動編碼

  • 強化學習

四、工具

  • 機器學習項目

  • 數據科學工具

  • 博客 / YouTube 頻道 / 網站

每個標簽下,作者都有詳細的解釋並給出了實戰操作的資源,實乃良心之作!下面,就由營長來詳細介紹下這個項目裏有哪些值得一看的資源(並附上部分教程鏈接)。

一、先決條件

  • Python

基礎知識:https://pythonprogramming.net/introduction-learn-python-3-tutorials/

作者還建議,除了對 Python 熟悉掌握外,還可以了解下 Numpy,它是數學運算的重要模塊,可以有助於你在後面 Python 環境中導入 Tensor 數據類型。

Python3 安裝地址:https://realpython.com/installing-python/

PyCharm Community Edition(一個用於 Python 開發的完整 IDE,為實驗設置一個新的 Python 虛擬環境)

安裝地址:https://www.jetbrains.com/pycharm/download/#section=windows

  • Jupyter Notebook

是一個開源的 Web 應用程序,幫助用戶創建和共享文檔,包括 live code,方程,可視化,敘述文本。例如,數據清洗、數值模擬、統計建模、數據可視化、機器學習等。

  • 需要掌握的基本數學知識

在作者看來,數學是機器學習背後的重要基礎。但重要的是,掌握主要概念並認識到這些數學方法的應用領域和局限性。

他給出了三個課程鏈接,分別是:

線性代數:https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/

概率基礎和統計:https://www.edx.org/course/introduction-to-probability-0

其他數學資源:https://explained.ai/matrix-calculus/index.html#sec4.5

  • 機器學習全貌

最後,還要通過一篇科普讀物,了解整個機器學習全貌:https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch01.html

二、如何使用 Scikit-Learn 進行機器學習?

  • 安裝 Scikit-Learn

python pip install -U scikit-learn

如果安裝時遇到一些問題,可能是你更新到最新版本的 pip,所以在同一個文件夾內運行:

python -m pip install --upgrade pip
  • 為什麽是 Scikit-Learn?

Scikit-Learn 是機器學習任務中最完整、最成熟,且記錄完整的庫之一。它開箱即用,具有強大而先進的模型。

  • 端到端機器學習項目

Kaggle,作為機器學習和通用數據科學項目的首選平臺,它提供了大量免費數據集,以及有趣的挑戰和 ML 模型實驗。

  • 線性回歸

線性回歸是最簡單的機器學習形式,也是模型訓練的起點。

可以參看吳恩達的理論課程:https://www.youtube.com/watch?v=W46UTQ_JDPk&list=PLoR5VjrKytrCv-Vxnhp5UyS1UjZsXP0Kj&index=2

  • 分類

如果想要從不同的可能性中預測結果,分類則是最重要的機器學習任務之一。最簡單的情況是二元分類問題。

  • 訓練模型

作者列舉了 ML 任務中訓練模型的一些技術,在 Google Crash 教程中可以找到:

梯度下降:https://developers.google.com/machine-learning/crash-course/reducing-loss/gradient-descent

學習率:https://developers.google.com/machine-learning/crash-course/reducing-loss/learning-rate

SGD:https://developers.google.com/machine-learning/crash-course/reducing-loss/stochastic-gradient-descent

正則化:https://www.youtube.com/watch?v=Q81RR3yKn30

  • 支持向量機

是創建 ML 模型的另一種經典算法。

除了理論解釋外,還有更多實戰策略:

https://www.youtube.com/watch?v=g8D5YL6cOSE

  • 決策樹

  • 集成學習和隨機森林

集成學習(Ensemble Learning)的思路是利用了幾款 ML 模型的所有不同特征、優劣勢,以期得到最有可能性的預測結果。

集成學習基礎知識:

https://www.youtube.com/watch?v=9VmKYwX_U7s

隨機森林最經典實踐:

https://www.youtube.com/watch?v=3kYujfDgmNk

  • 無監督學習

涵蓋了無監督學習的介紹、解釋,以及與監督學習、強化學習之間的差別。

關於涉及的兩個重要技術:關聯規則(Association Rules)和聚類,作者分別提供了示例和教程。

三、通過 TensorFlow 訓練的神經網絡

在本節中,作者主力推薦斯坦福大學深度學習課程以及其他網絡教程,幫助學習者快速了解這些內容。其中包括 ANN、CNN、RNN 等不同種類的機器學習模型。實際上,作者花了很長時間去理解神經網絡的理論和應用,包括閱讀博客、官網論壇、學習路徑。

他給出了“三步走”的建議:

  1. 通過斯坦福大學教程了解神經網絡的主要概念,不要過多擔心一些數學解釋,而要關註什麽和為什麽;

  2. 使用理論 + 教程 + 示例(如 RNN 理論 + RNN 教程 + RNN 示例),每次只深度探討一個主題;

  3. 每探討完一個主題,就回溯一遍斯坦福大學的課程。這種方式將幫助你完全理解所有公式,並將課程中提到的 “數學” 相關知識聯系起來,觸類旁通。

作者表示,以上這種方式可根據需要重復多次,然後在你的頭腦中構建一個良好的通用模型。

斯坦福大學課程 PPT 地址:http://cs231n.stanford.edu/slides/2018/

  • 為何選擇 TensorFlow?

目前,TensorFlow 已經企業裏實現機器學習算法的事實標準。

在安裝 TensorFlow 庫之前,你只需在 Python 安裝文件夾中打開一個終端並運行此命令:

python pip install tensorflow
  • ANN - 人工神經網絡
  • CNN - 卷積神經網絡

  • RNN - 遞歸神經網絡

  • 訓練網絡:最佳實踐

  • 自動編碼

  • 強化學習

以上細節就不一一細講了。

四、其他資源

除了上述內容之外,作者還收集了大量文章、網絡應用程序、最佳實踐、項目和存儲庫。

  • 機器學習項目

  • 工具

  • YouTube 頻道

  • 博客

以及,其他值得一看的網站

作者最後表示,將在接下來的時間裏對不同的主題進行擴充,包括:無監督學習、機器學習心態框架(如何像數據科學家一樣思考)、使用 Pandas 進行數據處理和準備、特征選擇、特色工程、擴展參數優化部分、Keras 庫、TensorFlow 2.0、如何在 AWS、Azure 上部署模型等。

GitHub超全機器學習工程師成長路線圖,開源兩日收獲3700+Star!【轉】