Day8 神經網絡中的導數基礎

Day8 神經網絡中的導數基礎

導數的定義

導數(Derivative)是微積分中的一個核心概念,用于描述函數在某一點的變化率。簡單來說,導數就是函數值隨自變量微小變化而產生的變化量,即斜率或變化率。假設有一個函數 f ( x ) f(x) f(x),其中 x x x 是自變量, y = f ( x ) y = f(x) y=f(x) 是因變量。函數 f ( x ) f(x) f(x) 在某一點 x 0 x_0 x0? 處的導數表示為 f ′ ( x 0 ) f'(x_0) f(x0?),也可以寫作 d y d x \frac{dy}{dx} dxdy? d f d x \frac{df}{dx} dxdf?。導數的定義是:

f ′ ( x 0 ) = lim ? h → 0 f ( x 0 + h ) ? f ( x 0 ) h f'(x_0) = \lim_{{h \to 0}} \frac{f(x_0 + h) - f(x_0)}{h} f(x0?)=h0lim?hf(x0?+h)?f(x0?)?

其中, h h h 表示自變量 x x x 的一個微小變化量,也經常用 Δ x \Delta x Δx標識。

注:希臘字母 ? 讀作 delta,對應拉丁字母 D。此外,帶有 '(prime)符號的函數或變量表示導函數。

在這里插入圖片描述


神經網絡中用到的導數公式

在神經網絡中,導數主要用于計算損失函數對各個參數的梯度,從而進行反向傳播和參數更新。以下是一些常用的導數公式:

  • 常數函數的導數 c ′ = 0 c' = 0 c=0 c c c 為常數)
  • 冪函數的導數 ( x a ) ′ = a x a ? 1 (x^a)' = ax^{a-1} (xa)=axa?1 a a a 為常數且 a ≠ 0 a \neq 0 a=0), a = 1 時有 ( x ) ′ = 1 a=1時有(x)'=1 a=1時有(x)=1
  • 指數函數的導數 ( e x ) ′ = e x (e^x)' = e^x (ex)=ex , ( e ? x ) ′ = ? e ? x (e^{-x})' = -e^{-x} (e?x)=?e?x
  • 對數函數的導數 ( ln ? x ) ′ = 1 x (\ln x)' = \frac{1}{x} (lnx)=x1? x > 0 x > 0 x>0
  • 三角函數的導數 ( sin ? x ) ′ = cos ? x (\sin x)' = \cos x (sinx)=cosx ( cos ? x ) ′ = ? sin ? x (\cos x)' = -\sin x (cosx)=?sinx

這些公式在神經網絡中計算各層參數的梯度時非常有用。


導數符號

在神經網絡中,我們經常使用以下符號來表示導數:

  • d L d x \frac{dL}{dx} dxdL?:表示損失函數 L L L 對變量 x x x 的導數(在單變量情況下)。
    • c ′ = 0 c' = 0 c=0 c c c 為常數),也可以記為 d c d x = 0 \frac{dc}{dx}=0 dxdc?=0
    • ( x ) ′ = 1 (x)'=1 (x)=1 ,也可以記為 d x d x = 1 \frac{dx}{dx}=1 dxdx?=1
  • ? L ? w \frac{\partial L}{\partial w} ?w?L?:表示損失函數 L L L 對權重 w w w 的偏導數。(后續Day深入解釋)
  • ? L \nabla L ?L:表示損失函數 L L L 關于所有參數的梯度向量。(后續Day深入解釋)

導數的性質

導數具有一些重要的性質,這些性質在神經網絡的梯度計算中非常有用:

  • 線性性質:如果 f ′ ( x ) f'(x) f(x) g ′ ( x ) g'(x) g(x) 都存在,那么 ( a f ( x ) + b g ( x ) ) ′ = a f ′ ( x ) + b g ′ ( x ) (af(x) + bg(x))' = af'(x) + bg'(x) (af(x)+bg(x))=af(x)+bg(x)
  • 鏈式法則:如果 u = g ( x ) u = g(x) u=g(x) g ′ ( x ) g'(x) g(x) 存在,那么 ( f ( u ) ) ′ = f ′ ( u ) g ′ ( x ) (f(u))' = f'(u)g'(x) (f(u))=f(u)g(x)。這個法則在多層神經網絡中計算梯度時至關重要。

