04 基于sklearn的機械學習-梯度下降(上)

梯度下降

一 、為什么要用到梯度下降?

正規方程的缺陷:

  1. 非凸函數問題:損失函數非凸時,導數為0會得到多個極值點(非唯一解)

  2. 計算效率低:逆矩陣運算時間復雜度 O(n3),特征量翻倍時計算時間增為8倍(16特征需512秒)。

?

結論:梯度下降是高效求解大規模、非凸問題的通用優化算法。

二、梯度下降核心思想

目標:以最快的速度找到損失函數 loss的最小值點(最優參數 W)。

原理類比

人在山地走向谷底,每一步沿當前最陡峭下坡方向行走。

步驟 1:判斷 “下坡最陡的方向”

你低頭觀察腳下的地面:

  • 左邊地面微微向下傾斜,坡度較緩;

  • 正前方地面明顯向下傾斜,坡度最陡;

  • 右邊地面甚至有點向上傾斜(上坡)。

這里的 “坡度” 就是梯度—— 它不僅告訴你 “哪個方向是下坡”,還告訴你 “哪個方向下坡最陡”(梯度的方向),以及 “陡到什么程度”(梯度的大小)。

步驟 2:沿最陡方向走一小步

既然正前方下坡最陡,你就朝著正前方走一步(步長不能太大,否則可能踩空或錯過轉彎)。這一步對應參數更新

  • 方向:沿 “最陡下坡方向”(負梯度方向,因為梯度本身是 “上坡最陡” 的方向);

  • 步長:對應 “學習率”(不能太大,否則可能直接沖到山的另一側;也不能太小,否則走得太慢)。

步驟 3:重復調整方向,逐步逼近山腳

走完一步后,你站在新的位置,再次觀察腳下的坡度(重新計算梯度),發現此時 “左前方” 變成了最陡的下坡方向。于是你調整方向,沿左前方再走一步…… 這個過程不斷重復:每次都根據當前位置的坡度調整方向,走一小步,直到走到坡度幾乎為 0 的平地(山腳)

  • 梯度 g是損失函數 loss對參數 W 的偏導數。

    • 如果 g < 0, w 就變大 ; 如果g > 0 , w 就變小(目標左邊是斜率為負右邊為正 )

  • 沿梯度反方向更新參數:W=W?α?g(α 為學習率)。

  • 然后判斷是否收斂(loss變化很小就收斂),如果收斂就跳出迭代,如果沒收斂就再次更新參數 W...

三、單參數(w)梯度下降實現

1. 更新公式

