【机器学习】机器学习中用到的高等数学知识-3.微积分 (Calculus)

3. 微积分 (Calculus)

  • 导数和梯度:用于优化算法(如梯度下降)中计算损失函数的最小值。
  • 偏导数:在多变量函数中优化目标函数。
  • 链式法则:在反向传播算法中用于计算神经网络的梯度。

导数和梯度:用于优化算法(如梯度下降)中计算损失函数的最小值。

导数和梯度是微积分中非常重要的概念,尤其在优化和机器学习中起着关键作用。以下是对这两个概念的详细解释:

1. 导数 (Derivative)

导数是函数在某一点的瞬时变化率或斜率,描述了函数值对自变量变化的敏感程度。对于单变量函数 f(x),导数的定义如下:

  • 定义

f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}

  • 几何意义:导数表示曲线在某一点的切线的斜率。
  • 基本规则
    • 常数规则:如果 c 是常数,则 \frac{d}{dx}(c) = 0
    • 幂规则:如果 f(x) = x^n,则 f'(x) = nx^{n-1}
    • 和差规则\frac{d}{dx}(u + v) = \frac{du}{dx} + \frac{dv}{dx}​。
    • 乘法规则\frac{d}{dx}(uv) = u \frac{dv}{dx} + v \frac{du}{dx}​。
    • 链式法则:如果 y = f(g(x)),则 \frac{dy}{dx} = f'(g(x)) \cdot g'(x)
  • 常用的导数公式:

        以下是一些常用的导数公式,涵盖了基本的函数和一些常见的导数法则。了解这些公式有助于快速计算各种函数的导数。

       1. 基本导数公式
                常数的导数:

\frac{d}{dx}(c) = 0

                幂函数: 

\frac{d}{dx}(x^n) = nx^{n-1} \quad (n为任意实数)

                 指数函数: 

\frac{d}{dx}(e^x) = e^x

\frac{d}{dx}(a^x) = a^x \ln(a) \quad (a > 0)

                 对数函数:

\frac{d}{dx}(\ln(x)) = \frac{1}{x} \quad (x > 0)

\frac{d}{dx}(\log_a(x)) = \frac{1}{x \ln(a)} \quad (a > 0, a \neq 1)

        2. 三角函数的导数
                正弦函数

\frac{d}{dx}(\sin(x)) = \cos(x)

                余弦函数

\frac{d}{dx}(\cos(x)) = -\sin(x)

                正切函数

\frac{d}{dx}(\tan(x)) = \sec^2(x)

                余切函数

\frac{d}{dx}(\cot(x)) = -\csc^2(x)

                正割函数

\frac{d}{dx}(\sec(x)) = \sec(x) \tan(x)

                余割函数

\frac{d}{dx}(\csc(x)) = -\csc(x) \cot(x)

        3. 反三角函数的导数
                反正弦

\frac{d}{dx}(\arcsin(x)) = \frac{1}{\sqrt{1-x^2}} \quad (-1 < x < 1)

                反余弦

\frac{d}{dx}(\arccos(x)) = -\frac{1}{\sqrt{1-x^2}} \quad (-1 < x < 1)

                反正切

\frac{d}{dx}(\arctan(x)) = \frac{1}{1+x^2}

                反余切

\frac{d}{dx}(arccot(x)) = -\frac{1}{1+x^2}

                反正割

\frac{d}{dx}(arcsec(x)) = \frac{1}{|x|\sqrt{x^2-1}} \quad (|x| > 1)

                反余割

\frac{d}{dx}(arccsc(x)) = -\frac{1}{|x|\sqrt{x^2-1}} \quad (|x| > 1)

        4. 导数法则
                和差法则

\frac{d}{dx}(u + v) = \frac{du}{dx} + \frac{dv}{dx}

\frac{d}{dx}(u - v) = \frac{du}{dx} - \frac{dv}{dx}

                乘法法则

