tft每日頭條

 > 生活

 > 機器學習線性回歸參數詳解

機器學習線性回歸參數詳解

生活 更新时间:2024-10-07 18:49:37

各位同學好,今天我和大家分享一下python機器學習中的線性回歸算法。内容有:

(1) 線性回歸方程、(2) 損失函數推導、(3) 似然函數、(4) 三種梯度下降方法

1. 概念簡述

線性回歸是通過一個或多個自變量與因變量之間進行建模的回歸分析,其特點為一個或多個稱為回歸系數的模型參數的線性組合。如下圖所示,樣本點為曆史數據,回歸曲線要能最貼切的模拟樣本點的趨勢,将誤差降到最小。

機器學習線性回歸參數詳解(機器學習入門7)1

2. 線性回歸方程

線形回歸方程,就是有 n 個特征,然後每個特征 Xi 都有相應的系數 Wi ,并且在所有特征值為0的情況下,目标值有一個默認值 W0 ,因此:

線性回歸方程為:

機器學習線性回歸參數詳解(機器學習入門7)2

整合後的公式為:

機器學習線性回歸參數詳解(機器學習入門7)3

3. 損失函數

損失函數是一個貫穿整個機器學習的一個重要概念,大部分機器學習算法都有誤差,我們需要通過顯性的公式來描述這個誤差,并将這個誤差優化到最小值。假設現在真實的值為 y,預測的值為 h 。

損失函數公式為:

機器學習線性回歸參數詳解(機器學習入門7)4

也就是所有誤差和的平方。損失函數值越小,說明誤差越小,這個損失函數也稱最小二乘法。

4. 損失函數推導過程

4.1 公式轉換

首先我們有一個線性回歸方程:

機器學習線性回歸參數詳解(機器學習入門7)5

為了方便計算計算,我們将線性回歸方程轉換成兩個矩陣相乘的形式,将原式的 後面乘一個

此時的 x0=1,因此将線性回歸方程轉變成

機器學習線性回歸參數詳解(機器學習入門7)6

,其中 θi 和xi 可以寫成矩陣:

機器學習線性回歸參數詳解(機器學習入門7)7

4.2 誤差公式

以上求得的隻是一個預測的值,而不是真實的值,他們之間肯定會存在誤差,因此會有以下公式:

機器學習線性回歸參數詳解(機器學習入門7)8

我們需要找出真實值 yi與預測值 θi*xi 之間的最小誤差εi ,使預測值和真實值的差距最小。将這個公式轉換成尋找不同的θi 使誤差達到最小。

4.3 轉化為θ 求解

由于

機器學習線性回歸參數詳解(機器學習入門7)9

既存在正數也存在負數,所以可以簡單的把這個數據集,看作是一個服從均值θ ,方差σ²為 的正态分布。

所以

機器學習線性回歸參數詳解(機器學習入門7)10

出現的概率滿足概率密度函數:

機器學習線性回歸參數詳解(機器學習入門7)11

機器學習線性回歸參數詳解(機器學習入門7)12

代入到以上的高斯分布函數(即正态分布)中,變成以下式子:

機器學習線性回歸參數詳解(機器學習入門7)13

到此,我們将對誤差的求解轉換成對 的求解了。

在求解這個公式時,我們要得到的是誤差 最小,也就是求概率 最大的。因為誤差 滿足正态分布,因此在正太曲線中央高峰部的概率

機器學習線性回歸參數詳解(機器學習入門7)14

是最大的,此時标準差σ為0,誤差是最小的。

盡管在生活中标準差肯定是不為0的,沒關系,我們隻需要去找到誤差值出現的概率最大的點。現在,問題就變成了怎麼去找誤差出現概率最大的點,隻要找到,那我們就能求出θi

機器學習線性回歸參數詳解(機器學習入門7)15

4.4 似然函數求

似然函數的主要作用是,在已經知道變量 x 的情況下,調整θ ,使概率 y 的值最大。

似然函數理解:

以抛硬币為例,正常情況硬币出現正反面的概率都是0.5,假設你在不确定這枚硬币的材質、重量分布的情況下,需要判斷其是否真的是均勻分布。在這裡我們假設這枚硬币有 的概率會正面朝上,有1-θ 的概率會反面朝上。

為了獲得θ 的值,将硬币抛10次,H為正面,T為反面,得到一個正反序列 x = HHTTHTHHHH,此次實驗滿足二項分布,這個序列出現的概率為

機器學習線性回歸參數詳解(機器學習入門7)16

,我們根據一次簡單的二項分布實驗,得到了一個關于 θ 的函數,這實際上是一個似然函數,根據不同的 θ 值繪制一條曲線,曲線就是θ的似然函數,y軸是這一現象出現的概率。

從圖中可見,當 等于 0.7 時,該序列出現的概率是最大的,因此我們确定該硬币正面朝上的概率是0.7。

機器學習線性回歸參數詳解(機器學習入門7)17

