AI 高手之路 2:微积分基础——导数、梯度和优化

目录:

  1. 引言:为什么微积分在 AI 中不可或缺?
  2. 导数:函数变化的“速度表”
    • 2.1 导数的定义和几何意义
    • 2.2 常见函数的导数
    • 2.3 导数计算法则:加法、减法、乘法、除法、链式法则
    • 2.4 高阶导数
  3. 偏导数:多变量函数的“分头行动”
    • 3.1 偏导数的定义
    • 3.2 几何意义:函数在各个坐标轴方向上的变化率
    • 3.3 高阶偏导数
  4. 梯度:函数上升最快的“方向盘”
    • 4.1 梯度的定义
    • 4.2 梯度与方向导数
    • 4.3 梯度的性质
  5. 泰勒展开:函数的“近似放大镜”
    • 5.1 泰勒公式
    • 5.2 泰勒展开的应用:函数近似、优化
  6. 微积分在 AI 中的应用
    • 6.1 梯度下降法:寻找函数的最小值
    • 6.2 反向传播算法:训练神经网络
    • 6.3 牛顿法、拟牛顿法:更快的优化算法
    • 6.4 最大似然估计:参数估计
  7. Python 实战:使用 SymPy 进行符号计算
  8. 总结与下一步
  9. 挑战任务

在这里插入图片描述

大家好!欢迎来到“AI 高手之路”系列的第二篇。继线性代数之后,我们将继续探索 AI 的另一块数学基石——微积分。

1. 引言:为什么微积分在 AI 中不可或缺?

如果说线性代数是 AI 的骨骼,那么微积分就是 AI 的肌肉。如果把一个AI模型比作一辆汽车,线性代数构建车身,微积分则提供让汽车动起来的引擎。

为什么这么说呢?

AI 模型的核心任务之一,是从数据中学习规律。这个“学习”的过程,本质上是一个“优化”的过程:我们需要找到一组模型参数,使得模型能够最好地拟合数据,或者最小化预测误差。

而微积分,正是研究函数变化规律的数学工具。它提供了导数、梯度等概念,帮助我们找到函数的极值点(最大值或最小值)。在 AI 中,这意味着我们可以通过微积分来找到最优的模型参数。

2. 导数:函数变化的“速度表”

2.1 导数的定义和几何意义
  • 定义: 对于一个一元函数 f(x)f(x)f(x),它在点 x0x_0x0 处的导数定义为:

    f′(x0)=lim⁡h→0f(x0+h)−f(x0)h f'(x_0) = \lim_{h \to 0} \frac{f(x_0 + h) - f(x_0)}{h} f(x0)=h0limhf(x0+h)f(x0)

    如果这个极限存在,则称函数 f(x)f(x)f(x)x0x_0x0 处可导,f′(x0)f'(x_0)f(x0) 就是导数。

  • 几何意义: 导数 f′(x0)f'(x0)f(x0) 表示函数 f(x) 在 x0x_0x0 处的切线斜率。

在这里插入图片描述

从上图可以看出导数是函数f(x)在x0处附近变化情况的反应。
2.2 常见函数的导数
  • 常数函数:f(x)=c,f′(x)=0f(x) = c, f'(x) = 0f(x)=c,f(x)=0
  • 幂函数:f(x)=xn,f′(x)=nx(n−1)f(x) = x^n, f'(x) = nx^(n-1)f(x)=xn,f(x)=nx(n1)
  • 指数函数:f(x)=ax,f′(x)=ax∗ln(a)f(x) = a^x, f'(x) = a^x * ln(a)f(x)=ax,f(x)=axln(a) (特例:f(x)=ex,f′(x)=exf(x) = e^x, f'(x) = e^xf(x)=ex,f(x)=ex)
  • 对数函数:f(x)=loga(x)f(x) = log_a(x)f(x)=loga(x), f′(x)=1/(x∗ln(a))f'(x) = 1 / (x * ln(a))f(x)=1/(xln(a)) (特例:f(x)=ln(x),f′(x)=1/xf(x) = ln(x), f'(x) = 1/xf(x)=ln(x),f(x)=1/x)
  • 三角函数:f(x)=sin(x),f′(x)=cos(x);f(x)=cos(x),f′(x)=−sin(x)f(x) = sin(x), f'(x) = cos(x); f(x) = cos(x), f'(x) = -sin(x)f(x)=sin(x),f(x)=cos(x);f(x)=cos(x),f(x)=sin(x)
