吳恩達《Machine Learning》Jupyter Notebook 版筆記發布!圖解、公式、習題都有了

  • 2020 年 2 月 16 日
  • 筆記

這門課是發布在 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 一欄。

筆記包含了課程 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