0. 引言
吳恩達(Andrew Ng),毫無疑問,是全球人工智慧(AI)領域的大 IP!然而,吳恩達從最早的 CS229,到後來的 deeplearning.ai 深度學習專項課程,還有其它 AI 資源,大神釋出的 AI 知名課程和資料非常多。
說到吳恩達優秀的 AI 課程,首當其衝的就是幾年前在 Coursera 上釋出的《Machine Learning》課程!
這門《Machine Learning》評分高達 4.9 分,共有超過 300w 人註冊學習。其火爆程度可想而知!
課程主頁:
https://www.coursera.org/learn/machine-learning/
課程特色:
這門課基本涵蓋了機器學習的主要知識點:線性迴歸、邏輯迴歸、支援向量機、神經網路、K-Means、異常檢測等。課程中沒有複雜的公式推導和理論分析,讓機器學習初學者能夠快速對整個機器學習知識點有比較整體的認識,便於快速入門。
完整中文筆記(pdf、word、markdown版本)、中英文字幕離線視訊、復現的python作業:
https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
線上筆記:
http://www.ai-start.com/ml2014/
課後作業(Python 版本):
https://github.com/nsoojin/coursera-ml-py
課後作業(Jupyter 版本):
https://github.com/kaleko/CourseraML
鑑於這門課程非常適合入門,在接下來的一段時間中,我們將推出吳恩達《Machine Learning》的系列筆記,方便大家配套學習!
今天帶來第一週課程的筆記:監督式學習和非監督式學習。
主要內容:
- 監督學習和無監督學習
- 單變數線性迴歸問題
- 代價函式
- 梯度下降演算法
1-1. 監督學習Supervised Learning
利用監督學習預測波士頓房價(迴歸問題)
- 大多數情況下,可能會擬合直線
- 有時候用二次曲線去擬合效果可能會更好的
什麼是迴歸問題?
在監督學習中,我們給學習演算法一個資料集,比如一系列房子的資料,給定資料集中每個樣本的正確價格,即它們實際的售價然後運用學習演算法,算出更多的答案,我們需要估算一個連續值的結果,這屬於迴歸問題
利用監督學習來推測乳腺癌良性與否(分類問題)
- 橫軸表示腫瘤的大小
- 縱軸表示1表示惡性,0表示良性
什麼是分類問題?
機器學習的問題就在於,估算出腫瘤是惡性的或是良性的概率,屬於分類問題。
分類問題指的是,我們試著推測出離散的輸出值:0或1良性或惡性,而事實上在分類問題中,輸出可能不止兩個值。
比如說可能有三種乳腺癌,所以希望預測離散輸出0、1、2、3。0 代表良性,1 表示第1類乳腺癌,2表示第2類癌症,3表示第3類,也是分類問題。
應用
- 垃圾郵件問題
- 疾病分類問題
1-2 無監督學習Unsupervised Learning
- 監督學習中,資料是有標籤的
- 無監督學習中,資料是沒有標籤,主要提到了聚類演算法
應用
- 基因學的理解應用
- 社交網路分析
- 組織大型計算機叢集
- 細分市場
- 新聞事件分類
2. 單變數線性迴歸Linear Regression with One Variable
房價問題
橫軸是不同的房屋面積,縱軸是房屋的出售價格。
監督學習:對於每個資料來說,給出了正確的答案。在監督學習中,我們有一個給定的資料,叫做訓練集training set
迴歸問題:根據之前的資料,預測出一個準確的輸出值。
分類問題:預測離散的輸出值,例如尋找癌症腫瘤,並想要確定腫瘤是良性的還是惡性的,屬於0/1離散輸出的問題
監督學習工作模式
學習過程解釋:
- 將訓練集中的房屋價格餵給學習演算法
- 學習演算法工作,輸出一個函式,用h表示
- h表示hypothesis,代表的是學習演算法的解決方案或者函式。
- h根據輸入的x值得到y值,因此h是x到的y的一個函式對映
- 可能的表示式:hθ(x)=θ0+θ1x,只有一個特徵或者出入變數,稱為單變數線性迴歸問題
3. 代價函式cost function
代價函式也稱之為平方誤差函式,平方誤差代價函式。
線上性迴歸中我們有一個像這樣的訓練集,m代表了訓練樣本的數量,比如 m=47。而我們的假設函式,也就是用來進行預測的函式,是這樣的線性函式形式:hθ(x)=θ0+θ1x。
函式解釋
- m:訓練樣本的個數
- hθ(x)=θ0+θ1x:假設函式
- θ0和θ1:表示兩個模型引數,即直線的斜率和y軸上的截距
建模誤差
建模目標
- 圖中紅色的點表示真實值yi,真實的資料集
- h(x)表示的是通過模型得到的預測值
- 目標:選擇出可以使得建模誤差的平方和能夠最小的模型引數
代價函式直觀解釋1
本例中是通過假設θ0=0來進行,假設函式h(x)是關於x的函式,代價函式J(θ0,θ1)是關於θ的函式,使得代價函式最小化
代價函式直觀解釋2
通過等高線圖來進行解釋。通過繪製出等高線圖可以看出來,必定存在某個點,使得代價函式最小,即:可以看出在三維空間中存在一個使得J(θ0,θ1)最小的點。
4. 梯度下降Gradient Descent
思想
梯度下降是一個用來求函式最小值的演算法。
- 背後的思想:開始隨機選取一個引數的組合(θ0,θ1,…,θn)計算代價函式,然後我們尋找下一個能讓代價函式值下降最多的引數組合。
- 持續這麼做,直到一個區域性最小值(local minimum),因為並沒有嘗試完所有的引數組合,所以不能確定得到的區域性最小值是否是全域性最小值(global minimum)
批量梯度下降batch gradient descent
演算法公式為
特點:需要同步更新兩個引數
梯度下降直觀解釋
演算法公式:
具體描述:對θ賦值,使得J(θ)按照梯度下降最快的方向進行,一直迭代下去,最終得到區域性最小值。
學習率:α是學習率它決定了我們沿著能讓代價函式下降程度最大的方向向下邁出的步子有多大。
- 學習率太小:收斂速度慢需要很長的時間才會到達全域性最低點
- 學習率太大:可能越過最低點,甚至可能無法收斂
梯度下降的線性迴歸GradientDescent-For-LinearRegression
梯度下降是很常用的演算法,它不僅被用線上性迴歸上和線性迴歸模型、平方誤差代價函式。將梯度下降和代價函式相結合。
梯度下降VS線性迴歸演算法
批量梯度下降演算法
對之前的線性迴歸問題運用梯度下降法,關鍵在於求出代價函式的導數,即:
這種梯度下降的演算法稱之為批量梯度下降演算法,主要特點:
- 在梯度下降的每一步中,我們都用到了所有的訓練樣本
- 在梯度下降中,在計算微分求導項時,我們需要進行求和運算,需要對所有m個訓練樣本求和
至此,第一週的課程筆記完畢!
本文首發於公眾號:AI有道(ID: redstonewill),歡迎關注!