回歸算法優化過程推導

假設存在一個數據集,包含工資、年齡及貸款額度三個維度的數據。我們需要根據這個數據集進行建模,從而在給定工資和年齡的情況下,實現對貸款額度的預測。其中,工資和年齡是模型構建時的兩個特征,額度是模型輸出的目標值。

工資年齡額度
40002520000
80003070000
50002835000
75003350000
120004085000

我們可以根據數據集和相關需求進行公式建模:
y = θ 0 + θ 1 x 1 + θ 2 x 2 + ε = θ T x + ε y = {\theta }_{0} + {\theta }_{1}x_1 + {\theta }_{2}x_2 + \varepsilon = {\theta }^{T}x + \varepsilon y=θ0?+θ1?x1?+θ2?x2?+ε=θTx+ε
其中, θ 0 \theta _0 θ0? 為偏置項, θ 1 \theta _1 θ1? θ 2 \theta _2 θ2? 為兩個特征 x 1 x_1 x1? x 2 x_2 x2? 的權重項, ε \varepsilon ε 為誤差項; θ T \theta ^T θT 為一個行向量, x x x 為包含特征 x 1 x_1 x1? x 2 x_2 x2? 的矩陣。

θ 1 x 1 + θ 2 x 2 {\theta }_{1}x_1 + {\theta }_{2}x_2 θ1?x1?+θ2?x2? 在三維空間中表示的平面會盡可能去擬合所有數據點(目標值),但是這個平面并不一定是擬合度最高的,也許該平面沿著 y y y 維度向上或向下平移一點距離所得到的新平面才是擬合度最高的,因此我們會在該擬合表達式中加上一個偏置項 θ 0 \theta _0 θ0?

θ 0 + θ 1 x 1 + θ 2 x 2 {\theta }_{0} + {\theta }_{1}x_1 + {\theta }_{2}x_2 θ0?+θ1?x1?+θ2?x2? 是給定 x 1 x_1 x1? x 2 x_2 x2? 值時,對目標值的預測,預測值與真實值之間必然會存在一個誤差,因此我們在該表達式中還需加上一個誤差項 ε \varepsilon ε

在這里插入圖片描述

對于一個樣本而言,公式可以寫成如下形式:
y ( i ) = θ T x ( i ) + ε ( i ) ? ε ( i ) = y ( i ) ? θ T x ( i ) y^{(i)} = {\theta }^{T}x^{(i)} + \varepsilon ^{(i)} \Rightarrow \varepsilon ^{(i)} = y^{(i)} - {\theta }^{T}x^{(i)} y(i)=θTx(i)+ε(i)?ε(i)=y(i)?θTx(i)
其中,每個樣本的誤差 ε ( i ) \varepsilon ^{(i)} ε(i) 都是獨立同分布的,服從均值為 0 0 0 的高斯分布。

高斯分布的概率密度函數如下所示:
f ( x ) = 1 2 π σ ? e ? ( x ? μ ) 2 2 σ 2 f(x) = \frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(x-\mu )}^{2}}{2{\sigma }^{2}}} f(x)=2π ?σ1??e?2σ2(x?μ)2?
把誤差帶入進去,可得到公式:
f ( ε ( i ) ) = 1 2 π σ ? e ? ( ε ( i ) ) 2 2 σ 2 = 1 2 π σ ? e ? ( y ( i ) ? θ T x ( i ) ) 2 2 σ 2 f({\varepsilon }^{(i)}) = \frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{({\varepsilon }^{(i)})}^{2}}{2{\sigma }^{2}}} = \frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} f(ε(i))=2π ?σ1??e?2σ2(ε(i))2?=2π ?σ1??e?2σ2(y(i)?θTx(i))2?
該公式表示誤差趨于 0 0 0 的概率,或者說預測值 θ T x ( i ) {\theta }^{T}x^{(i)} θTx(i) 趨近于真實值的概率,這個概率自然是越大越好。

在這里插入圖片描述

我們的最終目的是要求出最合適的 θ 0 \theta _0 θ0? θ 1 \theta _1 θ1? θ 2 \theta _2 θ2?,而似然函數是統計學中用于估計參數的一個函數。因此在給出觀測數據的前提下,我們可以利用似然函數來推斷出未知的參數值。

