機器學習初學心得 梯度下降法

2022-08-23 12:27:14 字數 3025 閱讀 1124

回歸與梯度下降:

回歸在數學上來說是給定乙個點集,能夠用一條曲線去擬合之,如果這個曲線是一條直線,那就被稱為線性回歸,如果曲線是一條二次曲線,就被稱為二次回歸,回歸還有很多的變種,如locally weighted回歸,logistic回歸,等等,這個將在後面去講。

用乙個很簡單的例子來說明回歸,這個例子來自很多的地方,也在很多的open source的軟體中看到,比如說weka。大概就是,做乙個房屋價值的評估系統,乙個房屋的價值來自很多地方,比如說面積、房間的數量(幾室幾廳)、地段、朝向等等,這些影響房屋價值的變數被稱為特徵(feature),feature在機器學習中是乙個很重要的概念,有很多的**專門**這個東西。在此處,為了簡單,假設我們的房屋就是乙個變數影響的,就是房屋的面積。

假設有乙個房屋銷售的資料如下:

面積(m^2)  銷售價錢(萬元)

123            250

150            320

87              160

102            220

這個表類似於帝都5環左右的房屋價錢,我們可以做出乙個圖,x軸是房屋的面積。y軸是房屋的售價,如下:

如果來了乙個新的面積,假設在銷售價錢的記錄中沒有的,我們怎麼辦呢?

我們可以用一條曲線去盡量準的擬合這些資料,然後如果有新的輸入過來,我們可以在將曲線上這個點對應的值返回。如果用一條直線去擬合,可能是下面的樣子:

綠色的點就是我們想要**的點。

首先給出一些概念和常用的符號,在不同的機器學習書籍中可能有一定的差別。

房屋銷售記錄表 - 訓練集(training set)或者訓練資料(training data), 是我們流程中的輸入資料,一般稱為x

房屋銷售價錢 - 輸出資料,一般稱為y

擬合的函式(或者稱為假設或者模型),一般寫做 y = h(x)

訓練資料的條目數(#training set), 一條訓練資料是由一對輸入資料和輸出資料組成的

輸入資料的維度(特徵的個數,#features),n

下面是乙個典型的機器學習的過程,首先給出乙個輸入資料,我們的演算法會通過一系列的過程得到乙個估計的函式,這個函式有能力對沒有見過的新資料給出乙個新的估計,也被稱為構建乙個模型。就如同上面的線性回歸函式。

我們用x1,x2..xn 去描述feature裡面的分量,比如x1=房間的面積,x2=房間的朝向,等等,我們可以做出乙個估計函式:

θ在這兒稱為引數,在這兒的意思是調整feature中每個分量的影響力,就是到底是房屋的面積更重要還是房屋的地段更重要。為了如果我們令x0 = 1,就可以用向量的方式來表示了:

我們程式也需要乙個機制去評估我們θ是否比較好,所以說需要對我們做出的h函式進行評估,一般這個函式稱為損失函式(loss function)或者錯誤函式(error function),描述h函式不好的程度,在下面,我們稱這個函式為j函式

在這兒我們可以做出下面的乙個錯誤函式:

這個錯誤估計函式是去對x(i)的估計值與真實值y(i)差的平方和作為錯誤估計函式,前面乘上的1/2是為了在求導的時候,這個係數就不見了。

如何調整θ以使得j(θ)取得最小值有很多方法,其中有最小二乘法(min square),是一種完全是數學描述的方法,在stanford機器學習開放課最後的部分會推導最小二乘法的公式的**,這個來很多的機器學習和數學書上都可以找到,這裡就不提最小二乘法,而談談梯度下降法。

梯度下降法是按下面的流程進行的:

1)首先對θ賦值,這個值可以是隨機的,也可以讓θ是乙個全零的向量。

2)改變θ的值,使得j(θ)按梯度下降的方向進行減少。

為了更清楚,給出下面的圖:

這是乙個表示引數θ與誤差函式j(θ)的關係圖,紅色的部分是表示j(θ)有著比較高的取值,我們需要的是,能夠讓j(θ)的值盡量的低。也就是深藍色的部分。θ0,θ1表示θ向量的兩個維度。

在上面提到梯度下降法的第一步是給θ給乙個初值,假設隨機給的初值是在圖上的十字點。

然後我們將θ按照梯度下降的方向進行調整,就會使得j(θ)往更低的方向進行變化,如圖所示,演算法的結束將是在θ下降到無法繼續下降為止。

當然,可能梯度下降的最終點並非是全域性最小點,可能是乙個區域性最小點,可能是下面的情況:

上面這張圖就是描述的乙個區域性最小點,這是我們重新選擇了乙個初始點得到的,看來我們這個演算法將會在很大的程度上被初始點的選擇影響而陷入區域性最小點  

下面是更新的過程,也就是θi會向著梯度最小的方向進行減少。θi表示更新之前的值,-後面的部分表示按梯度方向減少的量,α表示步長,也就是每次按照梯度減少的方向變化多少。

乙個很重要的地方值得注意的是,梯度是有方向的,對於乙個向量θ,每一維分量θi都可以求出乙個梯度的方向,我們就可以找到乙個整體的方向,在變化的時候,我們就朝著下降最多的方向進行變化就可以達到乙個最小點,不管它是區域性的還是全域性的。

用更簡單的數學語言進行描述步驟2)是這樣的:

倒三角形表示梯度,按這種方式來表示,θi就不見了,看看用好向量和矩陣,真的會大大的簡化數學的描述啊。

機器學習之梯度下降法 梯度下降法分析

梯度下降法的基本思想是函式沿著其梯度方向增加最快,反之,沿著其梯度反方向減小最快。在前面的線性回歸和邏輯回歸中,都採用了梯度下降法來求解。梯度下降的迭代公式為 j j j j 在回歸演算法的實驗中,梯度下降的步長 為0.01,當時也指出了該步長是通過多次時間找到的,且換一組資料後,演算法可能不收斂。...

機器學習 梯度下降法

梯度下降法,一般用來求解線性回歸方程,我的理解是根據一組形如 特徵1,特徵2.結果 的資料來找到這些對應的特徵和結果之間的聯絡 例如,我們利用一組 銷量的資料判斷乙個物品的銷量和 之間的關係 我們要求的線性回歸方程可以表示為 銷量 引數 實質上其實就是找到對應的 引數 而當影響乙個結果的特徵不只有乙...

機器學習 梯度下降法

1 梯度下降法的邏輯思路 的取值影響獲得最優解的速度 取值不合適,甚至得不到最優解 是梯度下降法的乙個超引數 一般需要調參找到最適合的 太小,減慢收斂學習速度 太大,導致不收斂 2 梯度下降法的問題 3 其它1 具體實現 模擬損失函式 y x 2.5 2 1 資料集特徵值 plot x np.lin...