\frac{d}{dx}(uv) = u \frac{dv}{dx} + v \frac{du}{dx}

                商法则

\frac{d}{dx}\left(\frac{u}{v}\right) = \frac{v \frac{du}{dx} - u \frac{dv}{dx}}{v^2}

                链式法则

\frac{d}{dx}(f(g(x))) = f'(g(x)) \cdot g'(x)

        5. 其他常用函数的导数

                复合函数的导数

\frac{d}{dx}(f(g(x))) = f'(g(x)) \cdot g'(x)

                隐函数的导数

                        设 F(x, y) = 0,则:

\frac{dy}{dx} = -\frac{F_x}{F_y} ​​(F_x​ 和 F_y​ 为 F 对 x 和 y 的偏导数)

      掌握这些常用的导数公式和法则,可以帮助在微积分和相关的数学分析中更高效地求解问题。  

2. 梯度 (Gradient)

梯度是多变量函数的导数,表示函数在各个自变量方向上的变化率。对于多变量函数 f(x_1, x_2, \ldots, x_n),梯度是一个向量,包含了所有自变量的偏导数。

  • 定义

    \nabla f = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \ldots, \frac{\partial f}{\partial x_n} \right)
  • 几何意义:梯度向量指向函数值增加最快的方向,其长度表示在该方向上的变化率。

  • 偏导数:在计算梯度时,每个分量都是对函数在特定自变量的偏导数。偏导数的定义类似于普通导数:

    \frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1, \ldots, x_i + h, \ldots, x_n) - f(x_1, \ldots, x_i, \ldots, x_n)}{h}

应用

  • 优化问题:在优化算法中,梯度被用来找到函数的最小值或最大值,特别是在机器学习中常用的梯度下降法中。梯度下降法通过沿着梯度的反方向更新参数,以减少损失函数。

  • 函数的性质:导数和梯度可以用于分析函数的性质,如寻找极值点、判断凹凸性等。

例子

  • 导数: 设 f(x) = x^2,则:

    f'(x) = 2x
  • 梯度: 对于函数 f(x, y) = x^2 + y^2,则梯度为:

    \nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right) = \left( 2x, 2y \right)

理解导数和梯度对于研究函数的行为、优化问题以及机器学习模型的训练过程至关重要。


偏导数:在多变量函数中优化目标函数。

偏导数是微积分中用于描述多变量函数变化率的重要概念。它衡量的是在保持其他变量不变的情况下,某一自变量对函数值的影响。下面是偏导数的定义、计算方法和一些相关的概念。

1. 偏导数的定义

对于一个多变量函数 f(x_1, x_2, \ldots, x_n),偏导数表示的是当改变一个自变量 x_i 时,函数 f 的变化率,同时保持其他自变量不变。

  • 偏导数的数学表示

    \frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1, \ldots, x_i + h, \ldots, x_n) - f(x_1, \ldots, x_i, \ldots, x_n)}{h}
  • 符号: 通常用 \frac{\partial f}{\partial x_i}​ 表示函数f 对变量 x_i 的偏导数。

2. 计算偏导数

计算偏导数的过程与计算普通导数类似,但在求导时需要将其他变量视为常数。

示例: 设有函数 f(x, y) = x^2y + \sin(xy)

  • x 的偏导数:

    \frac{\partial f}{\partial x} = \frac{\partial}{\partial x}(x^2y + \sin(xy)) = 2xy + y \cos(xy)
  • y 的偏导数:

    \frac{\partial f}{\partial y} = \frac{\partial}{\partial y}(x^2y + \sin(xy)) = x^2 + x \cos(xy)

3. 高阶偏导数

偏导数可以进行多次求导,得到高阶偏导数。高阶偏导数可以是对同一变量求多次偏导,也可以是对不同变量交替求偏导。