構建的似然函數如下所示:
L ( θ ) = ∏ i = 1 m 1 2 π σ ? e ? ( y ( i ) ? θ T x ( i ) ) 2 2 σ 2 L(\theta ) = \displaystyle\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} L(θ)=i=1m?2π ?σ1??e?2σ2(y(i)?θTx(i))2?
其中,在各個樣本都符合獨立同分布的情況下,聯合概率密度就等于各樣本概率密度的乘積,因此這里用了累乘。

想在乘法中求解出參數 θ \theta θ,也許是一個比較難的事,但如果能把乘法轉換成加法,對于參數的求解可能就容易了許多。鑒于此,我們可以使用對數似然函數來進行參數的求解。

構建的對數似然函數如下所示:
l o g L ( θ ) = l o g ∏ i = 1 m 1 2 π σ ? e ? ( y ( i ) ? θ T x ( i ) ) 2 2 σ 2 logL(\theta ) = log\displaystyle\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} logL(θ)=logi=1m?2π ?σ1??e?2σ2(y(i)?θTx(i))2?
將上述公式進行展開化簡:
l o g L ( θ ) = ∑ i = 1 m l o g 1 2 π σ ? e ? ( y ( i ) ? θ T x ( i ) ) 2 2 σ 2 = m l o g 1 2 π σ + ∑ i = 1 m l o g e ? ( y ( i ) ? θ T x ( i ) ) 2 2 σ 2 = m l o g 1 2 π σ ? 1 σ 2 ? 1 2 ∑ i = 1 m ( y ( i ) ? θ T x ( i ) ) 2 logL(\theta ) = \displaystyle\sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi }\sigma }·{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} \\= mlog\frac{1}{\sqrt{2\pi }\sigma } + \displaystyle\sum_{i=1}^{m}log{e}^{-\frac{{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2}}{2{\sigma }^{2}}} \\= mlog\frac{1}{\sqrt{2\pi }\sigma } - \frac{1}{{\sigma }^{2}}·\frac{1}{2}\displaystyle\sum_{i=1}^{m}{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2} logL(θ)=i=1m?log2π ?σ1??e?2σ2(y(i)?θTx(i))2?=mlog2π ?σ1?+i=1m?loge?2σ2(y(i)?θTx(i))2?=mlog2π ?σ1??σ21??21?i=1m?(y(i)?θTx(i))2
我們要讓似然函數越大越好,因此上述公式等價于讓下述目標函數的目標值越小越好:
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) ? θ T x ( i ) ) 2 J(\theta ) = \frac{1}{2}\displaystyle\sum_{i=1}^{m}{(y^{(i)} - {\theta }^{T}x^{(i)})}^{2} J(θ)=21?i=1m?(y(i)?θTx(i))2
我們首先對上述目標函數進行展開:
J ( θ ) = 1 2 ( X θ ? y ) T ( X θ ? y ) = 1 2 ( θ T X T ? y T ) ( X θ ? y ) = 1 2 ( θ T X T X θ ? θ T X T y ? y T X θ + y T y ) = 1 2 ( 2 X T X θ ? X T y ? ( y T X ) T ) = X T X θ ? X T y J(\theta ) = \frac{1}{2}{(X\theta - y)}^{T}(X\theta - y) \\ = \frac{1}{2}{(\theta ^TX^T - y^T)}(X\theta - y) \\ = \frac{1}{2}(\theta ^TX^TX\theta - \theta ^TX^Ty - y^TX\theta + y^Ty) \\ = \frac{1}{2}(2X^TX\theta - X^Ty - (y^TX)^T) \\ = X^TX\theta - X^Ty J(θ)=21?(?y)T(?y)=21?(θTXT?yT)(?y)=21?(θTXT?θTXTy?yT+yTy)=21?(2XT?XTy?(yTX)T)=XT?XTy
根據展開的公式推出參數值:
θ = ( X T X ) ? 1 X T y \theta = (X^TX)^{-1}X^Ty θ=(XTX)?1XTy
通過這種方法可以進行參數值 θ \theta θ 的求解,但是在上式中, X T X X^TX XTX 不一定是可逆的,也就是說不一定能求解出參數值 θ \theta θ

