吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程
作者 | Peter
編輯 |?AI有道
今天帶來第二周課程的筆記:梯度下降與正規方程。
主要內容:
多維特征
多變量梯度下降
梯度下降法實踐
正規方程
多維特征Multiple Features
還是利用房價模型的例子,增加了更多的特征,比如:房間樓層、房間數量、地理位置等,構成了一個含有多個變量的模型
n:代表的是特征的數量
x(i):代表第i個訓練實例,是特征矩陣中的第i行,是一個向量vector
:表示的是第i個訓練實例的第j個特征;i表示行,j表示列
支持多變量的假設h表示為:
為了簡化公式,引入,公式轉化為:
特征矩陣X 的維度是m?(n+1),公式簡化為:
多變量梯度下降
算法目標
與單變量線性回歸類似,在多變量線性回歸中,構建一個代價函數,則這個代價函數是所有建模誤差的平方和,即:
其中:
算法過程:
Python代碼
給定特征矩陣X,輸出y,學習率θ,求代價函數J
import numpy as npdef computeCost(X,y,theta):inner = np.power(((X * theta.T) - y), 2) # 求解每個平方項return?np.sum(inner)?/?(2?/?len(X))???#?求和再除以2*len(X)梯度下降法實踐
特征縮放
面對多維度特征問題,我們需要保證這些特征具有相近的尺度,幫助梯度下降算法更快地收斂。
以房價問題為例,假設僅用兩個特征,房屋的尺寸和數量,以兩個參數分別為橫縱坐標,假設尺寸在0-2000平方英尺,數量在0-5之間。
繪制代價函數的等高線圖能,看出圖像會顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。
解決辦法:將所有的特征的尺度盡量縮放到-1到1之間,令:
其中un為平均值,sn為標準差
均值歸一化
學習率問題
梯度下降算法的每次迭代受到學習率的影響
如果學習率過小,則達到收斂所需的迭代次數會非常高,收斂速度非常慢
如果學習率過大,每次迭代可能不會減小代價函數,可能會越過局部最小值導致無法收斂
常用學習率包含:α=0.01,0.03,0.1,0.31,3,10α=0.01,0.03,0.1,0.31,3,10
特征和多項式回歸
如房價預測問題,
同時房屋面積=寬度 * 深度
在實際擬合數據的時候,可能會選擇二次或者三次方模型;如果采用多項式回歸模型,在運行梯度下降法之前,特征縮放很有必要。
正規方程 Normal Equation
梯度下降缺點
需要多次迭代才能達到局部最優解
正規方程demo
正規方程具有不可逆性
正規方程就是通過求解下面例子中的方程找出使得代價函數最小參數θ:
不可逆矩陣不能使用正規方程求解
Normal Equation VS Gradient Descent
梯度下降和正規方程的比較:
參數θ求解過程
正規方程的Python實現
import numpy as npdef normalEquation(X, y):theta = np.linalg.inv(X.T@X)@X.T@Y # X.T@X等價于X.T.dot(X) @等價于.dotreturn theta至此,第一周的課程筆記完畢!
系列文章:
吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習
推薦閱讀
(點擊標題可跳轉閱讀)
干貨 | 公眾號歷史文章精選
我的深度學習入門路線
我的機器學習入門路線圖
重磅!
AI有道年度技術文章電子版PDF來啦!
掃描下方二維碼,添加?AI有道小助手微信,可申請入群,并獲得2020完整技術文章合集PDF(一定要備注:入群?+ 地點 + 學校/公司。例如:入群+上海+復旦。?
長按掃碼,申請入群
(添加人數較多,請耐心等待)
感謝你的分享,點贊,在看三連↓
總結
以上是生活随笔為你收集整理的吴恩达《Machine Learning》精炼笔记 2:梯度下降与正规方程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员——[小鸟语录]
- 下一篇: Python菜鸟之python入门