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)=h0limhf(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)=axa1 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} (ex)=ex
  • 对数函数的导数 ( 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} wL:表示损失函数 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} (ex)=ex

利用后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=dudydxdu=eu(1)=ex


分数函数的导数

分数函数(或称为有理函数)在数学中通常指形式为 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)=V2UVUV

这个公式在神经网络中处理复杂函数时非常有用。例如,当损失函数中包含分数形式时,我们可以使用这个公式来计算其导数。

Sigmoid 函数的导数

Sigmoid 函数是神经网络中常用的激活函数之一,其定义为:

σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

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+ex1 这可以看作是一个分数函数,其中 U = 1 U = 1 U=1 V = 1 + e − x V = 1 + e^{-x} V=1+ex

  2. 应用分数函数的导数公式:分数函数的导数公式为: ( U V ) ′ = U ′ V − U V ′ V 2 \left(\frac{U}{V}\right)' = \frac{U'V - UV'}{V^2} (VU)=V2UVUV 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+ex)2U(1+ex)1V 其中 U ′ = 0 U' = 0 U=0(因为 U = 1 U = 1 U=1 是常数),而 V ′ = − e − x V' = -e^{-x} V=ex(因为 V = 1 + e − x V = 1 + e^{-x} V=1+ex)。

  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+ex)20(1+ex)1(ex) = e − x ( 1 + e − x ) 2 = \frac{e^{-x}}{(1 + e^{-x})^2} =(1+ex)2ex

  2. 进一步化简: 注意到 σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1,我们可以将上面的表达式重写为:

σ ′ ( 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+ex)ex(1+ex)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+exex 这一事实。

因此,我们成功地从分数函数的导数公式推导出了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.mzph.cn/web/63271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【视频生成模型】——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…

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…

Fortify_SCA_v24.2.0

前言 Fortify SCA 支持丰富的开发环境、语言、平台和框架&#xff0c;可对开发与生产混合环境进行安全检查。25 种编程语言 超过 911,000 个组件级 API 可检测超过 961 个漏洞类别 支持所有主流平台、构建环境和 IDE。 Fortify SCA是一款商业软件&#xff0c;价格较为昂贵&am…

rust的axux框架开启负载均衡和重启自身的方法-会议签到的调优

开启负载均衡和重启自身 更换axum后台的意外解决的尝试在caddy反代,使用负载均衡,加多一个节点axum主程序 ip映射信息做全局共享axum重启自身刷新全局共享配置 前期刚实现了rust的后台关键业务.结果出现了两类大问题停止服务.在正用着的时候,出现很多意外,真是刺激… 更换axum…

深入理解数据库索引:原理、分类与优化

目录 1. 索引基础1.1 索引的工作原理 2. 最左匹配原则2.1 什么是最左匹配原则&#xff1f;2.2 示例说明2.3 最左匹配原则的图示 3. 索引分类3.1 按数据结构分类3.2 按索引列数分类3.3 按唯一性分类3.4 按存储方式分类 4. 聚集索引与非聚集索引的区别4.1 聚集索引4.2 非聚集索引…

Three.js相机Camera控件知识梳理

原文&#xff1a;https://juejin.cn/post/7231089453695238204?searchId20241217193043D32C9115C2057FE3AD64 1. 相机类型 Three.js 主要提供了两种类型的相机&#xff1a;正交相机&#xff08;OrthographicCamera&#xff09;和透视相机&#xff08;PerspectiveCamera&…

一条线上的点

给你一个数组 points &#xff0c;其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 提示&#xff1a; 1 < points.length < 300points[i].length 2-104 < xi, yi < 104points 中的所有点 互不相同 解析&#xff1a;使用斜…

XX服务器上的npm不知道咋突然坏了

收到同事的V&#xff0c;说是&#xff1a;182上的npm不知道咋突然坏了&#xff0c;查到这里了&#xff0c;不敢动了。 咱一定要抓重点&#xff1a;突然坏了。这里的突然肯定不是瞬间&#xff08;大概率是上次可用&#xff0c;这次不可用&#xff0c;中间间隔了多长时间&#x…