鑒于上述問題,我們需要考慮使用其他方法來求解合適的 θ \theta θ,而機器學習就是非常好的方法。一個常規的思路是,我們喂給機器一堆數據,然后告訴它該用什么樣的方式學習,并讓它朝著這個方向去做(目標/損失函數),每一次學習一點,經過多次迭代優化后,最終收斂至一個穩定的狀態。

在對目標函數進行求解時,通常會用到梯度下降法來進行優化。梯度下降是一種常用的優化算法,用于求解目標函數的最小值或最大值。它的基本思想是通過迭代的方式,沿著目標函數的負梯度方向逐步更新參數,以逐漸接近最優解。具體來說,對于一個可微的目標函數,我們希望找到使其取得最小值的參數。梯度下降通過以下步驟進行迭代更新:

  1. 初始化參數:選擇初始參數值作為起點
  2. 計算梯度:計算目標函數關于參數的梯度(導數)
  3. 更新參數:將當前參數值沿著負梯度方向移動一小步,更新參數值
  4. 重復步驟 2 和步驟 3,直到滿足停止條件(如達到最大迭代次數或梯度變化很小)

梯度方向指示了函數上升最快的方向,而負梯度方向則指示了函數下降最快的方向。因此,通過不斷更新參數,梯度下降算法可以朝著函數取得最小值的方向逐漸迭代,最終接近或達到最優解。

梯度下降算法有多種變體,如批量梯度下降(Batch Gradient Descent)、隨機梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent),它們在每次更新參數時所使用的樣本數量不同。這些變體具有不同的優缺點,適用于不同的問題和數據集規模。