示例: 对函数 f(x, y) = x^2y + \sin(xy) 进行高阶偏导数计算:

  • x 求两次偏导数:

    \frac{\partial^2 f}{\partial x^2} = \frac{\partial}{\partial x}(2xy + y \cos(xy)) = 2y - y^2 \sin(xy)
  • xy 交替求偏导数:

    \frac{\partial^2 f}{\partial x \partial y} = \frac{\partial}{\partial y}(2xy + y \cos(xy)) = 2x + \cos(xy) - xy \sin(xy)

4. 偏导数的几何意义

偏导数在几何上表示在特定方向上的切线斜率:

  • \frac{\partial f}{\partial x} 表示在 x 方向上的变化率,即在 y 固定时,函数沿 x 轴的斜率。
  • \frac{\partial f}{\partial y} 表示在 y 方向上的变化率,即在 x 固定时,函数沿 y 轴的斜率。

5. 应用

偏导数在许多领域都有广泛应用:

  • 优化:在多变量优化中,偏导数用于求解极值问题。
  • 经济学:用来研究多因素对某一经济指标的影响。
  • 物理学:在描述物理现象(如热传导、流体动力学)中常用。

6. 梯度与偏导数

在多变量分析中,偏导数的集合形成了梯度向量:

\nabla f = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \ldots, \frac{\partial f}{\partial x_n} \right)

梯度向量指向函数值增加最快的方向,其长度表示在该方向上的变化率。

偏导数是微积分在多变量函数中的核心概念,理解偏导数有助于深入掌握多变量分析、优化以及机器学习中的模型训练。


链式法则:在反向传播算法中用于计算神经网络的梯度。

链式法则是微积分中的一个重要法则,用于求复合函数的导数。它允许我们计算由多个函数组合而成的函数的导数。以下是链式法则的基本概念、公式及其应用。

1. 链式法则的基本概念

链式法则表明,如果一个函数 y 可以表示为另一个函数 u 的函数,即 y=f(u),并且 u 又是 x 的函数,即 u=g(x),那么 y 是 x 的复合函数,表示为 y=f(g(x))

2. 链式法则的公式

链式法则的数学表达式为:

\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}

其中:

  • \frac{dy}{dx}​ 是 y 关于 x 的导数。
  • \frac{dy}{du}y 关于 u 的导数。
  • \frac{du}{dx}​ 是 u 关于 x 的导数。

3. 例子

例 1:

考虑函数 y = (3x^2 + 2)^5,我们可以用链式法则求其导数。

  1. u = 3x^2 + 2,则 y = u^5
  2. \frac{dy}{du} = 5u^4
  3. \frac{du}{dx} = 6x
  4. 应用链式法则: \frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} = 5u^4 \cdot 6x = 30x(3x^2 + 2)^4
例 2:

考虑函数 y = \sin(5x^3),我们可以用链式法则求其导数。

  1. u = 5x^3,则 y = \sin(u)
  2. \frac{dy}{du} = \cos(u)
  3. \frac{du}{dx} = 15x^2
  4. 应用链式法则: \frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} = \cos(5x^3) \cdot 15x^2 = 15x^2 \cos(5x^3)

4. 高阶导数的链式法则

对于高阶导数,也可以使用链式法则。对于第二阶导数,假设 y = f(g(x)),则有:

\frac{d^2y}{dx^2} = \frac{d}{dx} \left( \frac{dy}{dx} \right)

可以通过链式法则和积的法则求解,但具体计算会相对复杂。

5. 应用

链式法则广泛应用于物理、工程、经济学等领域,用于解决涉及复合函数的导数问题。例如,在求解运动学中的速度和加速度,电路中的电流和电压关系,以及经济学中的成本与产量关系等问题时,链式法则都能发挥重要作用。

6. 结论

链式法则是微积分中一个非常重要的工具,能够帮助我们简化和计算复合函数的导数。掌握链式法则对于学习微积分及其应用至关重要。


拓展:各类导数的推导过程