證明 ( e ? x ) ′ = ? e ? x (e^{-x})' = -e^{-x} (e?x)=?e?x

利用后Day的鏈式法則(復合函數的求導公式),我們可以簡單地推導出標題中的公式,如下所示。

y = e u , u = ? x , y ′ = d y d x = d y d u d u d x = e u ? ( ? 1 ) = ? e ? x y = e^{u}, \quad u = -x, \quad y' = \frac{dy}{dx} = \frac{dy}{du} \frac{du}{dx} = e^{u} \cdot (-1) = -e^{-x} y=eu,u=?x,y=dxdy?=dudy?dxdu?=eu?(?1)=?e?x


分數函數的導數

分數函數(或稱為有理函數)在數學中通常指形式為 U V \frac{U}{V} VU? 的函數,其中 U U U V V V 都是關于自變量(如 x x x)的函數。分數函數的導數公式為:

( U V ) ′ = U ′ V ? U V ′ V 2 \left(\frac{U}{V}\right)' = \frac{U'V - UV'}{V^2} (VU?)=V2UV?UV?

這個公式在神經網絡中處理復雜函數時非常有用。例如,當損失函數中包含分數形式時,我們可以使用這個公式來計算其導數。

Sigmoid 函數的導數

Sigmoid 函數是神經網絡中常用的激活函數之一,其定義為:

σ ( x ) = 1 1 + e ? x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e?x1?

Sigmoid 函數的導數有一個非常簡潔的形式:

σ ′ ( x ) = σ ( x ) ( 1 ? σ ( x ) ) \sigma'(x) = \sigma(x)(1 - \sigma(x)) σ(x)=σ(x)(1?σ(x))

這個導數公式在神經網絡的反向傳播過程中非常重要,因為它用于計算激活函數的梯度。

為了從分數函數的導數公式推導出Sigmoid函數的導數公式,可以按照以下步驟進行:

  1. 定義Sigmoid函數: Sigmoid函數定義為: σ ( x ) = 1 1 + e ? x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e?x1? 這可以看作是一個分數函數,其中 U = 1 U = 1 U=1 V = 1 + e ? x V = 1 + e^{-x} V=1+e?x

  2. 應用分數函數的導數公式:分數函數的導數公式為: ( U V ) ′ = U ′ V ? U V ′ V 2 \left(\frac{U}{V}\right)' = \frac{U'V - UV'}{V^2} (VU?)=V2UV?UV? U U U V V V 的定義代入此公式,得到:

? σ ′ ( x ) = U ′ ( 1 + e ? x ) ? 1 ? V ′ ( 1 + e ? x ) 2 \sigma'(x) = \frac{U'(1 + e^{-x}) - 1 \cdot V'}{(1 + e^{-x})^2} σ(x)=(1+e?x)2U(1+e?x)?1?V? 其中 U ′ = 0 U' = 0 U=0(因為 U = 1 U = 1 U=1 是常數),而 V ′ = ? e ? x V' = -e^{-x} V=?e?x(因為 V = 1 + e ? x V = 1 + e^{-x} V=1+e?x)。

  1. 簡化表達式: 代入 U ′ U' U V ′ V' V 的值,我們得到: σ ′ ( x ) = 0 ? ( 1 + e ? x ) ? 1 ? ( ? e ? x ) ( 1 + e ? x ) 2 \sigma'(x) = \frac{0 \cdot (1 + e^{-x}) - 1 \cdot (-e^{-x})}{(1 + e^{-x})^2} σ(x)=(1+e?x)20?(1+e?x)?1?(?e?x)? = e ? x ( 1 + e ? x ) 2 = \frac{e^{-x}}{(1 + e^{-x})^2} =(1+e?x)2e?x?

  2. 進一步化簡: 注意到 σ ( x ) = 1 1 + e ? x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e?x1?,我們可以將上面的表達式重寫為:

σ ′ ( x ) = e ? x ( 1 + e ? x ) ? 1 ( 1 + e ? x ) \sigma'(x) = \frac{e^{-x}}{(1 + e^{-x})} \cdot \frac{1}{(1 + e^{-x})} σ(x)=(1+e?x)e?x??(1+e?x)1? = σ ( x ) ? ( 1 ? σ ( x ) ) = \sigma(x) \cdot (1 - \sigma(x)) =σ(x)?(1?σ(x)) 這里我們用到了 σ ( x ) \sigma(x) σ(x) 的定義,并且利用了 1 ? σ ( x ) = e ? x 1 + e ? x 1 - \sigma(x) = \frac{e^{-x}}{1 + e^{-x}} 1?σ(x)=1+e?xe?x? 這一事實。

因此,我們成功地從分數函數的導數公式推導出了Sigmoid函數的導數公式: σ ′ ( x ) = σ ( x ) ( 1 ? σ ( x ) ) \sigma'(x) = \sigma(x)(1 - \sigma(x)) σ(x)=σ(x)(1?σ(x))


最小值的條件

一、基本概念

  1. 函數的最小值

    • 如果對于函數 f ( x ) f(x) f(x)的定義域內的所有 x x x,都有 f ( x ) ≥ f ( a ) f(x) \geq f(a) f(x)f(a),則稱 f ( a ) f(a) f(a)是函數 f ( x ) f(x) f(x)的最小值。
  2. 導數與函數單調性

    • 導數 f ′ ( x ) f'(x) f(x)反映了函數 f ( x ) f(x) f(x)在某一點的切線斜率,也反映了函數在該點附近的增減性。
    • f ′ ( x ) > 0 f'(x) > 0 f(x)>0時,函數在該區間內單調遞增;當 f ′ ( x ) < 0 f'(x) < 0 f(x)<0時,函數在該區間內單調遞減。

二、最小值的一階必要條件

  1. 費馬小定理(Fermat’s Theorem)
    • 如果函數 f ( x ) f(x) f(x)在點 x = a x = a x=a處取得局部最小值,且 f ( x ) f(x) f(x) a a a點可導,則必有 f ′ ( a ) = 0 f'(a) = 0 f(a)=0
    • 這意味著,在最小值點處,函數的切線斜率為零,即函數在該點處“平緩”。

三、最小值的二階充分條件

  1. 二階導數的作用

    • 為了進一步確定一個臨界點(即一階導數為零的點)是最大值、最小值還是拐點,我們需要考察二階導數。
  2. 二階充分條件

    • 假設函數 f ( x ) f(x) f(x)在點 x = a x = a x=a處有一階導數 f ′ ( a ) = 0 f'(a) = 0 f(a)=0,且二階導數 f ′ ′ ( a ) f''(a) f′′(a)存在。
    • 如果 f ′ ′ ( a ) > 0 f''(a) > 0 f′′(a)>0,則函數在 x = a x = a x=a處取得局部最小值。
    • 如果 f ′ ′ ( a ) < 0 f''(a) < 0 f′′(a)<0,則函數在 x = a x = a x=a處取得局部最大值。
    • 如果 f ′ ′ ( a ) = 0 f''(a) = 0 f′′(a)=0,則無法直接通過二階導數判斷該點的性質,可能需要進一步的分析(如考察更高階的導數或利用其他方法)。

四、全局最小值與局部最小值

  1. 局部最小值

    • 只在函數定義域的某個小區間內是最小的值。
  2. 全局最小值

    • 在函數整個定義域內都是最小的值。
    • 要找到全局最小值,通常需要考察函數的所有局部最小值,并比較它們的大小。

五、實例分析

考慮函數 f ( x ) = x 2 + 4 x + 4 f(x) = x^2 + 4x + 4 f(x)=x2+4x+4

  1. 求一階導數

    • f ′ ( x ) = 2 x + 4 f'(x) = 2x + 4 f(x)=2x+4
  2. 找臨界點

    • f ′ ( x ) = 0 f'(x) = 0 f(x)=0,解得 x = ? 2 x = -2 x=?2
  3. 判斷最小值

    • 計算二階導數: f ′ ′ ( x ) = 2 f''(x) = 2 f′′(x)=2
    • 因為 f ′ ′ ( ? 2 ) = 2 > 0 f''(-2) = 2 > 0 f′′(?2)=2>0,所以函數在 x = ? 2 x = -2 x=?2處取得局部最小值。
    • 由于該函數是一個開口向上的拋物線,且在整個實數域內只有一個臨界點,因此這個局部最小值也是全局最小值。

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

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

相關文章

RequestContextHolder 與 HttpServletRequest 的聯系