因此,回到正題,我們要求的是誤差出現概率 的最大值,那就做很多次實驗,對誤差出現概率累乘,得出似然函數,帶入不同的 ,看是多少時,出現的概率是最大的,即可确定的值。

綜上,我們得出求 的似然函數為:

機器學習線性回歸參數詳解(機器學習入門7)18

4.5 對數似然

由于上述的累乘的方法不太方便我們去求解 ,我們可以轉換成對數似然,将以上公式放到對數中,然後就可以轉換成一個加法運算。取對數以後會改變結果值,但不會改變結果的大小順序。我們隻關心等于什麼的時候,似然函數有最大值,不用管最大值是多少,即,不是求極值而是求極值點。注:此處log的底數為e。

對數似然公式如下:

機器學習線性回歸參數詳解(機器學習入門7)19

對以上公式化簡得:

機器學習線性回歸參數詳解(機器學習入門7)20

4.6 損失函數

我們需要把上面那個式子求得最大值,然後再獲取最大值時的 值。 而上式中

機器學習線性回歸參數詳解(機器學習入門7)21

是一個常數項,所以我們隻需要把減号後面那個式子變得最小就可以了,而減号後面那個部分,可以把常數項

機器學習線性回歸參數詳解(機器學習入門7)22

去掉,因此我們得到最終的損失函數如下,現在隻需要求損失函數的最小值。

機器學習線性回歸參數詳解(機器學習入門7)23

注:保留1/2 是為了後期求偏導數。

損失函數越小,說明預測值越接近真實值,這個損失函數也叫最小二乘法。

5. 梯度下降

損失函數中 xi 和 yi 都是給定的值,能調整的隻有 ,如果随機的調整,數據量很大,會花費很長時間,每次調整都不清楚我調整的是高了還是低了。我們需要根據指定的路徑去調節,每次調節一個,範圍就減少一點,有目标有計劃去調節。梯度下降相當于是去找到一條路徑,讓我們去調整。

梯度下降的通俗理解就是,把對以上損失函數最小值的求解,比喻成梯子,然後不斷地下降,直到找到最低的值。

5.1 批量梯度下降(BGD)

批量梯度下降,是在每次求解過程中,把所有數據都進行考察,因此損失函數因該要在原來的損失函數的基礎之上加上一個m:數據量,來求平均值:

機器學習線性回歸參數詳解(機器學習入門7)24

因為現在針對所有的數據做了一次損失函數的求解,比如我現在對100萬條數據都做了損失函數的求解,數據量結果太大,除以數據量100萬,求損失函數的平均值。

然後,我們需要去求一個點的方向,也就是去求它的斜率。對這個點求導數,就是它的斜率,因此我們隻需要求出 的導數,就知道它要往哪個方向下降了。它的方向先對所有分支方向求導再找出它們的合方向。

機器學習線性回歸參數詳解(機器學習入門7)25

的導數為:

機器學習線性回歸參數詳解(機器學習入門7)26

由于導數的方向是上升的,現在我們需要梯度下降,因此在上式前面加一個負号,就得到了下降方向,而下降是在當前點的基礎上下降的。

批量梯度下降法下降後的點為:

機器學習線性回歸參數詳解(機器學習入門7)27

新點是在原點的基礎上往下走一點點,斜率表示梯度下降的方向, 表示要下降多少。由于不同點的斜率是不一樣的,以此循環,找到最低點。

批量梯度下降的特點:每次向下走一點點都需要将所有的點拿來運算,如果數據量大非常耗時間。

5.2 随機梯度下降(SGD)

随機梯度下降是通過每個樣本來疊代更新一次。對比批量梯度下降,疊代一次需要用到所有的樣本,一次疊代不可能最優,如果疊代10次就需要遍曆整個樣本10次。SGD每次取一個點來計算下降方向。但是,随機梯度下降的噪音比批量梯度下降要多,使得随機梯度下降并不是每次疊代都向着整體最優化方向。

随機梯度下降法下降後的點為:

機器學習線性回歸參數詳解(機器學習入門7)28

每次随機一個點計算,不需要把所有點拿來求平均值,梯度下降路徑彎彎曲曲趨勢不太好。

5.3 mini-batch 小批量梯度下降(MBGO)

我們從上面兩個梯度下降方法中可以看出,他們各自有優缺點。小批量梯度下降法在這兩種方法中取得了一個折衷,算法的訓練過程比較快,而且也要保證最終參數訓練的準确率。

假設現在有10萬條數據,MBGO一次性拿幾百幾千條數據來計算,能保證大體方向上還是下降的。

小批量梯度下降法下降後的點為:

機器學習線性回歸參數詳解(機器學習入門7)29

用來表示學習速率,即每次下降多少。已經求出斜率了,但是往下走多少合适呢,值需要去調節,太大的話下降方向會偏離整體方向,太小會導緻學習效率很慢。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved