






















设一元函数 (y = f(x)) 具有一阶连续导数,目标是求解其局部极小值点 \(x^*\) 及对应的极小值 (f(x^*))。
导数与函数单调性的关系
对任意点 (x_k),若 (f'(x_k) > 0),则 (f(x)) 在 (x_k) 的邻域内单调递增;若 (f'(x_k) < 0),则 (f(x)) 在 (x_k) 的邻域内单调递减。
要使迭代点 (x_{k+1}) 满足 (f(x_{k+1}) < f(x_k)),需让 (x_{k+1}) 沿函数值下降的方向移动。
微分近似与步长方向推导
函数 \(y=f(x)\) 在点 \(x_0\) 处的导数定义为:
\(
f'(x_0) = \lim_{\Delta x \to 0} \frac{f(x_0+\Delta x) - f(x_0)}{\Delta x}
\)
由一阶微分近似,当 (\Delta x) 充分小时:
\[f(x_k+\Delta x) - f(x_k) \approx f'(x_k)\cdot\Delta x \]
要满足 (f(x_k+\Delta x) < f(x_k)),需 (f'(x_k)\cdot\Delta x < 0)。因为函数是单调递减,所以\(f'(x)<0\)。
可令 (\Delta x = -\alpha \cdot f'(x_k))(其中 (\alpha>0) 为步长,也称学习率),
导数的定义也可写成
\(
f'(x_0) = \lim_{x \to x_0} \frac{f(x) - f(x_0)}{x - x_0}
\)。其中:$x-x_0=\Delta x$,因此迭代公式为:
\[\boldsymbol{x_{k+1} -x_k= - \alpha \cdot f'(x_k)} \]
收敛性条件
若 (f(x)) 是凸函数($ f(x)=x^2$ 为凸函数,这与同济的高数定义是相反的),则梯度下降法产生的序列 ({x_k}) 必收敛到全局极小值点 (x^*);若 (f(x)) 非凸,则可能收敛到局部极小值点。
初始化参数
迭代计算
执行以下循环,直到满足收敛条件或达到最大迭代次数:
\[x_{k+1} = x_k - \alpha \cdot f'(x_k) \]
输出结果
极小值点近似值为 \(x^*\),极小值近似值为 (f(x^*))。
设目标函数 (f(x) = x^2 - 4x + 5),求其极小值点。
| 参数 | 数学约束 | 约束原因 |
|---|---|---|
设二元函数 (z = f(x, y)) 具有一阶连续偏导数,目标是求解其局部极小值点 \(\theta^*=(x^*,y^*)\)及对应的极小值 \(f(x^*, y^*)\)。
偏导数与函数单调性的关系
对任意点 (\theta_k=(x_k, y_k)),若 (f_x'(x_k, y_k) > 0),则 (f(x, y)) 在 (x_k) 邻域内关于 (x) 单调递增;若 (f_x'(x_k, y_k) < 0),则关于 (x) 单调递减;
同理,若 (f_y'(x_k, y_k) > 0),则 (f(x, y)) 在 (y_k) 邻域内关于 (y) 单调递增;若 (f_y'(x_k, y_k) < 0),则关于 (y) 单调递减。
要使迭代点 (\theta_{k+1}=(x_{k+1}, y_{k+1})) 满足 (f(\theta_{k+1}) < f(\theta_k)),需让 (\theta_{k+1}) 沿函数值下降的方向移动。
全微分近似与步长方向推导
函数 (z=f(x, y)) 在点 (\theta_0=(x_0, y_0)) 处的全微分定义为:
\[dz = f_x'(x_0, y_0)\Delta x + f_y'(x_0, y_0)\Delta y \]
其中 (x=x_0+\Delta x),(y=y_0+\Delta y)。由全微分近似,当 (\Delta x)、(\Delta y) 充分小时:
\[f(x_0+\Delta x, y_0+\Delta y) - f(x_0, y_0) \approx f_x'(x_0, y_0)\Delta x + f_y'(x_0, y_0)\Delta y \]
要满足 (f(x_0+\Delta x, y_0+\Delta y) < f(x_0, y_0)),需 (f_x'(x_0, y_0)\Delta x + f_y'(x_0, y_0)\Delta y < 0)。
定义二元函数的梯度 (\nabla f(\theta) = \left( f_x'(x, y), f_y'(x, y) \right)^T),令 (\Delta\theta = \left( \Delta x, \Delta y \right)^T = -\alpha \cdot \nabla f(\theta_k))(其中 (\alpha>0) 为步长,也称学习率),代入得:
\[\nabla f(\theta_k)^T \cdot \Delta\theta = -\alpha \cdot \|\nabla f(\theta_k)\|^2 < 0 \]
显然满足函数值下降的要求。将 (\theta=(x, y)) 写成向量形式 (\theta = \begin{pmatrix} x \ y \end{pmatrix}),则迭代公式为:
\[\boldsymbol{\theta_{k+1} - \theta_k = -\alpha \cdot \nabla f(\theta_k)} \]
展开为分量形式:
\[\begin{cases} x_{k+1} = x_k - \alpha \cdot f_x'(x_k, y_k) \\ y_{k+1} = y_k - \alpha \cdot f_y'(x_k, y_k) \end{cases} \]
可以证明,负梯度方向 (-\nabla f(\theta)) 是该点处函数值下降最快的方向。
收敛性条件
若 (f(x, y)) 是机器学习意义下的凸函数(如下凸函数 \((f(x, y)=x^2+y^2)\),与同济高数的上凸函数定义体系不同),则梯度下降法产生的序列 ({\theta_k}) 必收敛到全局极小值点 (\theta^*);若 (f(x, y)) 非凸,则可能收敛到局部极小值点。
初始化参数
迭代计算
执行以下循环,直到满足收敛条件或达到最大迭代次数:
\[\theta_{k+1} = \theta_k - \alpha \cdot \nabla f(\theta_k) \]
即 \(\begin{cases} x_{k+1} = x_k - \alpha \cdot f_x'(x_k, y_k) \\ y_{k+1} = y_k - \alpha \cdot f_y'(x_k, y_k) \end{cases} \)输出结果
极小值点近似值为 \((\theta^*=(x^*, y^*))\),极小值近似值为 \((f(x^*, y^*)\))。
设目标函数 (f(x, y) = x^2 + y^2),求其极小值点。
\(x_*=0.000064 ,y_*=0.000128\) 时,\(f(x^*, y^*) = 0.000064^2 + 0.000128^2 = 2.048×10^-8\) 。太小了可以认为极小值点 \(\theta^* \approx (0, 0)\),极小值 \(f(x^*, y^*) = 0^2 + 0^2 = 0\)
| 参数 | 数学约束 | 约束原因 |
|---|---|---|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。