导数公式的推导通常依赖于极限的定义、基本的微分法则以及一些重要的数学性质。以下是一些常用导数公式的推导过程,包括幂函数、三角函数和其他常见函数的导数。

1. 常数的导数

常数的导数为零,这是因为常数函数在其定义域内不发生变化。

\frac{d}{dx}(c) = 0

2. 幂函数的导数

对幂函数 f(x) = x^n 的导数推导使用极限定义:

f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} = \lim_{h \to 0} \frac{(x+h)^n - x^n}{h}

使用二项式定理展开:

(x+h)^n = x^n + nx^{n-1}h + \frac{n(n-1)}{2}x^{n-2}h^2 + \ldots

将其代入导数的定义:

f'(x) = \lim_{h \to 0} \frac{nx^{n-1}h + \frac{n(n-1)}{2}x^{n-2}h^2 + \ldots}{h} = \lim_{h \to 0} \left( nx^{n-1} + \frac{n(n-1)}{2}x^{n-2}h + \ldots \right)

h \to 0 时,后面的项趋近于零,因此:

f'(x) = nx^{n-1}

3. 指数函数的导数

对于 f(x) = e^x

f'(x) = \lim_{h \to 0} \frac{e^{x+h} - e^x}{h} = \lim_{h \to 0} \frac{e^x e^h - e^x}{h} = e^x \lim_{h \to 0} \frac{e^h - 1}{h}

已知 \lim_{h \to 0} \frac{e^h - 1}{h} = 1,因此:

 f'(x) = e^x

对于 f(x) = a^x,利用对数的性质:

f(x) = e^{x \ln(a)} \Rightarrow f'(x) = \ln(a) e^{x \ln(a)} = a^x \ln(a)

4. 对数函数的导数

f(x) = \ln(x) 的导数推导如下:

f'(x) = \lim_{h \to 0} \frac{\ln(x+h) - \ln(x)}{h} = \lim_{h \to 0} \frac{\ln\left(\frac{x+h}{x}\right)}{h} = \lim_{h \to 0} \frac{\ln\left(1 + \frac{h}{x}\right)}{h}

利用 \ln(1 + u) 的极限性质 \lim_{u \to 0} \frac{\ln(1+u)}{u} = 1,有:

\frac{\ln\left(1 + \frac{h}{x}\right)}{h} = \frac{1}{\frac{h}{x}} \cdot \frac{\ln\left(1 + \frac{h}{x}\right)}{\frac{h}{x}} \to \frac{1}{x} \text{ when } h \to 0

因此:

f'(x) = \frac{1}{x}

对于其他对数的情况:

f(x) = \log_a(x) = \frac{\ln(x)}{\ln(a)} \Rightarrow f'(x) = \frac{1}{x \ln(a)}

5. 三角函数的导数

\sin(x) 为例:

f'(x) = \lim_{h \to 0} \frac{\sin(x+h) - \sin(x)}{h} = \lim_{h \to 0} \frac{\sin(x)\cos(h) + \cos(x)\sin(h) - \sin(x)}{h}

利用 \lim_{h \to 0} \frac{\sin(h)}{h} = 1\cos(0) = 1,有:

f'(x) = \cos(x)

同理可以推导出余弦和其他三角函数的导数。

6. 链式法则

链式法则可以通过复合函数的极限定义推导:

y = f(g(x)),则:

\frac{dy}{dx} = \frac{dy}{dg} \cdot \frac{dg}{dx}

推导出复合函数的导数。

7. 乘法法则和商法则

这两者可以通过导数的定义直接推导:

  • 乘法法则:

f'(x) = u \cdot v' + v \cdot u'

  • 商法则:

\frac{d}{dx}\left(\frac{u}{v}\right) = \frac{v \cdot u' - u \cdot v'}{v^2}

这些公式通过极限、基本的数学性质和三角函数的基本性质推导而来。掌握这些推导过程将有助于深入理解导数的概念及其应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/469923.html

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