2. 參數α更新邏輯
    位置梯度?gg更新方向操作
    最小值左側g<0w 增大w=w?(負值)→右移?
    最小值右側g>0w?減小w=w?(正值)→左移?

    示例流程(初始?w=0.2,α=0.01):

    1. 計算 : 假設w=0.2時g=0.24?→?w_new=0.2?0.01×0.24=0.1976

    2. 迭代更新直至收斂(g最小)。

    # 定義總損失
    def loss(w):return 10*(w**2)-15.9*w+6.5# 定義梯度
    def g(w):return 20*w-15.9# 定義模型
    def model(x,w):return x*w# 繪制模型
    def draw_line(w):pt_x = np.linspace(0,5,100)pt_y = model(pt_x,w)plt.plot(pt_x,pt_y)#隨機初始化w
    w =10# 迭代
    for i in range(100):print('w:',w,'loss:',loss(w))# 學習率lr = 1/(i+100)# 更新ww = w-lr*g(w)x=np.array([4.2,4.2, 2.7, 0.8, 3.7, 1.7, 3.2])
    y=np.array([3.8,2.7, 2.4, 1.,  2.8, 0.9, 2.9])   
    plt.plot(x,y,'o')
    draw_line(w)
    plt.show()

    四、學習率(α)

    學習率α是控制參數更新的 “步長”,是影響收斂的核心超參數:

    • 過小:收斂緩慢,需大量迭代;
    • 過大:可能跳過最優解,導致損失震蕩甚至發散;

    一般我們把它設置為0.1,0.01,0.001甚至更小。一般情況下學習率在迭代過程中是不變的,但是也可以設置為動態調整,即隨著迭代次數逐漸變小,越接近目標W '步子'邁的更小,以更精準地找到W。

    五、多參數(如 w0,w1)梯度下降實現

    假設損失函數是有兩個w1,w2特征的椎體

    1. 初始化:隨機生成正態分布參數 W(如 w0,w1)。

    2. 計算梯度g:求當前 loss 的梯度 g

    3. 更新參數:W=W?α?g

    4. 收斂判斷

      • loss變化量 < 閾值

      • 或達到預設迭代次數(如1000次)。

    5. 終止:滿足條件則輸出 W;否則返回步驟2。

    假設loss = (100w1 + 200w2 +1000)**2

    import numpy as np
    # 假設總損失
    def loss(w1,w2):return (100*w1 + 200*w2 +1000)**2
    ?
    # 梯度
    # 以w1為參數的梯度
    def g1(w1,w2):return 2*(100*w1 + 200*w2 +1000)*100
    ?
    # 以w2為參數的梯度
    def g2(w1,w2):return 2*(100*w1 + 200*w2 +1000)*200
    ?
    # 初始化w1,w2
    w1 = 10
    w2 = 10
    for i in range(50):print('w1:',w1,'w2:',w2,'loss:',loss(w1,w2))w1,w2 = w1-0.001*g1(w1,w2), w2-0.01*g2(w1,w2)
    ?

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

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

    相關文章

    淘寶 API HTTP/2 多路復用與連接優化實踐:提升商品數據采集吞吐量

    一、引言?隨著電商行業的蓬勃發展&#xff0c;對淘寶平臺商品數據的采集需求日益增長。無論是市場調研公司分析市場趨勢、電商平臺整合商品資源&#xff0c;還是商家進行競品分析&#xff0c;都需要高效、穩定地獲取大量淘寶商品數據。然而&#xff0c;傳統的 HTTP 協議在面對…

    javascript中call、apply 和 bind 的區別詳解

    文章目錄深入淺出&#xff1a;JavaScript 中的 call、apply 和 bind一、三位魔法師的共同使命二、各顯神通的魔法師們1. call - 即時通訊專家2. apply - 批量處理高手3. bind - 預約服務大師三、魔法師們的對比表格四、魔法師們的實際應用1. 借用方法2. 函數柯里化3. 事件處理五…

    【PHP】接入百度AI開放平臺人臉識別API,實現人臉對比

    目錄 一、需求 二、準備工作 1、申請服務 2、創建應用&#xff0c;獲取開發密鑰 3、官方開發文檔 4、測試人像圖片 三、PHP接入 1、鑒權&#xff0c;獲取access_token 2、人臉對比 四、完整代碼 一、需求 現在人臉識別、人臉對比技術越來越成熟&#xff0c;使用越來越…

    【東楓科技】DreamHAT+

    DreamHAT 是一款頂部附加硬件 (HAT) 套件&#xff0c;可為 Raspberry Pi 提供 60GHz 毫米波雷達供您使用。 全尺寸 HAT 包含一個英飛凌 BGT60TR13C 芯片&#xff0c;具有單個發射天線和三個接收器&#xff08;TX/RX&#xff09;&#xff0c;通過 GPIO 引腳和 SPI 連接到 Raspbe…

    Spring Boot + MongoDB:從零開始手動配置 MongoConfig 實戰

    前言 你以為只要寫上 spring.data.mongodb.*,就能一勞永逸,MongoDB 立馬聽話?別天真,這只是入門級操作,像是拿個自動擋鑰匙,開個小車溜達溜達,遠遠算不上高手操作。當項目需求變得復雜,連接字符串需要靈活配置,或者多數據源并行作戰時,自動配置的魔法顯得捉襟見肘。…

    建筑節能目標下,樓宇自控系統以高效運行助力節能減碳

    隨著全球氣候變化問題日益嚴峻&#xff0c;節能減排已成為各國政府和企業的重要任務。在建筑領域&#xff0c;樓宇自控系統&#xff08;Building Automation System, BAS&#xff09;作為實現建筑節能目標的關鍵技術&#xff0c;正發揮著越來越重要的作用。根據中國政府發布的《…

    LOVON——面向足式Open-Vocabulary的VLN導航:LLM做任務分解、YOLO11做目標檢測,最后L2MM將指令和視覺映射為動作,且解決動態模糊

    前言 因為項目需要(比如我們在做的兩個展廳講解訂單)&#xff0c;近期我一直在研究VLN相關&#xff0c;有些工作哪怕暫時還沒開源(將來可能會開源)&#xff0c;但也依然會解讀&#xff0c;比如好處之一是構建完整的VLN知識體系&#xff0c;本文便是其中一例 我在解讀過程中&am…

    在線免費的AI文本轉語音工具TTSMaker介紹

    TTSMaker是一個在線的文本轉語音工具&#xff0c; 支持多語言和中文方言&#xff0c;不同的語言和方言單次轉換的字符上限從200-10000 不同&#xff0c;轉換的效果還不錯&#xff0c;聽不出明顯的AI痕跡。 工具的網址是&#xff1a;https://ttsmaker.cn/。 工具的界面如上&…

    【AI問答】PromQL中interval和rate_interval的區別以及Grafana面板的配置建議

    問題1&#xff1a;interval和rate_interval的區別 在PromQL中確實有 $__rate_interval 這個特殊的變量&#xff0c;它與 $__interval 有不同的用途和計算方式。 $__interval vs $__rate_interval 1. $__interval 含義&#xff1a;Grafana計算出的基本時間間隔計算方式&#xff…

    STM32學習記錄--Day5

    今天了解了&#xff1a;中斷中斷有多個類別包括&#xff1a;USART中斷&#xff0c;I2C中斷等&#xff1b;并通過NVIC來分配中斷的優先級EXTIEXTI的內部結構&#xff1a;EXTI線&#x1f527; ??一、EXTI系統核心架構??1. ??中斷源輸入&#xff08;左上區域&#xff09;??…

    CentOS7下同步時間的幾種方式(NTP 、Chrony和systemd-timesyncd)

    文章目錄前言一、NTP (Network Time Protocol) & ntpd1.原理2. 安裝與配置(ntp 包)3.NTPd 優缺點對比二、Chrony1.原理2.安裝與配置 (chrony 包)3. 優點4. 缺點三、systemd-timesyncd1.原理2.安裝與配置 (systemd 自帶)3. 優點4. 缺點四、手動同步工具1.ntpdate(已廢棄&…

    Web3:在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境

    相關文章推薦鏈接Web3專欄https://blog.csdn.net/qq_42392981/category_13016259.html在 VSCode 中基于 Foundry 快速構建 Solidity 智能合約本地開發環境引言1. 開發環境準備&#xff08;Windows&#xff09;1.1 安裝 VSCode1.2 安裝推薦插件1.3 安裝 Foundry1.4 驗證 Forge 和…

    Implement recovery based on PITR using dump file and binlog

    模擬生產場景中需要基于某個事務點的恢復&#xff0c;使用存量備份與存量binlog 生成測試數據 (rootlocalhost) [(none)]> create database NanJing; Query OK, 1 row affected (0.01 sec) (rootlocalhost) [test]> use NanJing; Database changed (rootlocalhost) [NanJ…

    HTML-取消div,a等標簽點擊效果

    一、背景當標簽被設置onclick事件之后&#xff0c;在有些手機瀏覽器中&#xff0c;點擊這些標簽&#xff0c;會有點擊變色效果。想要取消點擊變色效果。通過為div和標簽元素添加-webkit-tap-highlight-color樣式屬性&#xff0c;可以有效地解決這一問題二、解決方案已a標簽示例…

    VR 三維重建:開啟沉浸式體驗新時代

    在科技飛速發展的今天&#xff0c;VR&#xff08;虛擬現實&#xff09;技術已經逐漸滲透到我們生活的各個領域&#xff0c;為我們帶來了前所未有的沉浸式體驗。而 VR 三維重建作為 VR 技術的重要應用之一&#xff0c;更是讓人們能夠身臨其境地感受各種場景&#xff0c;無論是旅…

    iTwinjs 幾何 - Curve

    CurvePrimitive 常用的見下 LineSegment3d直線段兩點直線邊、桿件、骨架LineString3d折線多點連續直線輪廓線、路徑Arc3d圓弧 / 橢圓弧圓心 半徑 起止角圓孔、圓角、弧段BezierCurve3d貝塞爾曲線端點 控制點平滑過渡、動畫軌跡BSplineCurve3dB 樣條 / NURBS控制點 節點矢…

    iPhone 恢復出廠設置是否會刪除所有內容?

    當你的 iPhone 經常崩潰、出現黑屏死機、卡在加載屏幕上等問題時&#xff0c;你可能會考慮進行恢復出廠設置來修復它。或者在其他情況下&#xff0c;如果你要將使用多年的設備交給新主人&#xff0c;出于安全考慮&#xff0c;也需要進行恢復出廠設置。那么&#xff0c;恢復出廠…

    機器學習②【字典特征提取、文本特征處理(TF-IDF)、數據標準化與歸一化、特征降維】

    文章目錄先言一、特征工程概述二、特征提取1.字典特征提取&#xff08;特征離散化&#xff09;2.文本特征提取2.1英文文本提取2.2中文文本提取&#xff08;jieba分詞器&#xff09;3.TfidfVectorizer TF-IDF文本特征詞的重要程度特征提取三、數據歸一化與標準化1.MinMaxScaler …

    3、CC3200串口DMA

    先說下CC3200存在2個16*8的fifos, 分別用于發送和接收 當fifos被disable時&#xff0c;將會作為一個1字節深度的保持寄存器&#xff0c; 所以無論fifos是開是關&#xff0c;發送和接收都繞不開fifos DMA 由于發送和接收都繞不過fifos,所以DMA也繞不開FIFOS. MAP_UARTFIFOLevelS…

    從游戲NPC到手術助手:Agent AI重構多模態交互,具身智能打開AGI新大門

    注&#xff1a;此文章內容均節選自充電了么創始人&#xff0c;CEO兼CTO陳敬雷老師的新書《GPT多模態大模型與AI Agent智能體》&#xff08;跟我一起學人工智能&#xff09;【陳敬雷編著】【清華大學出版社】 清華《GPT多模態大模型與AI Agent智能體》書籍配套視頻課程【陳敬雷…