2.3 导数计算法则
  • 加法/减法法则: (f(x)±g(x))′=f′(x)±g′(x)(f(x) ± g(x))' = f'(x) ± g'(x)(f(x)±g(x))=f(x)±g(x)
  • 乘法法则: (f(x)∗g(x))′=f′(x)g(x)+f(x)g′(x)(f(x) * g(x))' = f'(x)g(x) + f(x)g'(x)(f(x)g(x))=f(x)g(x)+f(x)g(x)
  • 除法法则:(f(x)/g(x))′=(f′(x)g(x)−f(x)g′(x))/(g(x))2(f(x) / g(x))' = (f'(x)g(x) - f(x)g'(x)) / (g(x))^2(f(x)/g(x))=(f(x)g(x)f(x)g(x))/(g(x))2
  • 链式法则: 如果y=f(u)且u=g(x),则dy/dx=dy/du∗du/dx如果 y = f(u) 且 u = g(x),则 dy/dx = dy/du * du/dx如果y=f(u)u=g(x),则dy/dx=dy/dudu/dx
2.4 高阶导数

对导数再次求导,得到二阶导数 f′′(x)f''(x)f′′(x);对二阶导数再次求导,得到三阶导数 f′′′(x)f'''(x)f′′′(x),以此类推。

3. 偏导数:多变量函数的“分头行动”

3.1 偏导数的定义

对于一个多变量函数 f(x1,x2,...,xn)f(x_1, x_2, ..., x_n)f(x1,x2,...,xn),它对变量 xi 的偏导数定义为:

∂f/∂xi=lim(h−>0)[f(x1,...,xi+h,...)−f(x1,...,xi,...)]/h∂f/∂x_i = lim (h->0) [f(x_1, ..., x_i+h, ...) - f(x_1, ..., x_i, ...)] / hf/xi=lim(h>0)[f(x1,...,xi+h,...)f(x1,...,xi,...)]/h

即,在计算偏导数时,将其他变量视为常数,只对 xix_ixi 求导。

3.2 几何意义

偏导数 ∂f/∂xi∂f/∂xif/xi 表示函数 f 在 xi 轴方向上的变化率。

3.3 高阶偏导数

对偏导数再次求偏导,得到高阶偏导数。例如:

  • 二阶偏导数:∂2f/∂xi2∂²f/∂x_i²2f/xi2 (对 xix_ixi 求两次偏导), ∂2f/∂xi∂xj∂²f/∂xi∂xj2f/xixj (先对 xix_ixi 求偏导,再对 xjx_jxj 求偏导)
  • 混合偏导数:如果函数足够光滑,则混合偏导数的求导顺序可以交换,即 ∂2f/∂xi∂xj=∂2f/∂xj∂xi∂²f/∂x_i∂x_j = ∂²f/∂x_j∂x_i2f/xixj=2f/xjxi

4. 梯度:函数上升最快的“方向盘”

4.1 梯度的定义

对于一个多变量函数 f(x1,x2,...,xn)f(x_1, x_2, ..., x_n)f(x1,x2,...,xn),它的梯度是一个向量,由所有偏导数组成:

∇f=[∂f/∂x1,∂f/∂x2,...,∂f/∂xn]∇f = [∂f/∂x_1, ∂f/∂x_2, ..., ∂f/∂x_n]f=[f/x1,f/x2,...,f/xn]

4.2 梯度与方向导数
  • 方向导数: 函数 fff 在点 (x1,x2,...,xn)(x_1, x_2, ..., x_n)(x1,x2,...,xn) 处沿着方向 uuu (单位向量) 的变化率。
  • 梯度的重要性: 梯度方向是函数值上升最快的方向,梯度的模是函数值上升的最大速率。
4.3 梯度的性质
  • 梯度的方向与等高线(面)垂直。
  • 梯度的模越大,函数值变化越快。

5. 泰勒展开:函数的“近似放大镜”

5.1 泰勒公式

泰勒公式可以将一个在点 x0 处具有 n 阶导数的函数 f(x) 展开成一个多项式:

$f(x)≈f(x0)+f′(x0)(x−x0)+(1/2!)f′′(x0)(x−x0)2+...+(1/n!)f(n)(x0)(x−x0)n+Rn(x)f(x) ≈ f(x0) + f'(x0)(x - x0) + (1/2!)f''(x0)(x - x0)^2 + ... + (1/n!)f^(n)(x0)(x - x0)^n + Rn(x)f(x)f(x0)+f(x0)(xx0)+(1/2!)f′′(x0)(xx0)2+...+(1/n!)f(n)(x0)(xx0)n+Rn(x)

其中 Rn(x)Rn(x)Rn(x) 是余项,表示近似误差。

5.2 泰勒展开的应用
  • 函数近似:xxx 接近 x0x_0x0 时,可以用泰勒多项式近似函数值。
  • 优化: 泰勒展开可以用于推导优化算法,例如牛顿法。

6. 微积分在 AI 中的应用

6.1 梯度下降法:寻找函数的最小值
  • 原理: 沿着梯度的负方向迭代更新参数,逐步逼近函数的最小值。
  • 更新公式: x(t+1)=x(t)−α∇f(x(t))x(t+1) = x(t) - α∇f(x(t))x(t+1)=x(t)αf(x(t)),其中 α 是学习率(步长)。
  • 变种: 批量梯度下降 (BGD)、随机梯度下降 (SGD)、小批量梯度下降 (MBGD)、动量法、Adam 等。
6.2 反向传播算法:训练神经网络
  • 原理: 利用链式法则,从输出层到输入层,逐层计算损失函数对每个参数的梯度,然后使用梯度下降法更新参数。
  • 核心: 高效计算梯度。
6.3 牛顿法、拟牛顿法:更快的优化算法
  • 牛顿法: 利用二阶导数(Hessian 矩阵)加速收敛。
  • 拟牛顿法: 通过近似 Hessian 矩阵来避免计算二阶导数。
6.4 最大似然估计:参数估计
  • 原理: 找到一组参数,使得观测数据出现的概率最大。
  • 方法: 通常取对数似然函数,然后求导数或梯度,令其为 0,解方程得到参数估计值。

7. Python 实战:使用 SymPy 进行符号计算

SymPy 是 Python 的一个符号计算库,可以进行公式推导、求导、积分等。

import sympy as sp

# 定义符号变量
x, y = sp.symbols('x y')

# 定义函数
f = x**2 + sp.sin(y)

# 计算偏导数
df_dx = sp.diff(f, x)      # 对x求偏导
df_dy = sp.diff(f, y)      # 对y求偏导
print(f"∂f/∂x = {df_dx}")  # 输出:∂f/∂x = 2*x
print(f"∂f/∂y = {df_dy}")  # 输出:∂f/∂y = cos(y)

# 计算混合偏导数
df_dxdy = sp.diff(f, x, y)
print(f"∂²f/∂x∂y = {df_dxdy}")  # 输出:∂²f/∂x∂y = 0

# 计算梯度
gradient = [sp.diff(f, var) for var in (x, y)]
print(f"∇f = [{gradient[0]}, {gradient[1]}]")  # 输出:∇f = [2*x, cos(y)]

# 在x=0处进行泰勒展开
taylor = f.series(x, 0, 4).removeO()
print(f"泰勒展开(x=0):\n{taylor}")

代码解释:
这段代码演示了SymPy库求导数和偏导数。sp.symbols('x y') 定义了符号变量。sp.diff(f, x)计算 f 关于 x 的导数。sp.diff(f, x, y)计算f先关于x再关于y的偏导数。

8. 总结与下一步

在本篇博文中,我们学习了微积分的基础知识,包括导数、偏导数、梯度、泰勒展开等,并了解了它们在 AI 中的应用,特别是梯度下降法和反向传播算法。我们还使用 SymPy 进行了简单的符号计算。

掌握微积分是理解 AI 模型训练原理的关键。在接下来的挑战中,我们将学习概率统计、优化算法等更多 AI 相关的数学知识,并逐步深入机器学习和深度学习的核心算法。

9. 挑战任务

  1. 复习: 回顾本篇博文中的所有概念。
  2. 推导:
    • 手动推导常见函数的导数。
    • 推导链式法则。
    • 推导梯度下降法的更新公式。
  3. 计算:
    • 计算一些复杂函数的导数和偏导数。
    • 计算一些函数在给定点的梯度。
    • 手动计算一个简单函数的泰勒展开。
  4. SymPy 练习:
    • 使用 SymPy 计算更复杂的导数、偏导数、梯度和泰勒展开。
    • 尝试使用 SymPy 求解方程。
  5. 思考题:
    • 梯度下降法有哪些局限性?如何改进?
    • 反向传播算法是如何工作的?
    • 牛顿法和梯度下降法有什么区别?
    • 最大似然估计和最小二乘法有什么关系?
  6. 阅读材料: 阅读《Calculus》by James Stewart 的 differentiation rules 章节.

希望这篇博文能帮助你更好地掌握微积分基础!如果你有任何问题或建议,请随时在评论区留言。让我们继续 AI 学习之旅!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海棠AI实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值