对于一个函数 f ( x ) f(x) f(x),如果在某个点 x 0 x_0 x0附近,函数的变化趋势可以用一个线性函数(即导数)来近似,则我们说这个函数在 x 0 x_0 x0 点 可微。更形式化地,函数 f ( x ) f(x) f(x) 在点 x 0 x_0 x0 处可微意味着存在一个有限的导数:
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)=h→0limhf(x0+h)−f(x0)
如果这个极限存在且是有限值,那么 f ( x ) f(x) f(x)在 x 0 x_0 x0处是 可微的,这个极限就是函数在 x 0 x_0 x0 处的 导数。
函数可微意味着它在该点或该区间内的变化是 平滑 的,能够用一个切线近似函数在该点附近的变化。这在优化问题中非常重要。比如,在机器学习中,我们常常需要求解函数的极值,而这是通过计算函数的导数来实现的。如果一个函数不可微,那么导数就无法计算,导致优化过程无法顺利进行。
在机器学习模型的训练过程中,我们需要最小化目标函数(损失函数),这通常是通过梯度下降等基于导数的优化算法来实现的。梯度下降法依赖于可微性,因为我们需要计算损失函数的导数(或梯度)来调整模型的参数,使得损失函数最小化。
如果一个函数不可微,那么导数(梯度)就无法计算,也就无法使用梯度下降等基于导数的算法。因此,在机器学习中,设计可微的损失函数是非常重要的。
通常,机器学习中的损失函数(如均方误差)不仅是可微的,而且是凸的。
凸函数的一个重要特性是:它的局部最小值就是全局最小值。
这使得基于梯度的优化算法(如梯度下降法)可以快速收敛到最优解。
在机器学习中,特别是使用梯度下降进行优化时,目标函数的可微性是至关重要的。梯度下降的基本步骤是:
因此,可微性确保我们可以计算导数,从而使优化过程可以顺利进行。
均方误差(MSE)定义为:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
这个函数是 可微的,因为它的平方项是一个光滑的函数。我们可以对其求导,进而使用梯度下降法进行优化。正是因为它的可微性,才能在训练模型时有效地调整参数 θ \theta θ ,让损失函数最小化。
一个函数在某点可微,意味着它在该点也是 连续 的。但反过来,连续函数不一定是可微的。例如,绝对值函数 ( f(x) = |x| ) 在 ( x = 0 ) 处是连续的,但不可微。
在机器学习中,我们通常定义一个损失函数来衡量模型预测值和真实值之间的差距(如均方误差 MSE)。为了使模型的预测更加准确,我们希望最小化这个损失函数【当读到这里的时候,可以写一下那个推导过程】,而这个过程涉及到 调整模型的参数 θ \theta θ。
因此,正是因为损失函数 可微,我们才能通过 计算导数(梯度) 来更新参数,使损失函数逐步减小,从而找到使得损失最小的最优参数 θ \theta θ。
假设损失函数 J ( θ ) J(\theta) J(θ) 是可微的,那么我们可以对 J ( θ ) J(\theta) J(θ) 求导,得到梯度 ∇ J ( θ ) \nabla J(\theta) ∇J(θ),即损失函数对参数 θ \theta θ 的导数。梯度指向的是损失函数增长最快的方向,所以我们在更新参数时,按照 梯度下降 的思路,沿着梯度的反方向调整参数 θ \theta θ。
更新过程如下:
θ : = θ − α ∇ J ( θ ) \theta := \theta - \alpha \nabla J(\theta) θ:=θ−α∇J(θ)
其中:
如果损失函数不可微(例如有尖锐的拐角),那么在这些不可微的点上,导数不存在,梯度无法计算,梯度下降法就无法正常工作。正因为损失函数是 可微的,我们才能用梯度下降法进行优化,调整参数使得损失最小化。
均方误差(MSE)损失函数是可微的。它的定义为:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^m (h_\theta(x^{(i)}) - y^{(i)})^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
对 θ \theta θ 求导后,可以得到损失函数的梯度。通过梯度下降法,我们可以根据梯度信息调整 θ \theta θ 使损失逐步减小,最终找到最优解。
在机器学习中,尤其是在优化问题中,通常我们希望损失函数是 可微的,因为这意味着可以使用基于梯度的优化方法,如梯度下降法。
可微性让我们能够通过计算损失函数的梯度来调整模型参数 θ \theta θ,从而找到使得损失函数最小化的参数值。
损失函数可以有多种形式,并不局限于 均方误差(Mean Squared Error, MSE)。例如,绝对误差(Mean Absolute Error, MAE)、交叉熵损失(Cross-Entropy Loss)等都是常见的损失函数。
是的,均方误差(MSE) 是 可微的,它具有良好的平滑性,并且在整个定义域上都是连续可微的。接下来我们来证明这一点。
MSE 是回归模型中常用的损失函数,定义为:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
其中:
h θ ( x ( i ) ) = θ T x ( i ) h_\theta(x^{(i)}) = \theta^T x^{(i)} hθ(x(i))=θTx(i)
这里的 2 被放在分母是为了在后面推导梯度时使得计算更简洁,但不影响结果的本质。
为了证明 MSE 是可微的,我们需要对损失函数 J ( θ ) J(\theta) J(θ) 关于参数 θ \theta θ 求偏导数。首先,我们明确一下 i i i 和 j j j 分别代表什么:
现在,我们需要对 J ( θ ) J(\theta) J(θ) 求 θ j \theta_j θj 的偏导数。
首先,重写 J ( θ ) J(\theta) J(θ)的表达式:
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)})^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2
记住,预测函数 h θ ( x ( i ) ) = θ T x ( i ) h_\theta(x^{(i)}) = \theta^T x^{(i)} hθ(x(i))=θTx(i) 。接下来,我们对 θ j \theta_j θj 求导,使用链式法则,先求整体平方部分的导数,再求内部 h θ ( x ( i ) ) h_\theta(x^{(i)}) hθ(x(i)) 对 θ j \theta_j θj 的导数:
∂ J ( θ ) ∂ θ j = 1 2 m ∑ i = 1 m 2 ( h θ ( x ( i ) ) − y ( i ) ) ⋅ ∂ h θ ( x ( i ) ) ∂ θ j \frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{2m} \sum_{i=1}^{m} 2(h_\theta(x^{(i)}) - y^{(i)}) \cdot \frac{\partial h_\theta(x^{(i)})}{\partial \theta_j} ∂θj∂J(θ)=2m1i=1∑m2(hθ(x(i))−y(i))⋅∂θj∂hθ(x(i))
其中, 2 2 2 和 1 2 \frac{1}{2} 21 相互抵消,简化为:
∂ J ( θ ) ∂ θ j = 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ ∂ h θ ( x ( i ) ) ∂ θ j \frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{m} \sum_{i=1}^{m} (h_\theta(x^{(i)}) - y^{(i)}) \cdot \frac{\partial h_\theta(x^{(i)})}{\partial \theta_j} ∂θj∂J(θ)=m1i=1∑m(hθ(x(i))−y(i))⋅∂θj∂hθ(x(i))
接下来,我们需要求 h θ ( x ( i ) ) h_\theta(x^{(i)}) hθ(x(i)) 对 θ j \theta_j θj 的偏导数。注意到 h θ ( x ( i ) ) = θ T x ( i ) = ∑ k = 1 n θ k x k ( i ) h_\theta(x^{(i)}) = \theta^T x^{(i)} = \sum_{k=1}^{n} \theta_k x_k^{(i)} hθ(x(i))=θTx(i)=∑k=1nθkxk(i),其中 x k ( i ) x_k^{(i)} xk(i)是第 i i i 个样本的第 k k k 个特征。根据导数规则, ∂ h θ ( x ( i ) ) ∂ θ j = x j ( i ) \frac{\partial h_\theta(x^{(i)})}{\partial \theta_j} = x_j^{(i)} ∂θ<