nodejs做网站的弊端网站备案中是什么意思

news/2025/10/5 21:52:58/文章来源:
nodejs做网站的弊端,网站备案中是什么意思,高唐做网站,怎么做网站的防盗链Title: 非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I) 文章目录 前言I. 从高斯-牛顿法II. 到阻尼高斯-牛顿法III. 再到列文伯格-马夸尔特法1. 列文伯格-马夸尔特法的由来2. 列文伯格-马夸尔特法的说明说明一. 迭代方向说明二. 近似于带权重的梯度…Title: 非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I) 文章目录 前言I. 从高斯-牛顿法II. 到阻尼高斯-牛顿法III. 再到列文伯格-马夸尔特法1. 列文伯格-马夸尔特法的由来2. 列文伯格-马夸尔特法的说明说明一. 迭代方向说明二. 近似于带权重的梯度下降法说明三. 近似于高斯-牛顿法 3. 列文伯格-马夸尔特法的调参拟合程度评估以近似拟合视角调参以表现特性视角调参调参算法 4. 列文伯格-马夸尔特法的停止条件条件一. 梯度不再下降条件二. 迭代点不更新条件三. 达到最大迭代数 5. 列文伯格-马夸尔特法的算法流程 IV. 总结参考文献 前言 关联博客 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (I) 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (II) 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (III) 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (IV) 非线性最小二乘问题的数值方法 —— 从牛顿迭代法到高斯-牛顿法 (实例篇 V) I. 从高斯-牛顿法 在前面的博文中, 已知非线性最小二乘问题的高斯-牛顿法 (Gauss-Newton Method) 的迭代更新公式 x [ i 1 ] x [ i ] − H ~ ( x [ i ] ) − 1 ∇ g ( x [ i ] ) (I-1-1) \mathbf{x}_{[i1]} \mathbf{x}_{[i]} - \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) ^{-1} \,\nabla g(\mathbf{x}_{[i]}) \tag{I-1-1} x[i1]​x[i]​−H (x[i]​)−1∇g(x[i]​)(I-1-1) 其中 H ~ ( x ) [ ∂ r ( x ) ∂ x ] T ∂ r ( x ) ∂ x (I-1-2) \widetilde{\mathbf{H}}(\mathbf{x}) \left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \tag{I-1-2} H (x)[∂x∂r(x)​]T∂x∂r(x)​(I-1-2) ∇ g ( x ) [ ∂ r ( x ) ∂ x ] T r ( x ) (I-1-3) \nabla g(\mathbf{x}) \left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \mathbf{r}(\mathbf{x}) \tag{I-1-3} ∇g(x)[∂x∂r(x)​]Tr(x)(I-1-3) 也知道了高斯-牛顿法的使用条件 (1) 误差函数 r i r_i ri​ ( i 1 , 2 , ⋯ , m i1,2, \cdots, m i1,2,⋯,m) 在包含最优参数 x ∗ \mathbf{x}^{\ast} x∗ 的局部凸集合内部是二次连续可微的; (2) 迭代初始点 x [ 0 ] \mathbf{x}_{[0]} x[0]​ 接近于局部极小点 x ∗ \mathbf{x}^{\ast} x∗; (3) ∂ r ( x ) ∂ x ∣ x ∗ \left.\frac{\partial \mathbf{r}(\mathbf{x})}{\partial \mathbf{x}}\right|_{\mathbf{x}^{\ast}} ∂x∂r(x)​ ​x∗​ 列满秩 (其实每一步都要求列满秩, 只是各迭代值接近于 x ∗ \mathbf{x}^{\ast} x∗ 的缘故, 利用连续性, 故只要求 x ∗ \mathbf{x}^{\ast} x∗ 上的列满秩); (4) 局部极小值 ∣ g ( x ) ∣ |g(\mathbf{x})| ∣g(x)∣ 很小. 列文伯格 (K. Levenberg) 和马夸尔特 (D. W. Marquardt) 建议使用阻尼高斯-牛顿法 (Damped Gauss-Newton Method), 以优化高斯-牛顿法的性能和规避高斯-牛顿法对初始值的敏感度 (条件 2、4) 和列满秩 (条件 3) 要求. II. 到阻尼高斯-牛顿法 非线性最小二乘问题的代价函数 g ( x ) g(\mathbf{x}) g(x) 在 x [ i ] \mathbf{x}_{[i]} x[i]​ 处取二阶泰勒近似为 g ( x ) ≈ g ( x [ i ] ) ( ∇ g ( x [ i ] ) ) T ( x − x [ i ] ) 1 2 ( x − x [ i ] ) T H ( x [ i ] ) ( x − x [ i ] ) (II-1-1) g(\mathbf{x}) \approx g(\mathbf{x}_{[i]}) {\left(\nabla g(\mathbf{x}_{[i]})\right)^{\small\rm T}}(\mathbf{x} - \mathbf{x}_{[i]}) \frac{1}{2} (\mathbf{x} - \mathbf{x}_{[i]})^{\small\rm T} \mathbf{H}(\mathbf{x}_{[i]}) (\mathbf{x} - \mathbf{x}_{[i]}) \tag{II-1-1} g(x)≈g(x[i]​)(∇g(x[i]​))T(x−x[i]​)21​(x−x[i]​)TH(x[i]​)(x−x[i]​)(II-1-1) 将代价函数在 x [ i ] \mathbf{x}_{[i]} x[i]​ 附近的二阶泰勒近似定义为代价函数的模型 (model) L ( h [ i ] ) ≜ g ( x [ i ] ) ( ∇ g ( x [ i ] ) ) T h [ i ] 1 2 h [ i ] T H ( x [ i ] ) h [ i ] (II-1-2) L(\mathbf{h}_{[i]}) \triangleq g(\mathbf{x}_{[i]}) {\left(\nabla g(\mathbf{x}_{[i]})\right)^{\small\rm T}} \mathbf{h}_{[i]} \frac{1}{2} \mathbf{h}_{[i]}^{\small\rm T} \mathbf{H}(\mathbf{x}_{[i]}) \mathbf{h}_{[i]} \tag{II-1-2} L(h[i]​)≜g(x[i]​)(∇g(x[i]​))Th[i]​21​h[i]T​H(x[i]​)h[i]​(II-1-2) 其中 h [ i ] x − x [ i ] \mathbf{h}_{[i]} \mathbf{x} - \mathbf{x}_{[i]} h[i]​x−x[i]​ 为阻尼高斯-牛顿法更新步长. 阻尼高斯-牛顿法首先利用阻尼特性以及原代价函数的二阶泰勒近似构建的新代价函数 G ( h [ i ] ) ≜ L ( h [ i ] ) 1 2 μ h [ i ] T h [ i ] (II-1-3) G(\mathbf{h}_{[i]}) \triangleq L(\mathbf{h}_{[i]}) \frac{1}{2} \mu \, {\mathbf{h}_{[i]}}^{\small\rm T} \,{\mathbf{h}_{[i]}} \tag{II-1-3} G(h[i]​)≜L(h[i]​)21​μh[i]​Th[i]​(II-1-3) 其中 μ \mu μ 为阻尼参数 (Damping Parameter), 并且 μ ≥ 0 \mu \geq 0 μ≥0; 1 2 μ h [ i ] T h [ i ] \frac{1}{2} \mu \, {\mathbf{h}_{[i]}}^{\small\rm T} \,{\mathbf{h}_{[i]}} 21​μh[i]​Th[i]​ 称为阻尼项. 阻尼项作为步长的惩罚项引入代价函数, 用以惩罚大步长. 直观解释就是既要获得代价函数极小值, 又要使得步长尽量短. 如果把代价函数视作系统能量, 迭代步长就是为寻找系统能量极小值时的 “作用力”, 阻尼项就是 “做功消耗”. —— 这是最优控制的观点 而这里的阻尼参数 μ \mu μ 也可以看做是代价函数 L L L 与 做功 1 2 h T h \frac{1}{2} \mathbf{h}^{\small\rm T} \mathbf{h} 21​hTh 之间的权重. 基于该新的代价函数去寻找最优的迭代步[1] h d m arg ⁡ min ⁡ h [ i ] { L ( h [ i ] ) 1 2 μ h [ i ] T h [ i ] } (II-1-4) \mathbf{h}_{\rm dm} \underset{\mathbf{h}_{[i]}}{\arg\min}\left\{ L(\mathbf{h}_{[i]})\frac{1}{2} \mu \, {\mathbf{h}_{[i]}}^{\small\rm T} \,{\mathbf{h}_{[i]}} \right\} \tag{II-1-4} hdm​h[i]​argmin​{L(h[i]​)21​μh[i]​Th[i]​}(II-1-4) 有了阻尼形式的新代价函数, 那么就知道得到最优步长的必要条件是 ∇ G ( h [ i ] ) ∇ g ( x [ i ] ) H ( x [ i ] ) h [ i ] μ h [ i ] 0 (II-1-5) \nabla G(\mathbf{h}_{[i]}) \nabla g(\mathbf{x}_{[i]}) \mathbf{H}(\mathbf{x}_{[i]}) \mathbf{h}_{[i]} \mu \mathbf{h}_{[i]} 0 \tag{II-1-5} ∇G(h[i]​)∇g(x[i]​)H(x[i]​)h[i]​μh[i]​0(II-1-5) 整理得到 − ∇ g ( x [ i ] ) ( H ( x [ i ] ) μ I ) h [ i ] (II-1-6) -\nabla g(\mathbf{x}_{[i]}) \left( \mathbf{H}(\mathbf{x}_{[i]}) \mu \mathbf{I} \right) \mathbf{h}_{[i]} \tag{II-1-6} −∇g(x[i]​)(H(x[i]​)μI)h[i]​(II-1-6) 利用高斯-牛顿法中简化 Hessian 矩阵 H ~ ( x [ i ] ) \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) H (x[i]​) H ~ ( x [ i ] ) ≜ [ ∂ r ( x ) ∂ x ] T ∂ r ( x ) ∂ x ∣ x [ i ] (II-1-7) \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \triangleq \left.\left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}}\right|_{\mathbf{x}_{[i]}} \tag{II-1-7} H (x[i]​)≜[∂x∂r(x)​]T∂x∂r(x)​ ​x[i]​​(II-1-7) 代替式 (II-1-6) 中的完整 Hessian 矩阵 H ( x [ i ] ) \mathbf{H}(\mathbf{x}_{[i]}) H(x[i]​), 得到 − ∇ g ( x [ i ] ) ( H ~ ( x [ i ] ) μ I ) h [ i ] (II-1-8) -\nabla g(\mathbf{x}_{[i]}) \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \mathbf{I} \right) \mathbf{h}_{[i]} \tag{II-1-8} −∇g(x[i]​)(H (x[i]​)μI)h[i]​(II-1-8) 因为简化 Hessian 矩阵是对阵矩阵, 故是半正定的. 那么只要取阻尼参数 μ 0 \mu 0 μ0, 就可以得到 H ~ ( x [ i ] ) μ I \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \mathbf{I} H (x[i]​)μI 为正定矩阵, 故此时 H ~ ( x [ i ] ) μ I \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \mathbf{I} H (x[i]​)μI 可逆. 那么可以得到迭代步长公式 h [ i ] − ( H ~ ( x [ i ] ) μ I ) − 1 ∇ g ( x [ i ] ) (II-1-9) \mathbf{h}_{[i]} - \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \mathbf{I} \right)^{-1}\, \nabla g(\mathbf{x}_{[i]}) \tag{II-1-9} h[i]​−(H (x[i]​)μI)−1∇g(x[i]​)(II-1-9) 因为这里用到了阻尼参数构建的新代价函数并基于高斯-牛顿法进行计算, 所以该方法称为阻尼高斯-牛顿法. 阻尼高斯-牛顿法的迭代更新公式为 x [ i 1 ] x [ i ] − ( H ~ ( x [ i ] ) μ I ) − 1 ∇ g ( x [ i ] ) (II-1-10) \mathbf{x}_{[i1]} \mathbf{x}_{[i]} - \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \mathbf{I} \right)^{-1}\, \nabla g(\mathbf{x}_{[i]}) \tag{II-1-10} x[i1]​x[i]​−(H (x[i]​)μI)−1∇g(x[i]​)(II-1-10) 形式上和高斯-牛顿法只相差了 μ I \mu \mathbf{I} μI 项. III. 再到列文伯格-马夸尔特法 1. 列文伯格-马夸尔特法的由来 列文伯格-马夸尔特法 (Levenberg-Marquardt Method) 在阻尼高斯-牛顿法的基础上进一步优化得来, 由马夸尔特首次提出. 事实上, 许多文献把上一节中的阻尼高斯-牛顿法也称为列文伯格-马夸尔特法. 那么, 此处的列文伯格-马夸尔特法可以说是 “更优化的列文伯格-马夸尔特法”, 而阻尼高斯-牛顿法可以视作为 “原始的列文伯格-马夸尔特法”. 从阻尼高斯-牛顿法的迭代更新式 (II-1-10) 可知, 当阻尼参数 μ \mu μ 较大的时候, Hessian 矩阵 H ~ ( x [ i ] ) \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) H (x[i]​) 基本不起作用, 退化为 h [ i ] ≈ − 1 μ ∇ g ( x [ i ] ) (III-1-1) \mathbf{h}_{[i]} \approx - \frac{1}{\mu} \nabla g(\mathbf{x}_{[i]}) \tag{III-1-1} h[i]​≈−μ1​∇g(x[i]​)(III-1-1) 这其实是另一种常用的数值优化方法 —— 梯度下降法 (Gradient Descent Method) 或最速下降法 (Steepest Descent Method). 缺少了二阶导数的作用 (即 Hessian 矩阵的作用) 使得整个向极小值迭代过程中的收敛速度非常地慢. Hessian 矩阵 (二阶导数) 其实反映了整个代价函数的曲率变化情况. 二次导数是对梯度的求导, 曲率可视作为对梯度的预测. 故 Hessian 矩阵视作为对代价函数的梯度的预测. 缺少了预测项的收敛速度就会受到影响. 更直观地, 由式 (III-1-1) 可以看出, μ \mu μ 较大时则迭代步长 h [ i ] \mathbf{h}_{[i]} h[i]​ 较小, 小步慢行. 经验上, 我们需要当梯度变化大 (曲率大) 的时候, 更新步长小一点; 而当梯度变化小的时候 (曲率小), 更新步长大一点. 基于以上近似地/经验地分析, 在阻尼高斯-牛顿法的迭代公式上优化, 得到列文伯格-马夸尔特法的迭代公式 x [ i 1 ] x [ i ] − ( H ~ ( x [ i ] ) μ d i a g [ H ~ ( x [ i ] ) ] ) − 1 ∇ g ( x [ i ] ) (III-1-2) \mathbf{x}_{[i1]} \mathbf{x}_{[i]} - \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \,{\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right] \right)^{-1}\, \nabla g(\mathbf{x}_{[i]}) \tag{III-1-2} x[i1]​x[i]​−(H (x[i]​)μdiag[H (x[i]​)])−1∇g(x[i]​)(III-1-2) 等价地写成 h [ i ] − ( H ~ ( x [ i ] ) μ d i a g [ H ~ ( x [ i ] ) ] ) − 1 ∇ g ( x [ i ] ) (III-1-3) \mathbf{h}_{[i]} - \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \,{\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right] \right)^{-1}\, \nabla g(\mathbf{x}_{[i]}) \tag{III-1-3} h[i]​−(H (x[i]​)μdiag[H (x[i]​)])−1∇g(x[i]​)(III-1-3) H ~ ( x ) \widetilde{\mathbf{H}}(\mathbf{x}) H (x) 的对角元素也记作 h ~ k k \tilde{h}_{kk} h~kk​, 即对应 k k k 行 k k k 列位置上的元素. 阻尼高斯-牛顿法向列文伯格-马夸尔特法改进, 更多的是基于马夸尔特等计算数学家的经验, 没有最优化上的推导, 但是实际效果却比较好且广泛应用[2]. 2. 列文伯格-马夸尔特法的说明 说明一. 迭代方向 简化的 Hessian 矩阵的半正定特性, 保证迭代步沿着正确的代价函数下降的方向进行. 由简化 Hessian 矩阵的定义可知 H ~ ( x [ i ] ) \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) H (x[i]​) 是半正定, 即 ∇ g ( x [ i ] ) T H ~ ( x [ i ] ) ∇ g ( x [ i ] ) ∇ g ( x [ i ] ) T [ ∂ r ( x ) ∂ x ∣ x [ i ] ] T ∂ r ( x ) ∂ x ∣ x [ i ] ∇ g ( x [ i ] ) [ ∂ r ( x ) ∂ x ∣ x [ i ] ∇ g ( x [ i ] ) ] T ∂ r ( x ) ∂ x ∣ x [ i ] ∇ g ( x [ i ] ) ≥ 0 (III-2-1) \begin{aligned} {\nabla g(\mathbf{x}_{[i]})}^{\rm\small T}\, \widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\, \nabla g(\mathbf{x}_{[i]}) {\nabla g(\mathbf{x}_{[i]})}^{\rm\small T} \left.\left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right|_{\mathbf{x}_{[i]}}\right]^{\rm\small T} \left.\frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}}\right|_{\mathbf{x}_{[i]}} \nabla g(\mathbf{x}_{[i]})\\ \left[ \left.\frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}}\right|_{\mathbf{x}_{[i]}} \nabla g(\mathbf{x}_{[i]})\right]^{\small \rm T} \left.\frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}}\right|_{\mathbf{x}_{[i]}} \nabla g(\mathbf{x}_{[i]})\\ \geq 0 \end{aligned} \tag{III-2-1} ∇g(x[i]​)TH (x[i]​)∇g(x[i]​)​∇g(x[i]​)T[∂x∂r(x)​ ​x[i]​​]T∂x∂r(x)​ ​x[i]​​∇g(x[i]​)[∂x∂r(x)​ ​x[i]​​∇g(x[i]​)]T∂x∂r(x)​ ​x[i]​​∇g(x[i]​)≥0​(III-2-1) 由矩阵正半定的定义可知, 其对应对角矩阵 d i a g [ H ~ ( x [ i ] ) ] {\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right] diag[H (x[i]​)] 的每个对角元素也都是大于等于零的. 我们实际计算应用中, 在 μ 0 \mu 0 μ0 (人为设定就行) 情况下, 出现 Hessian 矩阵对角元素全为零的情况微乎其微. 即使出现这种极端事件, 数值上特殊处理就可以解决问题 (如给个轻微的数值扰动, 或者退回到阻尼高斯-牛顿法). 所以我们可以假定 d i a g [ H ~ ( x [ i ] ) ] {\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right] diag[H (x[i]​)] 正定. 因为正定矩阵、正定矩阵的对角矩阵、正定矩阵的逆都是正定的, 这样就有 g ( x [ i 1 ] ) g ( x [ i ] − ( H ~ ( x [ i ] ) μ d i a g [ H ~ ( x [ i ] ) ] ) − 1 ∇ g ( x [ i ] ) ) g ( x [ i ] ) − ∇ g ( x [ i ] ) T ( H ~ ( x [ i ] ) μ d i a g [ H ~ ( x [ i ] ) ] ) − 1 ∇ g ( x [ i ] ) ⏟ 0 (III-2-2) \begin{aligned} g(\mathbf{x}_{[i1]}) g\left(\mathbf{x}_{[i]} - \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \,{\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right] \right)^{-1}\, \nabla g(\mathbf{x}_{[i]})\right)\\ g(\mathbf{x}_{[i]}) - \underbrace{\nabla g(\mathbf{x}_{[i]})^{\rm\small T} \left( \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \,{\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right] \right)^{-1}\, \nabla g(\mathbf{x}_{[i]})}_{ 0} \end{aligned} \tag{III-2-2} g(x[i1]​)​g(x[i]​−(H (x[i]​)μdiag[H (x[i]​)])−1∇g(x[i]​))g(x[i]​)−0 ∇g(x[i]​)T(H (x[i]​)μdiag[H (x[i]​)])−1∇g(x[i]​)​​​(III-2-2) 保证了每一步迭代都向着代价函数降低的方向进行, 即 g ( x [ i 1 ] ) g ( x [ i ] ) g(\mathbf{x}_{[i1]}) g(\mathbf{x}_{[i]}) g(x[i1]​)g(x[i]​). 另外, 因为 H ~ ( x [ i ] ) μ I \widetilde{\mathbf{H}}(\mathbf{x}_{[i]}) \mu \,\mathbf{I} H (x[i]​)μI 是正定的, 作为 “原始的列文伯格-马夸尔特法” 的阻尼高斯-牛顿法直接能够保证下降方向的迭代更新. 说明二. 近似于带权重的梯度下降法 如果阻尼参数 μ \mu μ 取得较大时, 迭代步长公式近似为 h [ i ] ≈ − ( μ d i a g [ H ~ ( x [ i ] ) ] ) − 1 ∇ g ( x [ i ] ) (III-2-3) \mathbf{h}_{[i]} \approx - \left( { \mu \,{\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x}_{[i]})\right]}\right)^{-1} \nabla g(\mathbf{x}_{[i]}) \tag{III-2-3} h[i]​≈−(μdiag[H (x[i]​)])−1∇g(x[i]​)(III-2-3) 这其实近似为带权重的梯度下降法 (Weighted-Gradient Descent Method). 梯度下降法适用于初始点 (当前迭代点) 远离极小值的情况. 也就是说在远离极值点进行迭代时, 高斯-牛顿法无法满足其严格的使用条件. 此时通过设定较大的阻尼参数 μ \mu μ, 将迭代方法变成梯度下降法来执行. 当 μ \mu μ 较大时, 需要克服普通梯度下降法 (如式 (III-1-1)) 的一些缺点 - 收敛速度慢 - 梯度小 (缓) 的迭代步也小, 梯度大 (陡) 的时候迭代步反而大 - 多维代价函数在不同方向上具有不同梯度变化情况, 但是迭代步计算却各向同性 我们希望即使是退化为梯度下降法情况下, 仍能实现以下特性 - 梯度变化小 (曲率小) 的方向上迭代步大 (激进), 而梯度变化大 (曲率大) 的方向上迭代步小 (谨慎), 以防止 “预测不准而冲过头” - 迭代步长不因 μ \mu μ 值取大而过分变小 这样就有了带权重的梯度下降法 (式 (III-2-3)). 其中简化 Hessian 矩阵代表代价函数的曲率, 作为不同方向上迭代步的权重及步长缩放比例而引入, 以实现上述特性. 说明三. 近似于高斯-牛顿法 如果阻尼参数 μ \mu μ 取得较小时, 迭代步长公式近似为 h [ i ] ≈ − H ~ ( x [ i ] ) − 1 ∇ g ( x [ i ] ) (III-2-4) \mathbf{h}_{[i]} \approx - \widetilde{\mathbf{H}}(\mathbf{x}_{[i]})^{-1}\, \nabla g(\mathbf{x}_{[i]}) \tag{III-2-4} h[i]​≈−H (x[i]​)−1∇g(x[i]​)(III-2-4) 这样列文伯格-马夸尔特法就近似退化为高斯-牛顿法. 我们已经知道高斯-牛顿法每一迭代步都能够得到, 代价函数对应的二阶泰勒近似的极小值 (参考高斯-牛顿法的解读优化观点). 这也是高斯-牛顿法比起梯度下降法具有更快收敛速度的原因 (关于收敛速度的数学证明, 本篇博文不展开). 甚至如果代价函数在全局上就是严格的式 (II-1-1) 描述的二次形式, 那么高斯-牛顿法只要一步迭代就可以到达极小值点. 综合一下就是, - 阻尼参数 μ \mu μ 取较小时, 可以以近似高斯-牛顿法快速迭代并向极小值收敛, 追求收敛速度; - 阻尼参数 μ \mu μ 取较大时, 可以以近似带权重的梯度下降法进行迭代, 防止 “迭代过冲” 或 “迭代振荡”, 也能保证计算的可实现性. 3. 列文伯格-马夸尔特法的调参 拟合程度评估 由式 (II-1-2), 阻尼高斯-牛顿法中的阻尼参数 μ \mu μ 可以视作为新构建的代价函数中原代价函数与 “做功消耗” 之间的权重. 由式 (III-2-3) 和式 (III-2-4) 可知, 列文伯格-马夸尔特法中的阻尼参数 μ \mu μ 的相对大小决定了, 列文伯格-马夸尔特法表现出梯度下降法特性还是表现出高斯-牛顿法特性. 所谓的调参, 就是根据代价函数 g ( x ) g(\mathbf{x}) g(x) 在 x [ i ] \mathbf{x}_{[i]} x[i]​ 附近的二阶泰勒近似定义的模型 L L L 相对于代价函数 g g g 的近似程度, 来调整迭代算法中每一步的阻尼参数 μ \mu μ 的值. 定义增益比率 (Gain Ratio) [1] ϱ [ i ] g ( x [ i ] ) − g ( x [ i ] h [ i ] ) L ( 0 ) − L ( h [ i ] ) (III-3-1) \varrho_{[i]} \frac{g(\mathbf{x}_{[i]}) - g(\mathbf{x}_{[i]}\mathbf{h}_{[i]})}{L(\mathbf{0}) - L(\mathbf{h}_{[i]})} \tag{III-3-1} ϱ[i]​L(0)−L(h[i]​)g(x[i]​)−g(x[i]​h[i]​)​(III-3-1) 用来衡量模型 L L L 对代价函数 g g g 的近似拟合程度. 以近似拟合视角调参 之前分析了列文伯格-马夸尔特法以及阻尼高斯-牛顿法都是向代价函数下降的方向进行的. 所以当前迭代的模型 (近似代价函数) L ( 0 ) L(\mathbf{0}) L(0) 必然大于下一步迭代的模型 (近似代价函数) L ( h ) L(\mathbf{h}) L(h), 故上式分母大于零. 如果分子小于零 (即增益比率小) 或者数值比较小 (小于且不接近于 1 的小数), 说明真实的代价函数 g g g 在向增大的方向迭代了, 进一步说明当前衡量模型 L L L 对代价函数的 g g g 的拟合程度不高. 由泰勒近似展开原理可知, 这是因为迭代步 h [ i ] \mathbf{h}_{[i]} h[i]​ 太长了, 需要缩小迭代步. 由式 (III-1-3) 可知, 增加 μ \mu μ 的值可以减小步长. 相反地, 如果分子比较大 (大于零且接近于 1), 说明当前模型 L L L 对代价函数 g g g 的拟合程度较高, 可以进一步增加迭代步长 h \mathbf{h} h, 来加快迭代收敛的速度. 由式 (III-1-3) 可知, 减小 μ \mu μ 的值可以增加步长, 故此时要减小 μ \mu μ. 以表现特性视角调参 另外, 也可从让列文伯格-马夸尔特法在不同条件下表现出梯度下降法特性还是高斯-牛顿法特性的角度来调整参数 μ \mu μ. 如果增益比率较大, 说明模型 L L L (近似代价函数) 在当前迭代中较好地拟合了代价函数, 也就是说代价函数近似于如式 (II-1-2) 描述的二次形式, 此种情况下高斯-牛顿法就特别适合, 能够非常快地收敛到极小值点附近. 也就是说, 增益比率较大时, 希望列文伯格-马夸尔特法表现出高斯-牛顿法的特质, 此时需要将阻尼参数 μ \mu μ 减小. 如果增益比率较小, 说明模型 L L L (近似代价函数) 在当前迭代中无法较好地拟合表示代价函数, 这可能是由于当前迭代点还远离最小值点. 根据高斯-牛顿法的使用条件, 这种情况下不适合采用高斯-牛顿法, 而宜采用相对保守的带权重的梯度下降法. 也就是说, 增益比率较小时, 希望列文伯格-马夸尔特法表现出梯度下降法的特质, 此时需要将阻尼参数 μ \mu μ 加大. 可以看出不管是以近似拟合视角调参还是以表现特性视角调参, 得到的调参方法是一致的. 调参算法 if ϱ 0 μ : μ ∗ max ⁡ { 1 3 , 1 − ( 2 ϱ − 1 ) 3 } ν : 2 else μ : μ ∗ ν ν : 2 ∗ ν \begin{aligned} \textbf{if} \;\; \varrho 0\\ \mu : \mu * \max\{\frac{1}{3}, 1-(2\varrho -1)^3 \}\\ \nu : 2\\ \textbf{else}\\ \mu : \mu * \nu\\ \nu : 2*\nu \end{aligned} ifelse​ϱ0μ:μ∗max{31​,1−(2ϱ−1)3}ν:2μ:μ∗νν:2∗ν​ 4. 列文伯格-马夸尔特法的停止条件 条件一. 梯度不再下降 ∥ ∇ g ( x [ i ] ) ∥ ∞ ≤ ε 1 (III-4-1) \| \nabla g(\mathbf{x}_{[i]}) \|_{\infin} \leq \varepsilon_1 \tag{III-4-1} ∥∇g(x[i]​)∥∞​≤ε1​(III-4-1) 其中 ε 1 \varepsilon_1 ε1​ 为一小量. 条件二. 迭代点不更新 ∥ x [ i 1 ] − x [ i ] ∥ ≤ ε 2 ( ∥ x [ i ] ∥ ε 2 ) (III-4-2) \|\mathbf{x}_{[i1]} - \mathbf{x}_{[i]}\| \leq \varepsilon_2(\|\mathbf{x}_{[i]}\|\varepsilon_2) \tag{III-4-2} ∥x[i1]​−x[i]​∥≤ε2​(∥x[i]​∥ε2​)(III-4-2) 其中 ε 2 \varepsilon_2 ε2​ 为一小量. 当 ∥ x [ i ] ∥ 0 \|\mathbf{x}_{[i]}\|0 ∥x[i]​∥0 时, 上式右手边为 ε 2 2 \varepsilon_2^2 ε22​. 条件三. 达到最大迭代数 i ≥ i max ⁡ (III-4-3) i \geq i_{\max} \tag{III-4-3} i≥imax​(III-4-3) 其中 i max ⁡ i_{\max} imax​ 为最大迭代步数, 防止程序无限循环. 以上三个停止条件任意一个得到满足, 算法程序就终止运行并返回运算结果. 5. 列文伯格-马夸尔特法的算法流程 列文伯格-马夸尔特法的算法流程[1]如下: Levenberg-Marquardt Method begin i : 0 ν : 2 x : x 0 H ~ ( x ) : [ ∂ r ( x ) ∂ x ] T ∂ r ( x ) ∂ x ∇ g ( x ) : [ ∂ r ( x ) ∂ x ] T r ( x ) f o u n d : ( ∥ ∇ g ( x ) ∥ ∞ ≤ ε 1 ) μ : τ ∗ max ⁡ { h ~ k k } whlie ( not f o u n d ) and ( i i m a x ) i : i 1 h : − ( H ~ ( x ) μ d i a g [ H ~ ( x ) ] ) − 1 ∇ g ( x ) if ∥ h ∥ ≤ ε 2 ( ∥ x ∥ ε 2 ) f o u n d : t r u e e l s e x n e w : x h ϱ : ( g ( x ) − g ( x n e w ) ) / ( L ( 0 ) − L ( h ) ) if ϱ 0 { s t e p a c c e p t a b l e } x : x n e w H ~ ( x ) : [ ∂ r ( x ) ∂ x ] T ∂ r ( x ) ∂ x ∇ g ( x ) : [ ∂ r ( x ) ∂ x ] T r ( x ) f o u n d : ( ∥ ∇ g ( x ) ∥ ∞ ≤ ε 1 ) μ : μ ∗ max ⁡ { 1 3 , 1 − ( 2 ϱ − 1 ) 3 } ν : 2 else { s t e p u n a c c e p t a b l e } μ : μ ∗ ν ν : 2 ∗ ν end \begin{array}{ll} \textbf{Levenberg-Marquardt Method}\\ \textbf{begin}\\ \qquad i:0\\ \qquad \nu:2\\ \qquad \mathbf{x}:\mathbf{x}_0\\ \qquad \widetilde{\mathbf{H}}(\mathbf{x}) : \left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \\ \qquad \nabla g(\mathbf{x}) : \left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \mathbf{r}(\mathbf{x}) \\ \qquad found: \left(\| \nabla g(\mathbf{x}) \|_{\infin} \leq \varepsilon_1\right)\\ \qquad \mu: \tau * \max\{\tilde{h}_{kk}\}\\ \textbf{whlie}\;\; (\textbf{not}\; found)\; \textbf{and}\; (ii_{max})\\ \qquad i:i1\\ \qquad \mathbf{h} : - \left( \widetilde{\mathbf{H}}(\mathbf{x}) \mu \,{\rm diag}\left[\widetilde{\mathbf{H}}(\mathbf{x})\right] \right)^{-1}\, \nabla g(\mathbf{x})\\ \qquad\textbf{if} \;\;\|\mathbf{h}\| \leq \varepsilon_2(\|\mathbf{x}\|\varepsilon_2)\\ \qquad \qquad found : \mathbf{true}\\ \qquad \mathbf{else}\\ \qquad \qquad \mathbf{x}_{\rm new} : \mathbf{x}\mathbf{h} \\ \qquad\qquad \varrho : \left({g(\mathbf{x}) - g(\mathbf{x}_{\rm new})}\right) / \left( {L(\mathbf{0}) - L(\mathbf{h})}\right)\\ \qquad\qquad \textbf{if} \; \varrho 0 \qquad\qquad\qquad\qquad\qquad{\rm \{step\; acceptable\}}\\ \qquad\qquad\qquad \mathbf{x}:\mathbf{x}_{\rm new}\\ \qquad \qquad\qquad \widetilde{\mathbf{H}}(\mathbf{x}) : \left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \\ \qquad \qquad\qquad \nabla g(\mathbf{x}) : \left[ \frac{\partial\mathbf{r}(\mathbf{x})}{\partial \mathbf{x}} \right]^{\rm\small T} \mathbf{r}(\mathbf{x}) \\ \qquad\qquad\qquad found: \left(\| \nabla g(\mathbf{x}) \|_{\infin} \leq \varepsilon_1\right)\\ \qquad\qquad\qquad \mu : \mu * \max\{\frac{1}{3}, 1-(2\varrho -1)^3 \}\\ \qquad\qquad\qquad \nu : 2\\ \qquad\qquad \textbf{else} \qquad\qquad\qquad\qquad\qquad{\rm \{step\; unacceptable\}}\\ \qquad\qquad\qquad \mu : \mu * \nu\\ \qquad\qquad\qquad \nu : 2*\nu \\ \textbf{end} \end{array} Levenberg-Marquardt Methodbegini:0ν:2x:x0​H (x):[∂x∂r(x)​]T∂x∂r(x)​∇g(x):[∂x∂r(x)​]Tr(x)found:(∥∇g(x)∥∞​≤ε1​)μ:τ∗max{h~kk​}whlie(notfound)and(iimax​)i:i1h:−(H (x)μdiag[H (x)])−1∇g(x)if∥h∥≤ε2​(∥x∥ε2​)found:trueelsexnew​:xhϱ:(g(x)−g(xnew​))/(L(0)−L(h))ifϱ0{stepacceptable}x:xnew​H (x):[∂x∂r(x)​]T∂x∂r(x)​∇g(x):[∂x∂r(x)​]Tr(x)found:(∥∇g(x)∥∞​≤ε1​)μ:μ∗max{31​,1−(2ϱ−1)3}ν:2else{stepunacceptable}μ:μ∗νν:2∗νend​ IV. 总结 本篇博客从高斯-牛顿法开始, 引入阻尼高斯-牛顿法. 阻尼高斯-牛顿法视作为 “初级/原始” 的列文伯格-马夸尔特法. 然后在阻尼高斯-牛顿法的基础上进行优化得到列文伯格-马夸尔特法. 对列文伯格-马夸尔特法的性质进行了详细说明与分析. 阻尼参数作为该算法中的重要参数, 故说明了如何在算法过程中调整阻尼参数以获得优化的性能. 最后给出了完整的列文伯格-马夸尔特法流程. (如有问题, 请指出, 谢谢) 参考文献 [1] K. Madsen, H.B. Nielsen, O. Tingleff, METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS, 2nd Edition, Informatics and Mathematical Modelling Technical University of Denmark, http://www2.imm.dtu.dk/pubdb/edoc/imm3215.pdf, 2004 [2] Ananth Ranganathan, The Levenberg-Marquardt Algorithm, in CS290I Multiple View Geometry in Computer Vision and Computer Graphics, https://sites.cs.ucsb.edu/~yfwang/courses/cs290i_mvg/pdf/LMA.pdf, 2004

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

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

相关文章

保险业网站建设想卖产品怎么推广宣传

要使用Python批量根据Excel数据绘制饼状图,可以使用pandas和matplotlib库来实现。以下是一个基本的代码示例: import pandas as pd import matplotlib.pyplot as plt # 读取Excel文件 data pd.read_excel(data.xlsx) # 提取需要用于绘制饼状图的数据列…

网站建设与服务技能实训心得体会采集网站如何收录

一、可继承的属性 1. 文本相关属性 color:文本的颜色。 font-family:字体系列。 font-size:文本的大小。 font-style:文本的样式。 line-height:行与行之间的垂直间距。 2. 列表相关属性 list-style-type:…

uboot 2020版本下gpio命令的使用

1.在uboot命令行中想要支持gpio的命令,需要打开如下宏CONFIG_CMD_GPIO=y2.选用gpio引脚,作为测试引脚 2.1 查看电路原理图,选用那种soc不和mcu连接的pin,这样可以避免mcu的干扰。 2.2 查看pinmux的配置文件pinmux.…

邢台建网站找谁广安做网站

需求: 创建A项目,有函数和类,将A项目生成DLL动态链接库 创建B项目,使用A项目生成的dll和lib相关文件 正常项目开发.h用于函数声明,.cpp用于函数实现,但是项目开发往往不喜欢将.cpp函数实现的代码发给别人&…

