吳恩達老師的機器學習和深度學習筆記更新了!(附PDF下載)

 2020-05-16 08:31:23.0

今天,我把吳恩達機器學習和深度學習課程筆記都更新了,並提供下載,這兩本筆記非常適合機器學習和深度學習入門。(作者:黃海廣)

0.導語

我和同學將吳恩達老師機器學習和深度學習課程筆記做成了打印版,放在github上,下載後可以打印。筆記基於課程視頻和字幕製作。感謝吳恩達老師爲廣大愛好者提供如此實用的教程!

2018-4-28 公佈了深度學習筆記的word和markdown文件!

目前僅在github渠道,累計下載超過了100萬次!

本次更新:很多同學說看不懂公式,我增加了數學基礎作爲附件放在筆記裏,供查閱。

筆記可以作爲大學本科、碩士、博士的輔助教材。請不要用於商業用途。

如果需要引用這個Repo:

機器學習筆記引用格式:

fengdu78, Coursera-ML-AndrewNg-Notes, (2018), GitHub repository, https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

深度學習筆記引用格式:

fengdu78, deeplearning_ai_books,(2018), GitHub repository, https://github.com/fengdu78/deeplearning_ai_books

同學們可以自由打印。機器學習筆記pdf一共336頁,深度筆記pdf一共781頁,建議去網上找打印店(5分錢雙面的很多)。

Github 地址:

鏈接:yun.baidu.com/s/1nhvxDc 提取碼:hxbc


筆記打印效果圖(現在比這個還厚了,希望有心理準備)
打印後的效果圖https://www.zhihu.com/video/1240002906558341120

1.吳恩達老師的機器學習課程個人筆記

吳恩達老師的機器學習課程個人筆記、翻譯的字幕(含視頻)、復現的 python 代碼等,同時筆記的 word 和 markdown 文件也開源了。

原課程的作業代碼是 octave 的,現在幾乎用不到了,我用 Python 復現了課程代碼,並且公開了筆記的 word 和 markdown 版本。

筆記pdf一共336頁。

2014 年 12 月時,我發動幾位博士來一起翻譯《吳恩達機器學習》視頻字幕,整理和翻譯了大部分視頻,並把視頻和中英文字幕壓制到 mkv 文件中去。(目前該視頻字幕已經無償送給網易雲課堂:吳恩達機器學習課程。)

此外,GitHub 裏有離線視頻下載,中英文字幕的。github 地址(標星 16k+ ):

github.com/fengdu78/Cou


筆記目錄

第1周

1、 引言(Introduction)

1.1 歡迎

1.2 機器學習是什麼?

1.3 監督學習

1.4 無監督學習

2、 單變量線性迴歸(Linear Regression with One Variable)

2.1 模型表示

2.2 代價函數

2.3 代價函數的直觀理解I

2.4 代價函數的直觀理解II

2.5 梯度下降

2.6 梯度下降的直觀理解

2.7 梯度下降的線性迴歸

2.8 接下來的內容

3、 線性代數回顧(Linear Algebra Review)

3.1 矩陣和向量

3.2 加法和標量乘法

3.3 矩陣向量乘法

3.4 矩陣乘法

3.5 矩陣乘法的性質

3.6 逆、轉置


第2周

4、 多變量線性迴歸(Linear Regression with Multiple Variables)

4.1 多維特徵

4.2 多變量梯度下降

4.3 梯度下降法實踐1-特徵縮放

4.4 梯度下降法實踐2-學習率

4.5 特徵和多項式迴歸

4.6 正規方程

4.7 正規方程及不可逆性(選修)

5、 Octave教程(Octave Tutorial)

5.1 基本操作

5.2 移動數據

5.3 計算數據

5.4 繪圖數據

5.5 控制語句:for,while,if語句

5.6 向量化

5.7 工作和提交的編程練習


第3周

6、 邏輯迴歸(Logistic Regression)

6.1 分類問題

6.2 假說表示

6.3 判定邊界

6.4 代價函數

6.5 簡化的成本函數和梯度下降

6.6 高級優化

6.7 多類別分類:一對多

7、 正則化(Regularization)

7.1 過擬合的問題

7.2 代價函數

7.3 正則化線性迴歸

7.4 正則化的邏輯迴歸模型


第4周

8、 神經網絡:表述(Neural Networks: Representation)

8.1 非線性假設

8.2 神經元和大腦

8.3 模型表示1

8.4 模型表示2

8.5 特徵和直觀理解1

