天天看點

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

今天帶來第三周課程的筆記:梯度下降與正規方程。

主要講解的内容包含:

  • 邏輯回歸
  • 代價函數
  • 線性回歸和邏輯回歸的比較
  • 正則化問題

分類問題

假設預測的變量y是離散的值,需要使用邏輯回歸Logistic Regression,LR的算法,實際上它是一種分類算法

二進制分類問題

将因變量dependent variable可能屬于的兩個類分别稱為負向類negative class和正向類positive class,因變量y的取值隻能在0和1之間,其中0表示負類,1表示正類

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

假說表示Hypothesis Representation

分類器的輸出值在0和1之間,是以,希望找出一個滿足某個性質的假設函數,這個性質是它的預測值要在0和1之間

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

例如:對于給定的x,通過已經确定的參數計算得出hθ(x)=0.7hθ(x)=0.7,則表示有70%的幾率y屬于正類

決策邊界decision boundary

解釋邏輯回歸
  1. 在邏輯回歸中h≥0.5h≥0.5預測y=1y=1;反之y=0
  2. 在激活函數g(z)g(z)中:

當z≥0z≥0則g(z)≥0.5g(z)≥0.5

當z<0z<0則g(z)<0.5g(z)<0.5

又因為 z=θTx ,即: θTx>=0 時,預測 y=1y=1 ;反之:θTx<0 時,預測 y=0

執行個體demo

在下圖的中執行個體中,參數θ滿足[-3,1,1],當−3+x1+x2≥0,即x1+x2≥3時,模型預測y=1;說明此時:直線x1+x2=3就是決策邊界

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

複雜的模型邊界問題

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

代價函數Cost Function

如何拟合LR模型的參數θ

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

Python代碼實作代價函數

利用Python實作下面的代價函數

  • first 表示的是右邊第一項
  • second 表示的是右邊第二項
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
import numpy as np

def cost(theta, X, y):
  # 實作代價函數

  theta=np.matrix(theta)
  X = np.matrix(X)
  y = np.matrxi(y)

  first = np.multiply(-y, np.log(sigmod(X * theta.T)))
  second = np.multiply((1 - y), np.log(1-sigmod(X * theta.T)))

  return np.sum(first - second) / (len(X))      
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

線性回歸 VS 邏輯回歸

  1. 假設的定義規則發生變化

線性回歸:

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

邏輯回歸:

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
是以,即使更新參數的規則看起來基本相同,但由于假設的定義發生了變化,是以邏輯函數的梯度下降,跟線性回歸的梯度下降實際上是兩個完全不同的東西。

其他求解代價函數最小的算法

  • 共轭梯度conjugate gradient
  • 局部優化法Broyden fletcher goldfarb shann,BFGS
  • 有限記憶體局部優化法LBFGS

多類别分類one-vs-all

我們舉一個實際中的例子來說明:

假如現在需要一個學習算法能自動地将郵件歸類到不同的檔案夾裡,或者說可以自動地加上标簽,那麼需要一些不同的檔案夾,或者不同的标簽來完成這件事,來區分開來自工作、朋友、家人或者有關興趣愛好的郵件,那麼,就有了這樣一個分類問題:其類别有4個,分别用y=1,2,3,4 來代表。
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

正則化問題Regularization

正則化基礎

正則化技術主要是為了解決過拟合的問題。過拟合指的是:對樣本資料具有很好的判斷能力,但是對新的資料預測能力很差。
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
  • 第一個模型是一個線性模型,欠拟合,不能很好地适應我們的訓練集
  • 第三個模型是一個四次方的模型,過于強調拟合原始資料,而丢失了算法的本質:預測新資料
  • 中間的模型似乎最合适

如果是多項式拟合,x的次數越高,拟合的效果越好,但是相應的預測能力就可能變差。對于過拟合的處理:

  1. 丢棄一些不能正确預測的特征。可以是手工選擇保留哪些特征,或者使用一些模型選擇的算法,例如PCA
  2. 正則化。保留所有的特征,但是減少參數的大小magnitude*
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化
import numpy as np

# 實作代價函數
def costReg(theta, X, y, lr):
  theta= np.matrix(theta)
  X = np.matrix(X)
  y = np.matrix(y)

  first = np.multiply(-y, np.log(sigmoid(X * theta.T)))
  second = np.multiply((1 - y), np.log(1 - sigmoid(X * theta.T)))
  reg = (lr / (2 * len(X)) * np.sum(np.power(theta[:, 1:theta.shape[1]], 2))   # theta[:, 1:theta.shape[1]] 代表的是 \theta_j
  return np.sum(first - second) / len((X)) + reg      

通過求導,得到梯度下降算法,本質上就是對θ的不斷更新:

吳恩達《Machine Learning》精煉筆記 3:回歸問題和正則化

至此,第三周的課程筆記完畢!