模型优化的完整过程包括定义一个模型,例如简单线性回归($y = mx + b$);使用成本函数(如均方误差)衡量其误差;以及计算梯度(成本函数对参数 $m$ 和 $b$ 的偏导数)。这里概述了使用这些微积分工具来优化模型——也就是训练它的完整方法论。其主要思想是迭代改进。我们从参数 $m$ 和 $b$ 的一些初始猜测值开始。这些初始猜测值很可能无法生成一条很好地拟合我们数据的直线,这意味着成本函数将有一个相对较高的值。我们的目标是系统地调整 $m$ 和 $b$ 以降低这个成本。这就是梯度下降发挥作用的地方。可以将成本函数想象成定义了一个表面,也许就像一座山,其中水平维度代表 $m$ 和 $b$ 的值,垂直维度代表成本(即误差)。我们的目标是找到最低点。下面是分步优化过程:初始化参数: 从 $m$ 和 $b$ 的初始值开始。这些可以是零、随机小数值,或任何其他初始猜测。我们将初始值记为 $m_0$ 和 $b_0$。计算梯度: 在当前参数值 ($m_i$, $b_i$) 处,计算成本函数 $J(m, b)$ 的梯度。这涉及计算我们讨论过的偏导数:$\frac{\partial J}{\partial m}$ (成本随 $m$ 变化的程度)$\frac{\partial J}{\partial b}$ (成本随 $b$ 变化的程度) 梯度向量 $\nabla J = \left[ \frac{\partial J}{\partial m}, \frac{\partial J}{\partial b} \right]$ 指向从当前点 ($m_i$, $b_i$) 成本增长最陡峭的方向。更新参数: 我们希望沿着梯度的反方向移动以降低成本。我们使用以下规则更新参数: $$ m_{i+1} = m_i - \alpha \frac{\partial J}{\partial m} $$ $$ b_{i+1} = b_i - \alpha \frac{\partial J}{\partial b} $$ 这里,$\alpha$ 是学习率。它是一个小的正值(如 0.01, 0.001),控制我们下坡方向迈出的步长。选择一个合适的学习率很要紧:如果过大,我们可能会越过最小值;如果过小,过程可能耗时过长。减法运算确保我们下坡移动。重复: 返回第 2 步,使用新更新的参数 ($m_{i+1}$, $b_{i+1}$) 计算下一个梯度。重复此过程(计算梯度、更新参数),直到达到预设的迭代次数,或者成本函数不再明显下降,或者 $m$ 和 $b$ 的变化变得非常小。这种状态通常被称为收敛。这个迭代循环构成了梯度下降优化算法的核心。微积分,特别是计算偏导数以找到梯度,提供了成本函数“坡度”的必要信息,指引我们走向最小误差。digraph G { rankdir=TB; node [shape=box, style=rounded, fontname="Arial", fontsize=10, color="#495057", fontcolor="#495057"]; edge [fontname="Arial", fontsize=9, color="#868e96", fontcolor="#495057"]; start [label="初始化参数\n(m₀, b₀)", shape=ellipse, style=filled, fillcolor="#a5d8ff"]; calc_grad [label="计算梯度\n∂J/∂m, ∂J/∂b\n在 (mᵢ, bᵢ) 处", style=filled, fillcolor="#96f2d7"]; update_params [label="更新参数\nmᵢ₊₁ = mᵢ - α(∂J/∂m)\nbᵢ₊₁ = bᵢ - α(∂J/∂b)", style=filled, fillcolor="#ffec99"]; check_conv [label="检查是否收敛?\n(成本稳定?达到最大迭代次数?)", shape=diamond, style=filled, fillcolor="#fcc2d7"]; end [label="找到最优参数\n(m*, b*)", shape=ellipse, style=filled, fillcolor="#b2f2bb"]; start -> calc_grad; calc_grad -> update_params; update_params -> check_conv; check_conv -> calc_grad [label=" 否 "]; check_conv -> end [label=" 是 "]; }梯度下降优化循环:初始化参数,计算成本函数的梯度,使用梯度和学习率更新参数,并重复直到收敛。通过重复应用这些步骤,我们逐步调整 $m$ 和 $b$,使我们的线性回归直线越来越好地拟合数据,从而最小化成本函数。这说明了导数和梯度这些基本内容如何应用于训练甚至简单的机器学习模型。尽管我们以线性回归为例,但这种使用梯度来最小化成本函数的相同基础过程对于训练许多复杂的机器学习算法来说,都非常重要。