相关文章

华为大咖说 | 浅谈智能运维技术

本文分享自华为云社区&#xff1a;华为大咖说 | 浅谈智能运维技术-云社区-华为云 本文作者&#xff1a;李文轩 &#xff08; 华为智能运维专家 &#xff09; 全文约2695字&#xff0c;阅读约需8分钟 在大数据、人工智能等新兴技术的加持下&#xff0c;智能运维&#xff08;AI…

WebStorm 如何调试 Vue 项目

前言 在日常开发和各种教程中&#xff0c;最常见的 debug 方式就是在代码中插入 console.log 语句&#xff0c;然后在 Chrome 控制台中查看日志。显而易见&#xff0c;插入console.log 的效率不高&#xff0c;那是否有更高效的 debug 方式呢&#xff1f;断点调试允许开发者在代…

【循环神经网络】

循环神经网络&#xff08;Recurrent Neural Network, RNN&#xff09;是一类用于处理序列数据的神经网络&#xff0c;擅长处理具有时间依赖或顺序结构的数据。RNN通过循环连接的结构&#xff0c;使得当前时刻的输出可以受之前时刻信息的影响&#xff0c;因此被广泛应用于自然语…

sqoop import将Oracle数据加载至hive,数据量变少,只能导入一个mapper的数据量

sqoop脚本如下&#xff1a; sqoop import -D mapred.job.queue.namehighway \ -D mapreduce.map.memory.mb4096 \ -D mapreduce.map.java.opts-Xmx3072m \ --connect "jdbc:oracle:thin://1.2.3.4.5:61521/LZY2" \ --username root \ --password 123456 \ --query &…

低功耗WTK6900P语音ic方案助力电子烟技术革新 打造个性化吸烟体验

在这个科技日新月异的时代&#xff0c;每一个细节的创新都是对传统的一次超越。今天&#xff0c;我们自豪地宣布一项革命性的融合——将先进的频谱技术与电子烟相结合&#xff0c;通过WTK6900P芯片的卓越性能&#xff0c;为您开启前所未有的个性化吸烟体验。这不仅是一次技术的…

《基于深度学习的车辆行驶三维环境双目感知方法研究》

复原论文思路&#xff1a; 《基于深度学习的车辆行驶三维环境双目感知方法研究》 1、双目测距的原理 按照上述公式算的话&#xff0c;求d的话&#xff0c;只和xl-xr有关系&#xff0c;这样一来&#xff0c;是不是只要两张图像上一个测试点的像素位置确定&#xff0c;对应的深…

Chromium 中sqlite数据库操作演示c++

本文主要演示sqlite数据库 增删改查创建数据库以及数据库表的基本操作&#xff0c;仅供学习参考。 一、sqlite数据库操作类封装&#xff1a; sql\database.h sql\database.cc // Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-sty…

Qt初识简单使用Qt

使用C代码实现hello world 之前介绍过用图形化界面的方式创建hello world&#xff0c;这里我们使用C代码的方式再来实现一次hello world。 如上&#xff0c;首先要先包含一个头文件。 在QT这里&#xff0c;每一个类都有一个对应的同名头文件。比如这里我就包含了 <QLabel&…

高效运维:构建全面监控与自动化管理体系

在当今数字化时代&#xff0c;企业IT系统的稳定运行直接关系到业务的连续性和竞争力。运维团队作为保障系统稳定运行的中坚力量&#xff0c;面临着前所未有的挑战。随着云计算、大数据、物联网等技术的快速发展&#xff0c;系统架构日益复杂&#xff0c;运维工作也从传统的被动…

Docker网络和overlay的基础讲解

本人发现了两篇写的不错的文章&#xff1a;Docker网络 - docker network详解-CSDN博客&#xff0c;Docker 容器跨主机通信 overlay_docker overlay 网络-CSDN博客 因为这两篇文章中含有大量的例子&#xff0c;新手看起来毫不费力。于是我偷了个小懒&#xff0c;在本篇文章中没有…

