吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化
作者 | Peter
編輯 |?AI有道
今天帶來第三周課程的筆記:梯度下降與正規方程。
主要講解的內容包含:
邏輯回歸
代價函數
線性回歸和邏輯回歸的比較
正則化問題
邏輯回歸
分類問題
假設預測的變量y是離散的值,需要使用邏輯回歸Logistic Regression,LR的算法,實際上它是一種分類算法
二元分類問題
將因變量dependent variable可能屬于的兩個類分別稱為負向類negative class和正向類positive class,因變量y的取值只能在0和1之間,其中0表示負類,1表示正類
假說表示Hypothesis Representation
分類器的輸出值在0和1之間,因此,希望找出一個滿足某個性質的假設函數,這個性質是它的預測值要在0和1之間
引入一個新的模型:邏輯回歸,該模型的輸出變量范圍始終在0和1之間。邏輯回歸模型的假設是:
其中X代表的是特征向量g的邏輯函數,常用的S型函數(上圖的右邊,sigmoid function)公式為
Python代碼實現sigmod激活函數:
import numpy as npdef sigmod(z):return 1 / (1 + np.exp(-z))hθ(x)作用是對于給定的輸入變量,根據選擇的參數計算輸出變量=1的可能性,即:hθ(x)=P(y=1|x;θ)
例如:對于給定的x,通過已經確定的參數計算得出hθ(x)=0.7hθ(x)=0.7,則表示有70%的幾率y屬于正類
決策邊界decision boundary
解釋邏輯回歸
在邏輯回歸中h≥0.5h≥0.5預測y=1y=1;反之y=0
在激活函數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就是決策邊界
復雜的模型邊界問題
代價函數Cost Function
如何擬合LR模型的參數θ
1. 線性模型中代價函數是模型誤差的平方和?:
如果直接使用線性模型中的代價函數,即誤差平方和,得到的代價函數是個非凸函數,但是實際上我們期望看的是凸函數(右邊)
重新定義邏輯回歸的代價函數
將上面的兩個式子進行合并:
hθ(x)和Cost(hθ(x),y)之間的關系
根據y的不同取值來進行分別判斷,同時需要注意的是:假設函數h的取值只在[0,1]之間
y=1的情形
y=0的情形
Python代碼實現代價函數
利用Python實現下面的代價函數
first?表示的是右邊第一項
second?表示的是右邊第二項
利用梯度下降來求解LR最小參數
1、LR中的代價函數是?:
2、最終結果:
3、具體過程
不斷地迭代更新θj:
如果存在n個特征,也就是θ=[θ0,θ1,…,θn]T。那么就需要根據上面的式子從0-n來更新所有的θ
線性回歸 VS 邏輯回歸
假設的定義規則發生變化
線性回歸:
邏輯回歸:
因此,即使更新參數的規則看起來基本相同,但由于假設的定義發生了變化,所以邏輯函數的梯度下降,跟線性回歸的梯度下降實際上是兩個完全不同的東西。
其他求解代價函數最小的算法
共軛梯度conjugate gradient
局部優化法Broyden fletcher goldfarb shann,BFGS
有限內存局部優化法LBFGS
多類別分類one-vs-all
我們舉一個實際中的例子來說明:
假如現在需要一個學習算法能自動地將郵件歸類到不同的文件夾里,或者說可以自動地加上標簽,那么需要一些不同的文件夾,或者不同的標簽來完成這件事,來區分開來自工作、朋友、家人或者有關興趣愛好的郵件,那么,就有了這樣一個分類問題:其類別有4個,分別用y=1,2,3,4?來代表。
正則化問題Regularization
正則化基礎
正則化技術主要是為了解決過擬合的問題。過擬合指的是:對樣本數據具有很好的判斷能力,但是對新的數據預測能力很差。
第一個模型是一個線性模型,欠擬合,不能很好地適應我們的訓練集
第三個模型是一個四次方的模型,過于強調擬合原始數據,而丟失了算法的本質:預測新數據
中間的模型似乎最合適
如果是多項式擬合,x的次數越高,擬合的效果越好,但是相應的預測能力就可能變差。對于過擬合的處理:
丟棄一些不能正確預測的特征。可以是手工選擇保留哪些特征,或者使用一些模型選擇的算法,例如PCA
正則化。保留所有的特征,但是減少參數的大小magnitude*
加入正則化參數
在模型hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4中,主要是高次項產生的過擬合問題:
加入正則化參數后能夠防止過擬合問題,其中λλ是正則化參數Regularization Parameter
那么,相應的代價函數變成為:
Attention:
一般地,不對θ0進行懲罰;加上正則化參數實際上是對參數θ進行懲罰。經過正則化處理后的模型和原模型的對比:
如果λ過大,所有的參數最小化,模型變成了hθ(x)=θ0,造成了過擬合
正則化線性回歸Regularized Linear Regression
正則化線性回歸的代價函數:
Attention:在線性回歸中,不對θ0進行正則化:
當j=1,2,…,n時:
調整下變成:
正則化邏輯回歸Regularized Logistic Regression
LR問題兩種優化方法:
梯度下降法
更高級優化算法
加上正則懲罰項后的代價函數為:
python代碼實現
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_jreturn np.sum(first - second) / len((X)) + reg通過求導,得到梯度下降算法,本質上就是對θ的不斷更新:
至此,第三周的課程筆記完畢!
系列文章:
吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習
吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程
推薦閱讀
(點擊標題可跳轉閱讀)
干貨 | 公眾號歷史文章精選
我的深度學習入門路線
我的機器學習入門路線圖
重磅!
AI有道年度技術文章電子版PDF來啦!
掃描下方二維碼,添加?AI有道小助手微信,可申請入群,并獲得2020完整技術文章合集PDF(一定要備注:入群?+ 地點 + 學校/公司。例如:入群+上海+復旦。?
長按掃碼,申請入群
(添加人數較多,請耐心等待)
感謝你的分享,點贊,在看三連↓
總結
以上是生活随笔為你收集整理的吴恩达《Machine Learning》精炼笔记 3:回归问题和正则化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python菜鸟之python入门
- 下一篇: 大众流行编程语言有哪些 该选择哪一个来入