回歸——數學公式推導全過程

文章目錄

一、案例引入

二、如何求出正確參數

1. 最速下降法

1)多項式回歸

2)多重回歸

2.?隨機梯度下降法


一、案例引入

以Web廣告和點擊量的關系為例來學習回歸,假設投入的廣告費和點擊量呈現下圖對應關系。

思考:如果花了200元的廣告費,廣告的點擊量會是多少呢?

機器學習就是從給出的數據(訓練數據)中進行學習,當你提供未知數據(200廣告費)后,給出預測值(500左右點擊量)。

實現原理:把圖想象為函數,只要知道通過圖中各點的函數的形式,就能根據廣告費得知點擊量。

定義一次函數的表達式? ? ? ??"西塔0,西塔1"? 我們稱之為參數,也就是一次函數的斜率和截距。

將訓練數據中的廣告費代入fθ(x),把得到的點擊量與訓練數據中的點擊量相比較,然后找出使二者的差最小的θ。

假設有n個訓練數據,那么它們的誤差之和可以用這樣的表達式表示。這個表達式稱為目標函數,E(θ)的E是誤差的英語單詞Error的首字母。

對每個訓練數據的誤差取平方之后,全部相加,然后乘以1/2。這么做是為了找到使E(θ)的值最小
的θ。這樣的問題稱為最優化問題。(取平方是為了讓誤差值都大于0,最后乘以1/2是為了讓后面計算微分更方便而加上去的)

二、如何求出正確參數

1. 最速下降法

比如有一個表達式為的二次函數,它的最小值是g(x)=0,出現在 x =1時。

將g(x)展開后取微分:

增減表如下所示:

比如在x=3這一點,為了使g(x)的值變小,我們需要向左移動 x,也就是必須減小x

如果是在另一側的x=?1這一點,為了使g(x)的值變小,我們需要向右移動x,也就是必須增加x

只要向與導數的符號相反的方向移動x,g(x)就會自然而然地沿著最小值的方向前進了

用表達式展示出來:? ? ? ? 這種方法稱為最速下降法或梯度下降法

(A:=B這種寫法,它的意思是通過B來定義A。)

η讀作“伊塔”,稱為學習率的正的常數。根據學習率的大小, 到達最小值的更新次數也會發生變化。換種說法就是收斂速度會不同。

假設η=0.1,從x=3開始

?x := 3?0.1×(2×3?2) =3 ?0.4=2.6
?x := 2.6?0.1×(2×2.6?2)=2.6?0.3=2.3
?x := 2.3?0.1×(2×2.3?2)=2.3?0.2=2.1
?x := 2.1?0.1×(2×2.1?2)=2.1?0.2=1.9

而當η較小時,移動量也變小,更新次數就會增加,值也會不斷朝著收斂的方向而去。

回過頭來看一下上面案例中的目標函數E(θ)

這個目標函數和剛才例子中的g(x)同樣是開口向上的形狀,所以剛才推導的過程也同樣適用于它。不過這個目標函數中包含fθ(x),從表達式(一次函數)中又可以看出,fθ(x)擁有θ0和 θ1兩個參數。也就是說這個目標函數是擁有θ0和θ1的雙變量函數,所以不能用普通的微分,而要用偏微分。如此一來,更新表達式就是這樣的。

E(θ)中有fθ(x),而fθ(x)中又有θ0,所以使用復合函數的微分

? ? ?然后再像這樣階梯性地進行微分? ??

? ? ??

左側最后一行,常數與1/2相抵消了,這就是一開始為什么乘以1/2。

最后得到對θ0求導的表達式:

? ?

同樣對θ1求導得出:

所以參數θ0和θ1的表達式是這樣:

根據這個表達式來更新θ0 和θ1,找到正確的fθ(x),然后輸入任意的廣告費,就可以得到相應的點擊量。這樣我們就能根據廣告費預測點擊量了。

1)多項式回歸

對于一開始在圖中的數據點來說,其實曲線比直線擬合得更好。

把fθ(x)定義為二次函數,就能用它來表示這條曲線了

或者用更大次數的表達式也可以。這樣就能表示更復雜的曲線了

對于要解決的問題,在找出最合適的表達式之前,需要不斷地去嘗試,雖然次數越大擬合得越好,但難免也會出現過擬合的問題。

回到剛才二次函數,最終的參數更新表達式是這樣的:

像這樣增加函數中多項式的次數,然后再使用函數的分析方法被稱為多項式回歸。

2)多重回歸

之前只是根據廣告費來預測點擊量,實際生活中決定點擊量的除了廣告費之外,還有廣告的展示位置和廣告版面的大小等多個要素。

為了讓問題盡可能地簡單,我們只考慮廣告版面的大小,設廣告費為x1、廣告欄的寬為x2、廣告欄的高為x3,那么fθ可以 表示如下:

在分別求目標函數對θ0,··· ,θ3的偏微分,然后更新參數之前,我們先試著簡化表達式的寫法。

把參數θ和變量x看作向量:

把θ轉置之后,計算它與x相乘的結果,也就是:

之前用多項式表示的fθ,可以像這樣用向量來表:

還是設u=E(θ)、v =fθ(x),為了一般化,對第j個參數θj偏微分的表達式

? ? ? ?

? ??

那么第j個參數的更新表達式就是這樣:

像這樣包含了多個變量的回歸稱為多重回歸

2.?隨機梯度下降法

在引入隨機梯度下降法之前,我們先來看下最速下降法的一些缺點:

1. 計算量大、計算時間長

當訓練數據很多的時候,最速下降法要對所有的訓練數據都重復進行計算。

2.?容易陷入局部最優解

給出稍微復雜一點形狀的函數

用最速下降法來找函數的最小值時,必須先要決定從哪個x開始找起。之前用g(x)說明的時候是從x=3或者x=?1開始的。選用隨機數作為初始值的情況比較多。不過這樣每次初始值都會變,進而導致陷入局部最優解的問題

假設這張圖中標記的位置就是初始值,從這個點開始找,可以求出最小值

把下圖所示作為初始值位置,沒計算完就會停止。這就是陷入局部最優解。

最速下降法的參數更新表達式:

這個表達式使用了所有訓練數據的誤差,而在隨機梯度下降法中會隨機選擇一個訓練數據,并使用它來更新參數。這個表達式中的k就是被隨機選中的數據索引。

最速下降法更新1次參數的時間,隨機梯度下降法可以更新n次。此外,隨機梯度下降法由于訓練數據是隨機選擇的,更新參數時使用的又是選擇數據時的梯度,所以不容易陷入目標函數的局部最優解

此外還有隨機選擇m個訓練數據來更新參數的做法,設隨機選擇m個訓練數據的索引的集合為K,那么我們這樣來更新參數:

假設訓練數據有100個,那么在m=10時,創建一個有10個隨機數的索引的集合,例如K={61, 53, 59, 16, 30, 21, 85, 31, 51, 10}。這種做法被稱為小批量(mini-batch)梯度下降法。

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

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

相關文章

微服務中的服務發現

微服務中的服務發現 什么是服務發現 服務發現是微服務架構中的關鍵機制,用于確定各個微服務的地址。例如,在一個 API Server 服務中,我們可能需要調用 User 服務來處理用戶注冊、登錄和信息查詢,也可能需要 Product 服務來獲取商…

C#與西門子PLC的六大通信庫

C#與西門子PLC的六大通信庫: 一、S7.NET S7.NET是一款開源的S7協議通信庫,支持西門子S7通信。 二、Sharp7 Sharp7與S7.NET一樣,是一款.NET版本的S7通信庫。 三、Snap7 Snap7是一個開源的C通信庫,支持西門子S7通信。 四、Prodave P…

IOS接入微信方法

