吳恩達《Machine Learning》Jupyter Notebook 版筆記釋出!

红色石头發表於2019-12-15

在我很早之前寫過的文章《機器學習如何入門》中,就首推過吳恩達在 Coursera 上開設的《Machine Learning》課程。這門課最大的特點就是基本沒有複雜的數學理論和公式推導,非常適合入門!

這門課是釋出在 Coursera 上的,很多讀者容易把它與吳恩達的另一門課 CS229 混淆。其實,今天講的 Coursera 上的《Machine Learning》更加簡單。

其課程地址為:

https://www.coursera.org/learn/machine-learning

關於這門課的官方介紹是:本課程將廣泛介紹機器學習、資料探勘和統計模式識別。相關主題包括:(i) 監督式學習(引數和非引數演算法、支援向量機、核函式和神經網路)。(ii) 無監督學習(叢集、降維、推薦系統和深度學習)。(iii) 機器學習例項(偏見/方差理論;機器學習和AI領域的創新)。課程將引用很多案例和應用,您還需要學習如何在不同領域應用學習演算法,例如智慧機器人(感知和控制)、文字理解(網路搜尋和垃圾郵件過濾)、計算機視覺、醫學資訊學、音訊、資料庫挖掘等領域。

這門課基本涵蓋了機器學習的主要知識點,例如:線性迴歸、邏輯迴歸、支援向量機、神經網路、K-Means、異常檢測等等。而且課程中沒有複雜的公式推導和理論分析。Ng 的目的是讓機器學習初學者能夠快速對整個機器學習知識點有比較整體的認識,便於快速入門。

我曾經整理了一份該門課的思維導圖:

如果有讀者想要看這份思維導圖的清晰版(包括原 .xmind 檔案),下面是下載連結:

https://pan.baidu.com/s/16065BpNAP7JEx_PpFHLSOw

提取碼:xcmi

好了,迴歸正題!這門課的筆記網上有很多,但今天推薦一份不錯的全面的筆記。該筆記的特點是所有內容都是基於 Jupyter Notebook 寫的,集圖片、公式、程式碼、練習題於一體,非常方便使用!

下面來詳細看一下!

這份筆記的作者是 Halfrost-Field 冰霜之地,筆記釋出地址為:

https://github.com/halfrost/Halfrost-Field

所屬於 Machine Learning 一欄。

https://pic3.zhimg.com/80/v2-49c655dd959bddd8103635f26eee97ce_hd.jpg

筆記包含了課程 11 周完整內容,每一週單獨對應一個 Jupyter Botebook 檔案。

下面舉幾個代表看一下!

1. 支援向量機(SVM)

開啟 Support_Vector_Machines.ipynb檔案,邏輯迴歸損失函式的公式推導:

高斯核函式的視覺化理解:

還有作者對 SVM 重要引數的歸納總結:

筆記內容結合了吳恩達的課件,歸納的比較到位!

每一份筆記的最後,還配備相應的習題:

2. 神經網路學習

開啟 Neural_Networks_Learning.ipynb 檔案,Backpropagation Algorithm 反向傳播演算法的推導:

反向傳播演算法實現:

function g = sigmoid(z)
    g = 1.0 ./ (1.0 + exp(-z));
end

function g = sigmoidGradient(z)
    g = sigmoid(z) .* (1 - sigmoid(z));
end

delta3 = a3 - Y;

Theta2_grad = 1 / m * delta3' * [ones(m, 1), a2] + ...
  lambda / m * [zeros(K, 1), Theta2(:, 2:end)]; # 正規化部分

delta2 = (delta3 * Theta2 .* sigmoidGradient([ones(m, 1), z2]));
delta2 = delta2(:, 2:end); # 反向計算多一個偏移引數誤差,除去

Theta1_grad = 1 / m * delta2' * [ones(m, 1), a1] + ...
  lambda / m * [zeros(H, 1), Theta1(:, 2:end)]; # 正規化部分

筆記內容非常詳細,讀者可在原筆記中檢視。

附加資源:

這門課配套相應的練習題。Github 上已經有人把作業整理成為 Python 的形式了。有 .py 和 .ipynb 兩種格式。

https://github.com/nsoojin/coursera-ml-py

https://github.com/kaleko/CourseraML

最後,為了節省大家下載時間,我已經把這份筆記的所有 Jupyter Notebook 下載下來並打包好了。獲取方式如下:

  1. 掃描下方二維碼並關注<p>
  2. 公眾號後臺回覆關鍵詞:NGjupyter

相關文章