1. 什么是 RequestContextHolder&#xff1f; RequestContextHolder 是 Spring 框架 提供的一個工具類&#xff0c;用于在當前線程中存儲和獲取與請求相關的上下文信息。它是基于 ThreadLocal 實現的&#xff0c;能夠保證每個線程獨立存儲和訪問請求信息。 與 HttpServletReq…

SpringBoot配置和啟動

1.內部配置加載順序&#xff1a; 加載規則 加載順序和優先級與配置文件所在路徑有關優先級高的配置會覆蓋優先級低的配置&#xff0c;配置文件會全部加載&#xff0c;遇到相同的配置高優先級覆蓋低優先級命令行參數 -spring.config.location 自定義配置文件路徑&#xff0c;可…

【視頻生成模型】——Hunyuan-video 論文及代碼講解和實操

&#x1f52e;混元文生視頻官網 | &#x1f31f;Github代碼倉庫 | &#x1f3ac; Demo 體驗 | &#x1f4dd;技術報告 | &#x1f60d;Hugging Face 文章目錄 論文詳解基礎介紹數據預處理 &#xff08;Data Pre-processing&#xff09;數據過濾 (Data Filtering)數據標注 (Data…

52 基于單片機的超聲波、溫濕度、光照檢測分階段報警

目錄 一、主要功能 二、硬件資源 三、程序編程 四、實現現象 一、主要功能 1.通過DHT11模塊讀取環境溫度和濕度: 2.將濕度、障礙物距顯示在lcd1602上面&#xff0c;第一行顯示溫度和濕度,格式為:xxCyy%&#xff0c;第二行顯示超聲波傳感器測得的距離&#xff0c;格式為:Di…

大數據與AI:從分析到預測的躍遷

引言&#xff1a;數據時代的新紀元 從每天的社交分享到企業的運營決策&#xff0c;數據早已成為現代社會不可或缺的資源。我們正置身于一個數據爆炸的時代&#xff0c;數以億計的信息流實時生成&#xff0c;為人類帶來了前所未有的洞察能力。然而&#xff0c;數據的價值并不僅限…

3D視覺[一]3D計算機視覺

3D視覺[一]3D計算機視覺 3D計算機視覺概述 像機標定 文章目錄 3D視覺[一]3D計算機視覺前言一、人類視覺二、計算機視覺2.1 計算機視覺的研究目的2.2 計算機視覺的研究任務2.3 計算機視覺的研究方法2.4 視覺計算理論2.5 馬爾框架中計算機視覺表達的四個層次2.5.1 圖像&#xff…

OpenCV目標檢測 級聯分類器 C++實現

一.目標檢測技術 目前常用實用性目標檢測與跟蹤的方法有以下兩種&#xff1a; 幀差法 識別原理&#xff1a;基于前后兩幀圖像之間的差異進行對比&#xff0c;獲取圖像畫面中正在運動的物體從而達到目標檢測 缺點&#xff1a;畫面中所有運動中物體都能識別 舉個例子&#xf…

QT從入門到精通(二) ——信號與槽機制

Qt 的信號與槽機制&#xff08;Signal and Slot&#xff09;是 Qt 框架 中用于對象間通信的核心機制之一。它允許對象之間進行松耦合的事件驅動式通信&#xff0c;尤其適合 GUI 應用程序 中的事件處理。 1. 基本概念 信號 (Signal) 當對象的狀態發生變化時&#xff0c;它會發…

如何使用git新建本地倉庫并關聯遠程倉庫的步驟(詳細易懂)

一、新建本地倉庫并關聯遠程倉庫的步驟 新建本地倉庫 打開終端&#xff08;在 Windows 上是命令提示符或 PowerShell&#xff0c;在 Linux 和Mac上是終端應用&#xff09;&#xff0c;進入你想要創建倉庫的目錄。例如&#xff0c;如果你想在桌面上創建一個名為 “my - project”…

1Panel應用推薦:MaxKB開源知識庫問答系統

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款現代化、開源的Linux服務器運維管理面板&#xff0c;它致力于通過開源的方式&#xff0c;幫助用戶簡化建站與運維管理流程。為了方便廣大用戶快捷安裝部署相關軟件應用&#xff0c;1Panel特別開通應用商店&am…

element plus的table組件,點擊table的數據是,會出現一個黑色邊框

在使用 Element Plus 的 Table 組件時&#xff0c;如果你點擊表格數據后出現了一個黑色邊框&#xff0c;這通常是因為瀏覽器默認的焦點樣式&#xff08;outline&#xff09;被觸發了。如圖&#xff1a; 你可以通過自定義 CSS 來隱藏這個黑色邊框&#xff0c;代碼如下&#xff1…

瀧羽sec學習打卡-brupsuite7搭建IP炮臺

聲明 學習視頻來自B站UP主 瀧羽sec,如涉及侵權馬上刪除文章 筆記的只是方便各位師傅學習知識,以下網站只涉及學習內容,其他的都 與本人無關,切莫逾越法律紅線,否則后果自負 關于brupsuite的那些事兒-Brup-IP炮臺搭建 搭建炮臺服務端安裝zmap1、更新系統和安裝基礎依賴&#xff…

赫布定律 | 機器學習 / 反向傳播 / 經驗 / 習慣

注&#xff1a;本文為 “赫布定律” 相關文章合輯。 未整理。 赫布定律 Hebb‘s law 馥墨軒 2021 年 03 月 13 日 00:03 1 赫布集合的基本定義 唐納德?赫布&#xff08;Donald Hebb&#xff09;在 1949 年出版了《行為的組織》&#xff08;The Organization of Behavior&a…

各個數據庫優劣勢對比

1.關系型數據庫&#xff08;RDBMS&#xff09; 優勢&#xff1a; ? 數據一致性&#xff1a;通過嚴格的事務處理和ACID&#xff08;原子性、一致性、隔離性、持久性&#xff09;特性&#xff0c;確保數據的一致性和完整性。 ? 易于理解和使用&#xff1a;關系型數據庫的表結構…

Excel中如何消除“長短款”

函數微調可以可以實施&#xff0c;簡單且易于操作的氣球&#x1f388;漲縮更妙。 (筆記模板由python腳本于2024年12月17日 06:19:13創建&#xff0c;本篇筆記適合用Excel操作數據的coder翻閱) 【學習的細節是歡悅的歷程】 Python 官網&#xff1a;https://www.python.org/ Fre…

Jdk1.7到Jdk1.8 HashMap 發生了什么變化(底層)

從JDK 1.7到JDK 1.8&#xff0c;HashMap在底層實現上發生了顯著的變化&#xff0c; 主要體現在數據結構、鏈表插入方式、哈希算法、擴容機制以及并發性方面。 以下是具體的變化點&#xff1a; 1. 數據結構的變化 JDK 1.7&#xff1a;HashMap的底層數據結構是數組單向鏈表。…

RJ45 網線線序、E1線線序、2B+d線序

1、RJ45 網線線序 線序排列如下&#xff1a; T568A線序&#xff1a;綠白—1&#xff0c;綠—2&#xff0c;橙白—3&#xff0c;藍—4&#xff0c;藍白—5&#xff0c; 橙—6&#xff0c;棕白—7&#xff0c;棕—8 T568B線序&#xff1a;橙白—1&#xff0c;橙—2&#xff0c…

FreeBSD安裝教程

FreeBSD 是一個功能強大且可靠的開源 UNIX 操作系統&#xff0c;適合服務器和桌面環境。本文將介紹如何安裝 FreeBSD&#xff0c;從系統準備到基礎設置&#xff0c;為你快速上手提供幫助。 一、準備工作 1. 硬件要求 CPU&#xff1a;支持 x86 或 AMD64 架構的處理器。 內存&a…

Fortify_SCA_v24.2.0

前言 Fortify SCA 支持豐富的開發環境、語言、平臺和框架&#xff0c;可對開發與生產混合環境進行安全檢查。25 種編程語言 超過 911,000 個組件級 API 可檢測超過 961 個漏洞類別 支持所有主流平臺、構建環境和 IDE。 Fortify SCA是一款商業軟件&#xff0c;價格較為昂貴&am…

MyBatis框架的入門

目錄 MyBatis第一章&#xff1a;框架的概述1. MyBatis框架的概述 第二章&#xff1a;MyBatis的入門程序1. 創建數據庫和表結構2. MyBatis的入門步驟 MyBatis 第一章&#xff1a;框架的概述 1. MyBatis框架的概述 MyBatis是一個優秀的基于Java的持久層框架&#xff0c;內部對…