8.6 樣本和直觀理解II

8.7 多類分類

第5周

9、 神經網絡的學習(Neural Networks: Learning)

9.1 代價函數

9.2 反向傳播算法

9.3 反向傳播算法的直觀理解

9.4 實現注意:展開參數

9.5 梯度檢驗

9.6 隨機初始化

9.7 綜合起來

9.8 自主駕駛


第6周

10、 應用機器學習的建議(Advice for Applying Machine Learning)

10.1 決定下一步做什麼

10.2 評估一個假設

10.3 模型選擇和交叉驗證集

10.4 診斷偏差和方差

10.5 正則化和偏差/方差

10.6 學習曲線

10.7 決定下一步做什麼

11、 機器學習系統的設計(Machine Learning System Design)

11.1 首先要做什麼

11.2 誤差分析

11.3 類偏斜的誤差度量

11.4 查準率和查全率之間的權衡

11.5 機器學習的數據


第7周

12、 支持向量機(Support Vector Machines)

12.1 優化目標

12.2 大邊界的直觀理解

12.3大邊界分類背後的數學(選修)

12.4 核函數1

12.5 核函數2

12.6 使用支持向量機


第8周

13、 聚類(Clustering)

13.1 無監督學習:簡介

13.2 K-均值算法

13.3 優化目標

13.4 隨機初始化

13.5 選擇聚類數

14、 降維(Dimensionality Reduction)

14.1 動機一:數據壓縮

14.2 動機二:數據可視化

14.3 主成分分析問題

14.4 主成分分析算法

14.5 選擇主成分的數量

14.6 重建的壓縮表示

14.7 主成分分析法的應用建議


第9周

15、 異常檢測(Anomaly Detection)

15.1 問題的動機

15.2 高斯分佈

15.3 算法

15.4 開發和評價一個異常檢測系統

15.5 異常檢測與監督學習對比

15.6 選擇特徵

15.7 多元高斯分佈(選修)

15.8 使用多元高斯分佈進行異常檢測(選修)

16、 推薦系統(Recommender Systems)

16.1 問題形式化

16.2 基於內容的推薦系統

16.3 協同過濾

16.4 協同過濾算法

16.5 向量化:低秩矩陣分解

16.6 推行工作上的細節:均值歸一化


第10周

17、 大規模機器學習(Large Scale Machine Learning)

17.1 大型數據集的學習

17.2 隨機梯度下降法

17.3 小批量梯度下降

17.4 隨機梯度下降收斂

17.5 在線學習

17.6 映射化簡和數據並行

18、 應用實例:圖片文字識別(Application Example: Photo OCR)

18.1 問題描述和流程圖

18.2 滑動窗口

18.3 獲取大量數據和人工數據

18.4 上限分析:哪部分管道的接下去做

19、 總結(Conclusion)

19.1 總結和致謝


附件

CS229 機器學習課程複習材料-線性代數

1. 基礎概念和符號

2. 矩陣乘法

3 運算和屬性

4.矩陣微積分

CS229 機器學習課程複習材料-概率論

1. 概率的基本要素

2. 隨機變量

3. 兩個隨機變量

4. 多個隨機變量

5. 其他資源


機器學習的數學基礎(國內教材)

高等數學

線性代數

概率論和數理統計

2.吳恩達老師的深度學習課程筆記及資源

2017 年 8 月,吳恩達老師推出了深度學習課(DeepLearning.ai),這門課是陸續推出的,我組織了很多同學來一起編寫,最後由整理成 word 和 markdown 文件,此外,我對 DeepLearning.ai 的課後測試題進行了翻譯,建議初學者學習。所有題目都翻譯完畢,適合英文不好的同學學習。

筆記pdf一共781頁。

筆記 pdf(word、markdown)、測試題、離線視頻都放到了 GitHub 上,收穫 10.5k+star,並提供下載:

github.com/fengdu78/dee


筆記目錄


第一門課神經網絡和深度學習(Neural Networks and Deep Learning)

第一週:深度學習引言(Introduction to Deep Learning)

1.1 歡迎(Welcome)

1.2 什麼是神經網絡?(What is a Neural Network)

1.3 神經網絡的監督學習(Supervised Learning with Neural Networks)

1.4 爲什麼深度學習會興起?(Why is Deep Learning taking off?)

1.5 關於這門課(About this Course)

1.6 課程資源(Course Resources)


第二週:神經網絡的編程基礎(Basics of Neural Network programming)

