監督學習應用 梯度下降

2021-08-13 12:12:33 字數 3070 閱讀 6392

《andrew ng 機器學習筆記》這一系列文章文章是我再**andrew ng的stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。

參考博文:

本節課程內容包括:

(1)linear regression (線性回歸)

(2)gradient descent(梯度下降)

(3)normal equations(正規方程組)(下篇博文分析正規方程組)

首先引入以下變數:(在今後的機器學習中都會使用到這些變數)

以上篇博文中提到的房屋面積和房價為例,對於監督學習而言,整個過程如下:training set代表訓練集(即我們收集到的很多資料),我們將這些資料交給乙個學習演算法,通過這個演算法,我們得到乙個h(假設函式

),這個假設函式可以接收新的房屋面積x作為輸入,然後輸出房屋**y。因此,h 是乙個從 x到 y 的函式對映。

我們現在要解決的問題是如何得到這個假設函式h,我們可以將h表達為:

其中,x是特徵變數(此處代表房屋面積)

。θ是學習演算法中的引數,都是實數,利用訓練集合去選擇或學習得到合適的引數值,是學習演算法的任務。因為這個例子中只含有乙個特徵/輸入變數,因此這樣的問題叫作單變數線性回歸問題。

如果還存在第二個特徵變數(例如臥室數量),我們可以將表示式寫為:

這個表示式可以簡化為:

實際上,有時候我們會有更複雜的函式,也許是非線性函式,但是由於線性方程是簡單的形式,我們將先從線性方程的例子入手。

至此,我們的目標變為如何求解θ,θ決定了我們得到的函式h相對於我們的訓練集的準確程度,我們要使得這個誤差最小。(這也就是最小化問題

)用代價函式來說明誤差,表示為:(我們要使j(θ)取得最小值)。

針對最小化問題,我們採用lms(最小均方演算法)

,即使得上述表示式取得最小值,這裡介紹兩種解決方法:梯度下降演算法和正規方程組。

用這張圖來解釋梯度下降演算法,想象你正處於圖中某一點,想要到達最低點,你的做法就是從這個點開始出發,環顧周圍,選擇下降幅度最大的方向,邁出一小步,到達乙個新的點,以此迴圈,來達到最低點。這就是梯度下降演算法

。當然如果你開始所處不同的位置,就有可能到達的最低點不同,(如下圖),這就叫做區域性最優。

我們可以看出,如果我們的步長太小,就會要邁很多步才能接近最小值,如果步長過大,就會有可能越過最小值。(實際上不會出現這種情況,下面會作解釋)

這裡我們以兩個引數為例:θ0 

,θ1介紹梯度下降演算法。

演算法思路:首先將引數初始化,再不斷調整引數大小,通過調整使得代價函式可以取得最小值。(或許只是區域性最小,這取決於你的設定的引數初始值,不同的初始值可能會獲得不同的最小值)

具體做法如下:

1、首先將它們都初始化為0。實際上,它們到底是什麼其實並不重要,但通常的選擇是將它們初始化為0。

2、不斷調整引數大小。(下式中的α在這個例子中代表步長)

說明兩點問題:

(1)在梯度下降演算法中,我們需要同時更新θ0,θ

1 。(2)如果你的引數已經處於區域性最低點,那麼梯度下降法更新其實什麼都沒做(求導為0),它不會改變引數的值,這也正是你想要的,因為它使你的解始終保持在區域性最優點,這也解釋了為什麼

即使學習速率 α 保持不變時,梯度下降也可以收斂到區域性最低點

。同時,通過分析上式,我們可以知道,梯度下降一步後,新的導數會變小一點點。隨著梯度下降法的執行,你移動的幅度會自動變得越來越小,直到最終移動幅度非常小,你會發現已經收斂到區域性極小值。

在梯度下降法中,當我們接近區域性最低點時,梯度下降法會自動採取更小的幅度。這是因為當我們接近區域性最低點時(很顯然在區域性最低時導數等於零 ),導數值會自動變得越來越小,所以梯度下降將自動採取較小的幅度,這就是梯度下降的做法,所以實際上沒有必要再另外減小α。

實際上,用於線性回歸的代價函式總是呈現乙個弓形的樣子,即就是凸函式(如下圖)。所以,這個函式沒有任何區域性最優解,只有乙個全域性最優解

我們繼續推導:

因為有:

可以得到:

將這個式子運用到m個例項中,可得到:

在這個式子中,我們可以看出在梯度下降的每一步中我們都用到了所有的訓​​練樣本,實際上,這樣的梯度下降演算法叫做「批量梯度下降

」。當m特別大時,這種演算法很不適用。

這種情況,我們就需要採用另外一種演算法 ——

」隨機梯度下降(增量梯度下降)」

隨機梯度演算法如下:

與批量梯度下降相比,這個演算法開始學習僅僅需要檢視第乙個訓練樣本,並且利用第乙個訓練樣本進行更新,接著再用第二個樣本進行下一次更新,這樣我們調整引數的速度就會快了很多,因為我們不需要再調整前遍歷多有的訓練樣本。但是,隨機梯度下降演算法不會精確地收斂到全域性的最小值 ,但也是向著全域性最小值附近徘徊,通常這樣得到的引數值,能夠很接近全域性最小值,這就已經足夠了。

監督學習應用 梯度下降

andrew ng 機器學習筆記 這一系列文章文章是我再 andrew ng的stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。參考博文 本節課程內容包括 1 linear regres...

監督學習應用 梯度下降筆記

第1 2節主要就是講了線性回歸的東西。課程中用了兩種方法來解決引數求解的問題 1是梯度下降的方法 2是稱為隨機 增量 梯度下降的方法。首先我們來看下面這張圖 我們已知一些 x,y 點的分布。現在我假設有一已知的x,想求期望的y是多少。假設現在我能 用y h x 表示x和y的關係。那麼輸入x,輸出y就...

監督學習應用和梯度下降

主要內容 線形回歸 梯度下降 正規方程組 線形回歸 問題 房價 定義概念 m 訓練數量 x 輸入變數,或特徵 y 輸出變數,或目標變數 x,y 訓練樣本 xi,yi 第i個樣本 通常做法 訓練集 學習演算法 h 函式 表示 函式 h x a a1 x h x ha x a a1 x1 a2 x2 d...