日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【机器学习入门】(7) 线性回归算法:原理、公式推导、损失函数、似然函数、梯度下降

發布時間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习入门】(7) 线性回归算法:原理、公式推导、损失函数、似然函数、梯度下降 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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


1.?概念簡述

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


2. 線性回歸方程

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

線性回歸方程為

整合后的公式為:


3. 損失函數

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

損失函數公式為:

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


4. 損失函數推導過程

4.1 公式轉換

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

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

此時的 x0=1,因此將線性回歸方程轉變成?,其中??和??可以寫成矩陣

4.2 誤差公式

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

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

4.3 轉化為??求解

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

所以??出現的概率滿足概率密度函數

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

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

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

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

4.4 似然函數求?

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

似然函數理解:

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

為了獲得??的值,將硬幣拋10次,H為正面,T為反面,得到一個正反序列 x = HHTTHTHHHH,此次實驗滿足二項分布,這個序列出現的概率為,我們根據一次簡單的二項分布實驗,得到了一個關于??的函數,這實際上是一個似然函數,根據不同的??值繪制一條曲線,曲線就是的似然函數,y軸是這一現象出現的概率。

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

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

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

4.5 對數似然

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

對數似然公式如下:

對以上公式化簡得:

4.6 損失函數

我們需要把上面那個式子求得最大值,然后再獲取最大值時的??值。 而上式中??是一個常數項,所以我們只需要把減號后面那個式子變得最小就可以了,而減號后面那個部分,可以把常數項??去掉,因此我們得到最終的損失函數如下,現在只需要求損失函數的最小值。

注:保留??是為了后期求偏導數。

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


5. 梯度下降

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

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

5.1 批量梯度下降(BGD)

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

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

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

?的導數為:

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

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

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

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


5.2 隨機梯度下降(SGD)

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

隨機梯度下降法下降后的點為:

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


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

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

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

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

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

總結

以上是生活随笔為你收集整理的【机器学习入门】(7) 线性回归算法:原理、公式推导、损失函数、似然函数、梯度下降的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。