2.1 二分類(Binary Classification)

2.2 邏輯迴歸(Logistic Regression)

2.3 邏輯迴歸的代價函數(Logistic Regression Cost Function)

2.4 梯度下降法(Gradient Descent)

2.5 導數(Derivatives)

2.6 更多的導數例子(More Derivative Examples)

2.7 計算圖(Computation Graph)

2.8 使用計算圖求導數(Derivatives with a Computation Graph)

2.9 邏輯迴歸中的梯度下降(Logistic Regression Gradient Descent)

2.10 m 個樣本的梯度下降(Gradient Descent on m Examples)

2.11 向量化(Vectorization)

2.12 向量化的更多例子(More Examples of Vectorization)

2.13 向量化邏輯迴歸(Vectorizing Logistic Regression)

2.14 向量化 logistic 迴歸的梯度輸出(VectorizingLogistic Regression's Gradient)

2.15 Python 中的廣播(Broadcasting in Python)

2.16 關於 python _ numpy 向量的說明(A note on python or numpy vectors)參考視頻:

2.17 Jupyter/iPythonNotebooks快速入門(Quick tour of Jupyter/iPython Notebooks)

2.18 (選修)logistic 損失函數的解釋(Explanationof logistic regression cost function)


第三週:淺層神經網絡(Shallow neural networks)

3.1 神經網絡概述(Neural Network Overview)

3.2 神經網絡的表示(Neural Network Representation)

3.3 計算一個神經網絡的輸出(Computing a Neural Network's output)

3.4 多樣本向量化(Vectorizing across multiple examples)

3.5 向量化實現的解釋(Justification for vectorized implementation)

3.6 激活函數(Activation functions)

3.7 爲什麼需要非線性激活函數?(why need a nonlinear activation function?)

3.8 激活函數的導數(Derivatives of activation functions)

3.9 神經網絡的梯度下降(Gradient descent for neural networks)

3.10(選修)直觀理解反向傳播(Backpropagation intuition)

3.11 隨機初始化(Random+Initialization)


第四周:深層神經網絡(Deep Neural Networks)

4.1 深層神經網絡(Deep L-layer neural network)

4.2 前向傳播和反向傳播(Forward and backward propagation)

4.3 深層網絡中的前向傳播(Forward propagation in a Deep Network)

4.4 覈對矩陣的維數(Getting your matrix dimensions right)

4.5 爲什麼使用深層表示?(Why deep representations?)

4.6 搭建神經網絡塊(Building blocks of deep neural networks)

4.7 參數VS超參數(Parameters vsHyperparameters)

4.8 深度學習和大腦的關聯性(What does this have to do with the brain?)


第二門課改善深層神經網絡:超參數調試、正則化以及優化(Improving Deep Neural Networks:Hyperparameter tuning,Regularization and Optimization)

第一週:深度學習的實踐層面(Practical aspects of Deep Learning)

1.1 訓練,驗證,測試集(Train / Dev / Test sets)

1.2 偏差,方差(Bias /Variance)

1.3 機器學習基礎(Basic Recipe for Machine Learning)

1.4 正則化(Regularization)

1.5 爲什麼正則化有利於預防過擬合呢?(Why regularization reduces overfitting?)

1.6 dropout 正則化(Dropout Regularization)

1.7 理解 dropout(UnderstandingDropout)

1.8 其他正則化方法(Other regularization methods)

1.9 歸一化輸入(Normalizing inputs)

1.10 梯度消失/梯度爆炸(Vanishing /Exploding gradients)

1.11 神經網絡的權重初始化(Weight Initialization for Deep Networks)

1.12 梯度的數值逼近(Numerical approximation of gradients)

1.13 梯度檢驗(Gradient checking)

1.14 梯度檢驗應用的注意事項(Gradient Checking Implementation Notes)


第二週:優化算法 (Optimization algorithms)

2.1 Mini-batch 梯度下降(Mini-batch gradient descent)

2.2 理解mini-batch梯度下降法(Understandingmini-batch gradient descent)

2.3 指數加權平均數(Exponentially weighted averages)

2.4 理解指數加權平均數(Understanding exponentially weighted averages)

2.5 指數加權平均的偏差修正(Bias correction in exponentially weighted averages)

2.6 動量梯度下降法(Gradient descent with Momentum)

2.7 RMSprop

2.8 Adam 優化算法(Adam optimization algorithm)

2.9 學習率衰減(Learning rate decay)

2.10 局部最優的問題(The problem of local optima)


第三週超參數調試、Batch正則化和程序框架(Hyperparametertuning)

3.1 調試處理(Tuning process)

3.2 爲超參數選擇合適的範圍(Using an appropriate scale to pick hyperparameters)

3.3 超參數調試實踐:Pandas VS Caviar(Hyperparameters tuning in practice: Pandas vs. Caviar)

3.4 歸一化網絡的激活函數(Normalizing activations in a network)

3.5 將 Batch Norm 擬合進神經網絡(FittingBatch Norm into a neural network)

3.6 Batch Norm 爲什麼奏效?(Why does Batch Norm work?)

3.7 測試時的 Batch Norm(Batch Normat test time)

3.8 Softmax 迴歸(Softmax regression)

3.9 訓練一個 Softmax 分類器(Traininga Softmax classifier)

3.10 深度學習框架(Deep Learning frameworks)

3.11 TensorFlow


第三門課結構化機器學習項目(Structuring Machine Learning Projects)

第一週機器學習(ML)策略(1)(ML strategy(1))

1.1 爲什麼是ML策略?(Why ML Strategy?)

1.2 正交化(Orthogonalization)

1.3 單一數字評估指標(Single number evaluation metric)

1.4 滿足和優化指標(Satisficing and optimizing metrics)

1.5 訓練/開發/測試集劃分(Train/dev/test distributions)

1.6 開發集和測試集的大小(Size of dev and test sets)

1.7 什麼時候該改變開發/測試集和指標?(When to changedev/test sets and metrics)

1.8 爲什麼是人的表現?(Why human-level performance?)

1.9 可避免偏差(Avoidable bias)

1.10 理解人的表現(Understanding human-level performance)

1.11 超過人的表現(Surpassing human- level performance)

1.12 改善你的模型的表現(Improving your model performance)


第二週:機器學習策略(2)(ML Strategy (2))

2.1 進行誤差分析(Carrying out error analysis)

2.2 清除標註錯誤的數據(Cleaning up Incorrectly labeled data)

2.3 快速搭建你的第一個系統,並進行迭代(Build your first system quickly, then iterate)

2.4 使用來自不同分佈的數據進行訓練和測試(Training and testing on different distributions)

2.5 數據分佈不匹配時的偏差與方差的分析(Bias and Variance with mismatched data distributions)

2.6 處理數據不匹配問題(Addressing data mismatch)

2.7 遷移學習(Transfer learning)

2.8 多任務學習(Multi-task learning)

2.9 什麼是端到端的深度學習?(What is end-to-end deep learning?)

2.10 是否要使用端到端的深度學習?(Whether to use end-to-end learning?)


第四門課卷積神經網絡(Convolutional Neural Networks)

第一週卷積神經網絡(Foundations of Convolutional Neural Networks)

1.1 計算機視覺(Computer vision)

1.2 邊緣檢測示例(Edge detection example)

1.3 更多邊緣檢測內容(More edge detection)

1.4 Padding

1.5 卷積步長(Strided convolutions)

1.6 三維卷積(Convolutions over volumes)

1.7 單層卷積網絡(One layer of a convolutional network)

1.8 簡單卷積網絡示例(A simple convolution network example)

1.9 池化層(Pooling layers)

1.10 卷積神經網絡示例(Convolutional neural network example)

1.11 爲什麼使用卷積?(Why convolutions?)


第二週深度卷積網絡:實例探究(Deep convolutional models: case studies)

2.1 爲什麼要進行實例探究?(Why look at case studies?)

2.2 經典網絡(Classic networks)

2.3 殘差網絡(ResNets)(Residual Networks (ResNets))

2.4 殘差網絡爲什麼有用?(Why ResNets work?)

2.5 網絡中的網絡以及 1×1 卷積(Network in Networkand 1×1 convolutions)

2.6 谷歌 Inception 網絡簡介(Inceptionnetwork motivation)

2.7 Inception 網絡(Inception network)

2.8 使用開源的實現方案(Using open-source implementations)

2.9 遷移學習(Transfer Learning)

2.10 數據增強(Data augmentation)

2.11 計算機視覺現狀(The state of computer vision)


第三週目標檢測(Object detection)

3.1 目標定位(Object localization)

3.2 特徵點檢測(Landmark detection)

3.3 目標檢測(Object detection)

3.4滑動窗口的卷積實現(Convolutional implementation of sliding windows)

3.5 Bounding Box預測(Bounding box predictions)

3.6 交併比(Intersection over union)

3.7 非極大值抑制(Non-max suppression)

3.8 Anchor Boxes

3.9 YOLO 算法(Putting it together: YOLO algorithm)

3.10 候選區域(選修)(Region proposals (Optional))


第四周特殊應用:人臉識別和神經風格轉換(Special applications: Face recognition &Neural styletransfer)

4.1 什麼是人臉識別?(What is face recognition?)

4.2 One-Shot學習(One-shot learning)

4.3 Siamese 網絡(Siamese network)

4.4 Triplet 損失(Triplet 損失)

4.5 人臉驗證與二分類(Face verification and binary classification)

4.6 什麼是神經風格遷移?(What is neural style transfer?)

4.7深度卷積網絡學習什麼?(What are deep ConvNets learning?)

4.8 代價函數(Cost function)

4.9 內容代價函數(Content cost function)

4.10 風格代價函數(Style cost function)

4.11 一維到三維推廣(1D and 3D generalizations of models)


第五門課序列模型(Sequence Models)

第一週循環序列模型(Recurrent Neural Networks)

1.1 爲什麼選擇序列模型?(Why Sequence Models?)

1.2 數學符號(Notation)

1.3 循環神經網絡模型(Recurrent Neural Network Model)

1.4 通過時間的反向傳播(Backpropagation through time)

1.5 不同類型的循環神經網絡(Different types of RNNs)

1.6 語言模型和序列生成(Language model and sequence generation)

1.7 對新序列採樣(Sampling novel sequences)

1.8 循環神經網絡的梯度消失(Vanishing gradients with RNNs)

1.9 GRU單元(Gated Recurrent Unit(GRU))

1.10 長短期記憶(LSTM(long short term memory)unit)

1.11 雙向循環神經網絡(Bidirectional RNN)

1.12 深層循環神經網絡(Deep RNNs)


第二週自然語言處理與詞嵌入(Natural Language Processing and Word Embeddings)

2.1 詞彙表徵(Word Representation)

2.2 使用詞嵌入(Using Word Embeddings)

2.3 詞嵌入的特性(Properties of Word Embeddings)

2.4 嵌入矩陣(Embedding Matrix)

2.5 學習詞嵌入(Learning Word Embeddings)

2.6 Word2Vec

2.7 負採樣(Negative Sampling)

2.8 GloVe 詞向量(GloVe Word Vectors)

2.9 情感分類(Sentiment Classification)

2.10 詞嵌入除偏(Debiasing Word Embeddings)


第三週序列模型和注意力機制(Sequence models & Attention mechanism

3.1 序列結構的各種序列(Various sequence to sequence architectures)

3.2 選擇最可能的句子(Picking the most likely sentence)

3.3 集束搜索(Beam Search)

3.4 改進集束搜索(Refinements to Beam Search)

3.5 集束搜索的誤差分析(Error analysis in beam search)

3.6 Bleu 得分(選修)(Bleu Score (optional))

3.7 注意力模型直觀理解(Attention Model Intuition)

3.8 注意力模型(Attention Model)

3.9 語音識別(Speech recognition)

3.10 觸發字檢測(Trigger Word Detection)

3.11 結論和致謝(Conclusion and thank you)


附件

榜樣的力量-吳恩達採訪人工智能大師實錄

吳恩達採訪 Geoffery Hinton

吳恩達採訪 Ian Goodfellow

吳恩達採訪 Ruslan Salakhutdinov

吳恩達採訪 Yoshua Bengio

吳恩達採訪林元慶

吳恩達採訪 Pieter Abbeel

吳恩達採訪 Andrej Karpathy

深度學習符號指南(原課程翻譯)


CS229 機器學習課程複習材料-線性代數

1. 基礎概念和符號

2. 矩陣乘法

3 運算和屬性

4.矩陣微積分


CS229 機器學習課程複習材料-概率論

1. 概率的基本要素

2. 隨機變量

3. 兩個隨機變量

4. 多個隨機變量

5. 其他資源


機器學習的數學基礎(國內教材)

高等數學

線性代數

概率論和數理統計

快速下載

吳恩達老師的機器學習課程個人筆記、翻譯的字幕(含視頻)、復現的 python 代碼等,同時筆記的 word 和 markdown 文件也開源了。

網速快的直接在Github 地址下載全站:

鏈接:yun.baidu.com/s/1nhvxDc 提取碼:hxbc


文章來源:知乎