導入SDK 和配置 SDK 的不做介紹; 1 在IOS 開發者中心 Identifiers 打開‘Associated Domains’ 2 建立一個文件(不帶后綴的)apple-app-site-association, teamid在 IOS 開發者中心的會員找,appid在 xcode里面找 {"applin…

DHCPv6 Stateless Vs Stateful Vs Stateless Stateful

DHCPv6常見配置模式 在 IPv6 網絡中,DHCPv6 的 Stateless(無狀態)、Stateful(有狀態) 和 Stateless + Stateful(混合模式) 是三種常見的配置模式。它們的主要區別在于客戶端如何獲取 IPv6 地址和其他網絡配置信息(如 DNS 服務器)。 Stateless(無狀態)模式 Statele…

HTTPS協議—加密算法和中間攻擊人的博弈

活動發起人小虛竹 想對你說: 這是一個以寫作博客為目的的創作活動,旨在鼓勵大學生博主們挖掘自己的創作潛能,展現自己的寫作才華。如果你是一位熱愛寫作的、想要展現自己創作才華的小伙伴,那么,快來參加吧&#xff01…

Java替換jar包中class文件

在更新java應用版本的運維工作中,由于一些原因,開發沒辦法給到完整的jar包,這個時候,就可以只將修改后的某個Java類的class文件替換掉原來iar包中的class文件,重新啟動服務即可: 1、將jar包和將要替換的cl…

【UI設計】一些好用的免費圖標素材網站

阿里巴巴矢量圖標庫https://www.iconfont.cn/國內最大的矢量圖標庫之一,擁有 800 萬 圖標資源。特色功能包括團隊協作、多端適配、定制化編輯等,適合企業級項目、電商設計、中文產品開發等場景。IconParkhttps://iconpark.oceanengine.com/home字節跳動…

【10】高效存儲MongoDB的用法

目錄 一、什么是MongoDB 二、準備工作 (1)安裝MongoDB ?(2)安裝pymongo庫 三、連接MongoDB 四、指定數據庫 五、指定集合 六、插入數據 (1) insert 方法 (2)insert_one(…

MATLAB+Arduino利用板上的按鍵控制板上Led燈

幾年不使用,之前的知識都忘掉了。需要逐步撿起來。 1 熟悉按鍵的使用 2熟悉燈的控制 1 電路 我們將通過 MATLAB 的 Arduino 支持包與 Arduino 板通信,讀取按鍵狀態并控制 LED 燈的亮滅。 按鍵:連接到 Arduino 的數字引腳(例如…

《深度學習》——YOLOv3詳解

文章目錄 YOLOv3簡介YOLOv3核心原理YOLOv3改進YOLOv3網絡結構 YOLOv3簡介 YOLOv3(You Only Look Once, version 3)是一種先進的實時目標檢測算法,由 Joseph Redmon 和 Ali Farhadi 開發。它在目標檢測領域表現出色,具有速度快、精…

【項目設計】網頁版五子棋

文章目錄 一、項目介紹1.項目簡介2.開發環境3.核心技術4.開發階段 二、Centos-7.6環境搭建1.安裝wget工具2.更換軟件源(yum源)3.安裝scl工具4.安裝epel軟件源5.安裝lrzsz傳輸工具6.安裝高版本gcc/g編譯器7.安裝gdb調試器8.安裝git9.安裝cmake10.安裝boost庫11.安裝Jsoncpp庫12.…

在coze工作流中將數據回寫到飛書表格

在coze工作流中將數據回寫到飛書表格

并查集(競賽)

一、模型建立 本質就是一個數組,數組的下標對應節點的編號,數組的值對應對應編號的節點的父節點。規定根節點的父節點是自己。 規定三個集合的根節點分別是1 4 6 二、并查集操作并實現 并查集主要操作:查找一個節點的父節點,判…

Leetcode 刷題筆記1 圖論part04

leetcode 110 字符串接龍 def judge(s1, s2):count 0for i in range(len(s1)):if s1[i] ! s2[i]:count 1return count 1if __name__ __main__:n int(input())begin_str, end_str map(str, input().split())if begin_str end_str:print(0)exit()strlist []for _ in ran…

從擴展黎曼澤塔函數構造物質和時空的結構-7

有了先前關于電荷之間吸引和排斥關系的頻率分析圖,我們可以按照類似的方法,對磁場做一樣的分析,即分析磁體同極相斥,異極相吸的本質。 我們知道上圖得以成立的原因在于磁感線,如下圖所示的排布方式, 磁體的…

AI比人腦更強,因為被植入思維模型【18】萬物系統思維模型

把事物看成鏈,看成網,看成生態。 定義 萬物系統思維模型是一種將宇宙萬物視為一個相互關聯、相互作用的整體系統的思維方式。它強調從系統的角度去認識、分析和解決問題,認為系統中的各個要素之間存在著復雜的相互關系,這些關系不…

Qt-Q_ENUM宏和QMetaEnum類

Q_ENUM是一個宏定義,它的作用是將一個枚舉類型注冊到元對象系統,從而能夠通過QMetaEnum類獲得一些關于enum類型的一些信息,例如獲取enum類型的名稱字符串,enum值和字符串互相轉換,enum類型保存在QVariant中&#xff0c…

MongoDB 配合python使用的入門教程

MongoDB 入門教程 1. 安裝 MongoDB 首先,你需要在你的機器上安裝MongoDB。你可以從 MongoDB官網 下載并安裝 Community 版本。安裝完成后,啟動MongoDB服務。 # 在Linux/Mac上啟動MongoDB mongod# 在Windows上,你可以通過Windows服務啟動Mo…

【云馨AI-大模型】大模型的開發和應用中,Python、PyTorch和vLLM關系概括

說明 1. Python 定位:基礎編程語言。作用:Python 是大模型生態系統的核心語言,幾乎所有深度學習框架(如 PyTorch、TensorFlow)和工具鏈(如 vLLM)都通過 Python 接口提供服務。特點&#xff1a…

西門子200smart之modbus_TCP(做主站與第三方設備)通訊

西門子200smart做MODBUS_TCP主站通訊,只有一個指令。設置相關參數即可完成讀寫操作。整 個過程非常復雜,操作非常嚴謹。此次,我們使用匯川EASY系列PLC做從站,完成演示。關于匯川案例的演示,詳見匯川EASY系列之以太網通訊(MODBUS_TCP做從站)-CSDN博客 關于主站和從站的介…