网站设计师简历wordpress分类目录模板

按住option之后,点击Enter就可以完成换行操作

网站推广怎么写牡丹江市西安区建设局网站

读 TCP 协议 RFC-793_rfc 793-CSDN博客TCP灌包中RTT时延与RTO超时关系 - konglingbin - 博客园 TCP的RTT算法 从前面的TCP重传机制我们知道Timeout的设置对于重传非常重要。 设长了,重发就慢,丢了老半天才重发,没有效率,性能差&…

C#定时器深度对比:System.Timers.Timer vs System.Threading.Timer性能实测与选型指南 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

盛世华诞 举国同庆|热烈庆祝 LEWISAK 英勇重创消火栓 1 周年!

前情提要:我们在星光灿烂下倾听时代的钟声,我们在漫漫长夜中等待黎明的曙光,多少次,我们心潮难平,多少次,我们辗转难眠,多少次,我们都是为了这不同寻常的一天 —— LEWISAK 重创消火栓 1 周年! ! 望长空,历…

完整教程:<el-table>构建树形结构

完整教程:<el-table>构建树形结构pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monac…

集团企业网站建设文案wordpress图片不清晰

C、Java、JavaScript和python几个语句的对比介绍 C、Java、JavaScript和python语言的for语句 C、Java和JavaScript的for语句的语法类似如下: for (初始条件; 循环条件; 循环后操作) { // 循环体代码 } 初始条件是在进入循环之前执行的语句,初始化循环…

如何在markdown中插入折叠框

rt,我使用的方法比较朴素简单。 直接在markdown中写入html的标签即可,如下: <details> <summary>标题</summary> 内容 </details>就会呈现以下效果:标题 内容

ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程 - 教程

ESP32-C3 Vscode+ESP-IDF开发环境搭建 保姆级教程 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas…

网站数据模版收费网站推广

为什么80%的码农都做不了架构师&#xff1f;>>> 反正每次来做一个不熟悉的东西&#xff0c;就是各种的search ,前一次去做过一个apache的东西&#xff0c;各种蛋疼&#xff0c;各种不能用。好多的东西也是比较旧了的咯。 这次结合前辈的各种东借西拿&#xff0c;总…

CF2115 VP 记录

CF2115 Div1 B 比较人类智慧. 后面操作会覆盖前面的,考虑对序列 \(b\) 构造一种具有必要性的操作使得满足题目限制,因为一个重要事实是序列 \(a\) 并不唯一,只要对于任意位置,在被覆盖前没有覆盖其他位置的操作,或…

设计网站教程wordpress根目录没有.htaccess

近几年&#xff0c;我国潮玩市场经历了爆发式的发展阶段&#xff0c;尤其是盲盒市场屡创新高&#xff01;盲盒商品主打IP衍生品、周边等具有收藏价值的商品&#xff0c;深受市场的追捧&#xff0c;满足了不同年龄群体的需求。面对盲盒的蓝海市场&#xff0c;众多的品牌也纷纷加…

基于springboot的医护人员排班平台设计与构建(源码+文档+部署讲解)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做网站的软件公司中国室内设计师联盟

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 一、整体介绍 对话系统&#xff08;Chat&#xff09; 自主代理&#xff08;Agent&#xff09; 二、技术对比 技术差异 优…

2-SAT模板

洛谷p4782 #include<iostream> #include<vector> #include<algorithm> using namespace std; const int N=2e6+10; int n,m; int dfn[N],low[N],stk[N],instk[N],tot,cnt,scc[N],top; vector<int…

千度网站wordpress加联系方式

LntonAIServer作为一款智能视频监控平台&#xff0c;集成了多种先进的视频质量诊断功能&#xff0c;其中包括抖动检测和过暗检测算法。这些算法对于提升视频监控系统的稳定性和图像质量具有重要意义。 以下是对抖动检测算法和过暗检测算法的应用场景及优势的详细介绍。 一、L…

票务网站策划书手加工外包加工网

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 简介 在计算机视觉领域&#xff0c;准确地测量图像相似性是一项关键任务&#xff0c;具有广泛的实际应用。从图像搜索引擎到人脸识别系统和基于内容的推荐系统&#xff0c;有效比较和查找相似图像的能力非常重要。Siames…