回到上面的問題,此時的目標/損失函數如下所示:
J ( θ ) = 1 2 m ∑ i = 1 m ( y i ? θ T x i ) 2 J(\theta ) = \frac{1}{2m}\displaystyle\sum_{i=1}^{m}(y^i - \theta ^Tx^i)^2 J(θ)=2m1?i=1m?(yi?θTxi)2
當使用批量梯度下降時,目標函數關于第 j j j 個參數的梯度可以寫成如下形式:
δ J ( θ ) δ θ j = ? 1 m ∑ i = 1 m ( y i ? θ T x i ) x j i \frac{\delta J(\theta)}{\delta \theta _j} = -\frac{1}{m}\displaystyle\sum_{i=1}^{m}(y^i - \theta ^Tx^i){x}_{j}^{i} δθj?δJ(θ)?=?m1?i=1m?(yi?θTxi)xji?
更新參數后,新的參數可以表示成如下形式:
θ j ′ = θ j + α ? 1 m ∑ i = 1 m ( y i ? θ T x i ) x j i {\theta }_{j}^{'} = \theta _j + \alpha · \frac{1}{m}\displaystyle\sum_{i=1}^{m}(y^i - \theta ^Tx^i){x}_{j}^{i} θj?=θj?+α?m1?i=1m?(yi?θTxi)xji?
當使用隨機梯度下降時,目標函數關于第 j j j 個參數的梯度可以寫成如下形式:
δ J ( θ ) δ θ j = ? ( y i ? θ T x i ) x j i \frac{\delta J(\theta)}{\delta \theta _j} = -(y^i - \theta ^Tx^i){x}_{j}^{i} δθj?δJ(θ)?=?(yi?θTxi)xji?
更新參數后,新的參數可以表示成如下形式:
θ j ′ = θ j + α ? ( y i ? θ T x i ) x j i {\theta }_{j}^{'} = \theta _j + \alpha · (y^i - \theta ^Tx^i){x}_{j}^{i} θj?=θj?+α?(yi?θTxi)xji?
當使用小批量梯度下降時,目標函數關于第 j j j 個參數的梯度可以寫成如下形式:
δ J ( θ ) δ θ j = 1 10 ∑ k = i i + 9 ( θ T x k ? y k ) x j k \frac{\delta J(\theta)}{\delta \theta _j} = \frac{1}{10}\displaystyle\sum_{k=i}^{i+9}(\theta ^Tx^k - y^k){x}_{j}^{k} δθj?δJ(θ)?=101?k=ii+9?(θTxk?yk)xjk?
更新參數后,新的參數可以表示成如下形式:
θ j ′ = θ j ? α ? 1 10 ∑ k = i i + 9 ( θ T x k ? y k ) x j k {\theta }_{j}^{'} = \theta _j - \alpha · \frac{1}{10}\displaystyle\sum_{k=i}^{i+9}(\theta ^Tx^k - y^k){x}_{j}^{k} θj?=θj??α?101?k=ii+9?(θTxk?yk)xjk?
批量梯度下降容易得到最優解,但是由于每次都要考慮所有樣本,因此速度很慢;隨機梯度下降每次找一個樣本,迭代速度快,但不一定每次都朝著收斂的方向前進(存在離群點、噪聲點等干擾);小批量梯度下降比較實用,用的也比較多。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161805.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161805.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161805.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

被DDOS了怎么辦 要如何應對

DDoS攻擊的特點和類型 1. 特點 DDoS攻擊的特點是通過大量合法的請求或者無效的請求,消耗目標服務器的網絡帶寬和系統資源,使其無法正常運行。攻擊者通常使用多個主機發起攻擊,以達到更高的攻擊效果。 2. 常見類型 (1)S…

SPASS-ARIMA模型

基本概念 在預測中,對于平穩的時間序列,可用自回歸移動平均(AutoRegres- sive Moving Average, ARMA)模型及特殊情況的自回歸(AutoRegressive, AR)模型、移動平均(Moving Average, MA)模型等來擬合,預測該時間序列的未來值,但在實際的經濟預測中,隨機數據序列往往…

macos端文件夾快速訪問工具 Default Folder X 最新for mac

Default Folder X 是一款實用的工具,提供了許多增強功能和快捷方式,使用戶能夠更高效地瀏覽和管理文件。它的快速導航、增強的文件對話框、自定義設置和快捷鍵等功能,可以大大提升用戶的工作效率和文件管理體驗。 快速導航和訪問:…

Java開發中常用的工具類方法

一、JDK自帶工具包 (java.lang*.java.util.*等) 面是Java中jdk中附帶的一些常見工具類及其方法和示例的簡介 工具類 / 類所在包 常用方法 描述 示例 Arrays (java.util) sort() 對數組進行排序 Arrays.sort(arr); binarySearch() 在數組中執行…

S3的概念和使用

工作需要測試數據庫從 S3(Simple Storage Service)導入數據文件,公司有私有S3環境。 S3是一種對象存儲,數據模型很簡單,就是key-value,key就是一個任意字符串,value是一個文件。 S3的功能就是…

chromium證書校驗流程SM2WithSM3(C++源碼說明)

文章目錄 一、證書鏈二、證書鏈校驗過程三、證書鏈簽名校驗圖解四、C++源碼4.1 編譯TASSL4.2 代碼一,直接讀取簽名值方法4.3 代碼二(推薦)4.3.1 獲取證書的簽名數據4.3.2 獲取證書的簽名值4.3.3 從證書中獲取公鑰4.3.4 完整代碼4.3.5 代碼地址五、補充說明5.1 SM2的Z值算法以…

2023亞太杯數學建模B題思路分析 - 玻璃溫室中的微氣候法規

1 賽題 問題B 玻璃溫室中的微氣候法規 溫室作物的產量受到各種氣候因素的影響,包括溫度、濕度和風速[1]。其中,適 宜的溫度和風速是植物生長[2]的關鍵。為了調節玻璃溫室內的溫度、風速等氣候因素 , 溫室的設計通常采用帶有溫室風扇的通風系統&#xf…

《數學之美》第三版的讀書筆記一、主要是馬爾可夫假設、隱馬爾可夫模型、圖論深度/廣度、PageRank相關算法、TF-IDF詞頻算法

1、馬爾可夫假設 從19世紀到20世紀初,俄國有個數學家叫馬爾可夫他提出了一種方法,假設任意一個詞出現的概率只同它前面的詞有關。這種假設在數學上稱為馬爾可夫假設。 2、二元組的相對頻度 利用條件概率的公式,某個句子出現的概率等于每一個詞出現的條件概率相乘,于是可展…

【計算機網絡筆記】路由算法之層次路由

系列文章目錄 什么是計算機網絡? 什么是網絡協議? 計算機網絡的結構 數據交換之電路交換 數據交換之報文交換和分組交換 分組交換 vs 電路交換 計算機網絡性能(1)——速率、帶寬、延遲 計算機網絡性能(2)…

STM32_5(中斷)

中斷系統 中斷:在主程序運行過程中,出現了特定的中斷觸發條件(中斷源),使得CPU暫停當前正在運行的程序,轉而去處理中斷程序,處理完成后又返回原來被暫停的位置繼續運行中斷優先級:當…

如何用java的虛擬線程連接數據庫

我覺得這個很簡單 首先確保你idea支持jdk21. 然后把idea編譯成的目標字節碼設置為21版本的 然后編寫代碼。 創建虛擬線程的方式有: Runnable runnable () -> {System.out.println("Hello, world!"); };// 創建虛擬線程 Thread virtualThread Thre…

從0開始學習JavaScript--JavaScript迭代器

JavaScript迭代器(Iterator)是一種強大的編程工具,它提供了一種統一的方式來遍歷不同數據結構中的元素。本文將深入探討JavaScript迭代器的基本概念、用法,并通過豐富的示例代碼展示其在實際應用中的靈活性和強大功能。 迭代器的…

【計算思維】藍橋杯STEMA 科技素養考試真題及解析 2

1、蘭蘭有一些數字卡片,從 1 到 100 的數字都有,她拿出幾張數字卡片按照一定順序擺放。想一想,第 5 張卡片應該是 A、11 B、12 C、13 D、14 答案:C 2、按照下圖的規律,陰影部分應該填 A、 B、 C、 D、 答案&am…

spark如何配置checkpoint

1、sparkSession配置checkpoint的方法 # step1: 在conf中添加checkpoint的保存地址 val spark SparkSession.builder.appName(JobRegister.getJobName("xxx", s"xxxx")).config("hive.exec.dynamic.partition", "true").config(&quo…

2023亞太杯數學建模競賽(亞太賽)選題建議+初步分析

如下為C君的2023亞太杯數學建模競賽&#xff08;亞太賽&#xff09;選題建議初步分析&#xff1a; 提示&#xff1a;DS C君認為的難度&#xff1a;C<A<B&#xff0c;開放度&#xff1a;A<B<C。 以下為ABC題選題建議及初步分析&#xff1a; A題&#xff1a;Image…

openssl+ SM2 + linux 簽名校驗開發實例(C++)

文章目錄 一、SM2校驗理論基礎二、SM2簽名校驗開發實例&#xff08;C&#xff09; 一、SM2校驗理論基礎 SM2的校驗過程是使用橢圓曲線上的公鑰驗證簽名的有效性。以下是SM2校驗的理論基礎相關知識點&#xff1a; SM2簽名算法&#xff1a; SM2的校驗基于橢圓曲線數字簽名算法&a…

Vue批量全局處理undefined和null轉為““ 空字符串

我們在處理后臺返回的信息&#xff0c;有的時候返回的是undefined或者null&#xff0c;這種字符串容易引起用戶的誤解&#xff0c;所以需要我們把這些字符串處理一下。 如果每個頁面都單獨處理&#xff0c;那么頁面會很冗余&#xff0c;并且后期如果有修改容易遺漏&#xff0c…

SQL面試題挑戰:找出使用相同ip的用戶

問題&#xff1a;現在有一張用戶登陸日志表&#xff0c;該表包括user_id,ip,log_time三個字段&#xff0c;現在需要找出共同使用ip數量超過3個(含)的所有用戶對。比如下面的示例數據&#xff0c;101和102用戶共同使用的ip為4個&#xff0c;101和103用戶共同使用的ip為3個&#…

二十二、數組(4)

本章概要 隨機生成泛型和基本數組 隨機生成 我們可以按照 Count.java 的結構創建一個生成隨機值的工具&#xff1a; Rand.java import java.util.*; import java.util.function.*;import static com.example.test.ConvertTo.primitive;public interface Rand {int MOD 10_0…

5-1 Java 網絡編程

第1關&#xff1a;URL類與InetAddress類 任務描述 本關任務&#xff1a;了解網絡編程基礎知識。 相關知識 為了完成本關任務&#xff0c;你需要掌握&#xff1a;1.URL&#xff1b;2.InetAddress。 URL 統一資源定位符&#xff08;Uniform Resource Locator&#xff0c;縮…