C++开发基础之使用librabbitmq库实现RabbitMQ消息队列通信

1. 前言 RabbitMQ是一个流行的开源消息队列系统&#xff0c;支持多种消息协议&#xff0c;广泛用于构建分布式系统和微服务架构。可以在不同应用程序之间实现异步消息传递。在本文中&#xff0c;我们将熟悉如何使用C与RabbitMQ进行消息通信。 2. 准备工作 在 Windows 平台上…

vue elementui el-dropdown-item设置@click无效的解决方案

如图&#xff0c;直接在el-dropdown-item上面设置click&#xff0c;相应的method并没有被触发&#xff0c;查找资料发现需要在它的上级 el-dropdown 处使用 command 方法触发。 【template】 <el-dropdown placement"bottom-end" command"handleCommand&quo…

使用docker-compose单点搭建社区版seafile+onlyoffice在线word编辑平台

文章目录 前言一、平台介绍1. seafile平台介绍2. onlyoffice平台介绍 二、版本信息三、基础信息准备1.docker配置文件2.准备目录 四、onlyoffice部署五、seafile平台部署1.准备seafile.yaml文件2.运行平台 六、双平台对接总结 前言 记录使用docker-compose单点搭建社区版seafi…

游戏引擎学习第七天

视频参考:https://www.bilibili.com/video/BV1QFmhYcE69 ERROR_DEVICE_NOT_CONNECTED 是一个错误代码&#xff0c;通常在调用 XInputGetState 或 XInputSetState 函数时返回&#xff0c;表示指定的设备未连接。通常会出现以下几种情况&#xff1a; 未连接控制器&#xff1a;如…

计算机的错误计算(一百五十二)

摘要 探讨 MATLAB 中双曲正弦函数 sinh(x)与双曲余弦函数 cosh(x)的计算精度问题。 例1. 已知 计算 以及 直接贴图吧&#xff1a; 另外&#xff0c;16或17位的正确值分别为 0.5168712762709208e1、0.52645599648397069e1、0.2140244217618104e247 与 0.2140244217…

【C++】详解RAII思想与智能指针

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 丢掉幻想&#xff0c;准备斗争 目录 引言 内存泄漏 内存泄漏的危害 内存泄漏的处理 一、RAII思想 二、智能指针 1.auto_ptr 实现原理 模拟实现 弊端…

JDBC-Dao层模式

分层思维 分层思维是软件架构设计的一种重要思想&#xff0c;它通过将应用程序划分为多个相互独立且依赖关系的层。 通常分为以下三层关系。 web层&#xff1a;主要负责与用户进行交互&#xff0c;处理请求。 service层&#xff1a;业务逻辑层&#xff0c;主要负责处理应用程序…

三种单例实现

1、不继承Mono的单例 实现 使用 注&#xff1a; 使用需要继承BaseManager 泛型填写自己本身 需要实现无参构造函数 2、挂载式的Mono单例 实现 使用 注&#xff1a; 使用需要继承SingletonMono 泛型填写自己本身 需要挂载在unity引擎面板 3、不用挂载式的单例 实现 使…

Flink API 的层次结构

Apache Flink 提供了多层 API&#xff0c;每层 API 针对不同的抽象层次和用途&#xff0c;使得开发者可以根据具体需求选择合适的 API 层次。以下是 Flink API 的层次结构及其简要说明&#xff1a;

DHCP与DNS安全管理

一、DHCPSnooping的攻击防范功能配置&#xff08;路由器&#xff09; 1.启动设备 2.将pc设为DHCP获取IP地址 3.配置DHCP [AR1]dhcp enable //启动DHCP服务 [AR1]ip pool aaa //设置地址池 [AR1-ip-pool-aaa]network 192.168.10.0 mask 24 //设置地址范围 [AR1-ip-poo…