您现在的位置是:主页 > news > 淘宝网站建设可信吗/整合网络营销是什么
淘宝网站建设可信吗/整合网络营销是什么
admin2025/5/15 7:12:38【news】
简介淘宝网站建设可信吗,整合网络营销是什么,ppt模板下载免费版软件,四川网站建设贴吧优化算法的目的:寻找最优解 算法的运行形式:通过迭代的形式, 从一个初始点开始一步一步的接近最优解. 比如 xk1xk−α∇f(xk)x^{k1}x^{k}-\alpha \nabla f\left(x^{k}\right)xk1xk−α∇f(xk), 表示点 xkx^{k}xk 沿着负梯度方向移动 α\alphaα 的距离(…
优化算法的目的:寻找最优解
算法的运行形式:通过迭代的形式, 从一个初始点开始一步一步的接近最优解. 比如 xk+1=xk−α∇f(xk)x^{k+1}=x^{k}-\alpha \nabla f\left(x^{k}\right)xk+1=xk−α∇f(xk), 表示点 xkx^{k}xk 沿着负梯度方向移动 α\alphaα 的距离(严格来说是 α∥∇f(xk)∥\alpha\left\|\nabla f\left(x^{k}\right)\right\|α∥∥∇f(xk)∥∥ 的距离)得到一个新的点 xk+1x^{k+1}xk+1, 使得新的点处的函数值比原来点的函数值要小,就达到了下降的目的. 一直这么迭代下去,就能找到最优解. 算法的核心:步长 step-size\text{step-size}step-size 和下降方向 descent direction\text{descent direction}descent direction. 下降方向决定迭代点下一次更新的方向, 步长决定迭代点下一次行走的距离,. 步长和方向做为算法的核心, 决定了算法是否收敘、收敘速度如何等等. 在本节内容中, 我们假设下一次迭代的方向已知,现在只考虑如何找到最优步长. 而对于迭代方向的讨论在后面章节的内容中会有所说明.
步长的一般处理方法
因为不同的步长肯定会有不同的效果,比如步长很大,运气了可能一下子就到了最优解,但也有可能步长太大导致每次迭代总是跨过了最优解,甚至无法收敘. 很显然,步长不能设的特别大,但是也不能特别小,否则迭代速度就会很慢, 浪费时间. 因此, 一般我们会先固定好下降方向 dkd^{k}dk 和当前迭代点 xkx^{k}xk, 把下一个迭代点 xk+1=xk+αdkx^{k+1}=x^{k}+\alpha d^{k}xk+1=xk+αdk 视为 α\alphaα 的函数, 去求解使得 f0(xk+1)f_{0}\left(x^{k+1}\right)f0(xk+1) 的函数值最小的那个 α\alphaα 做为最终的步长. 即
αk=argminα⩾0f0(xk+αdk)\alpha^{k}=\arg \underset{\alpha \geqslant 0 }{\min} f_{0}\left(x^{k}+\alpha d^{k}\right)αk=argα⩾0minf0(xk+αdk)
这就是所谓的精确线搜索exact line search\text{exact line search}exact line search的定义. (为什么叫线搜索? 是因为迭代点是定义域中的一个点, 而搜索时 xk+αdkx^{k}+\alpha d^{k}xk+αdk 是从 xkx^{k}xk 沿着 dkd^{k}dk 方向发出的一条射线, 所以叫线搜索. )
黄金分割法|优选法|0.618法
找一个尽量大的数, 记为 αmax\alpha_{\max }αmax, 将 α\alphaα 限制在 (0,αmax]\left(0, \alpha_{\max }\right](0,αmax] 内. 然后对区间做分割,截取
0.382αmax0.382 \alpha_{\max }0.382αmax 和 0.618αmax0.618 \alpha_{\max }0.618αmax 这两个对称点, 计算它们的函数值, 去掉函数值比较大的区域, 继续做分割,这样一直下去, 可以找打一个使得函数值充分小的步长 α\alphaα ,充分小由人为指定. 特点: 自己确定一个 αmax\alpha_{\max }αmax, 自己确定终止条件.
Armijo Rule/Armijo\text{Armijo Rule/Armijo}Armijo Rule/Armijo 线搜索
给定初值 α\alphaα, 速率 β∈(0,1),γ∈(0,0.5]\beta \in(0,1), \gamma \in(0,0.5]β∈(0,1),γ∈(0,0.5] .
若 f0(xk+αdk)>f0(xk)+γα∇f0T(xk)dkf_{0}\left(x^{k}+\alpha d^{k}\right)>f_{0}\left(x^{k}\right)+\gamma \alpha \nabla f_{0}^{T}\left(x^{k}\right) d^{k}f0(xk+αdk)>f0(xk)+γα∇f0T(xk)dk, 令 α=αβ\alpha=\alpha \betaα=αβ, 否则就停止迭代.
如图, α=0\alpha=0α=0 的点就是 f0(xk)f_{0}\left(x^{k}\right)f0(xk) 的值, g(xk+αdk)=f0(xk)+α∇f0T(xk)dkg(x^{k}+\alpha d^{k}) = f_{0}\left(x^{k}\right)+ \alpha \nabla f_{0}^{T}\left(x^{k}\right) d^{k}g(xk+αdk)=f0(xk)+α∇f0T(xk)dk 则是那条蓝色的线, 过 (0,f0(xk))\left(0, f_{0}\left(x^{k}\right)\right)(0,f0(xk)) 点的一条切线, 实际上就是 f0(xk+αdk)f_{0}\left(x^{k}+\alpha d^{k}\right)f0(xk+αdk) 在 xkx^{k}xk 的一阶泰勒展开,这个时候更新 α=αβ\alpha=\alpha \betaα=αβ, 使得 α\alphaα 值减小, 再用 γ\gammaγ 调整一下斜率, 变成了红色的那条线. 因此, Armijo\text{Armijo}Armijo 就是在给定 γ,β\gamma,\betaγ,β 之后, 去找红色线以下的所有 α∈[0,αfeasible]\alpha \in [0,\alpha_{feasible}]α∈[0,αfeasible] 中的一个做为步长.
参考资料
- [1] Convex Optimization – Boyd and \nuandenberghe
- [2] 中科大-凸优化
- [2] 知乎-落日翻车-凸优化总结