局部最优怎么办?

1、使用模拟退火算法SA(Simulate Anneal)

贪心算法是,在求最优解时,从a点开始试探,如果函数值继续减少,那么试探过程继续,到达b点时,试探过程结束(因为无论朝哪个方向努力,结果只会越来越大),因此找到了局部最优b点。

模拟退火算法以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。这个概率随着时间推移逐渐降低(逐渐降低才能趋向稳定)。

过程:

  • 若f( Y(i+1) ) <= f( Y(i) ) (即移动后得到更优解),则总是接受该移动;
  • 若f( Y(i+1) ) > f( Y(i) ) (即移动后的解比当前解要差),则以一定的概率接受移动,而且这个概率随着时间推移逐渐降低(逐渐降低才能趋向稳定)相当于上图中,从B移向BC之间的小波峰时,每次右移(即接受一个更糟糕值)的概率在逐渐降低。如果这个坡特别长,那么很有可能最终我们并不会翻过这个坡。如果它不太长,这很有可能会翻过它,这取决于衰减 t 值的设定。

方法2:换个优化方法

局部最优一般是鞍点或者停滞区,就是在某一方向上他是极小值,但是在与它垂直的方向上,却是一个极大值。

但是在这个方向上计算的梯度为0,可能算法就停止迭代了。

所以使用momentum冲量,在遇到停滞区或者鞍点时,靠惯性冲出这个小坑,到真正的大坑里面。算法停止的标准是冲量小于某一个值且梯度小于某一个值,或者指定一个迭代次数就行了。

方法三:调节学习率

对于学习率,采用adagrad、adadelta,自适应学习率。根据历史学习率累计总量来决定当前学习率减小的成都。

adagrad初始学习率要手动指定,adadelta不需要。

adadelta在后期容易在局部最小值附近抖动。

RMSprop是adadelta的一个特例,需要手动设置全局学习率,效果在adagrad 和 adadelta之间。对RNN效果好。

原文地址:https://www.cnblogs.com/pacino12134/p/11110647.html

时间: 2024-10-22 11:58:13

局部最优怎么办?的相关文章

[C++]LeetCode: 104 Jump Game II (局部最优和全局最优法)

题目: Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Your goal is to reach the last index in the minimum number of j

[C++]LeetCode: 103 Jump Game (局部最优和全局最优法)

题目: Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you are able to reach the last index. For example:

提醒一下技术人,你是不是陷入局部最优了

首先看一张函数图像: 很明显,这个函数最小值点在E点,而A.C.G是函数的局部极小值点.我读书期间学的数学专业,研究的方向就是最优化算法,说的直白点,就是找函数的最小值点,如果得找到了E点就说明成功了,可是如果只找到了A.C.G中的一个就停滞,这时算法就陷入局部最优了,这个时候就需要修改算法,需要加入一些扰动或者其他策略,避免函数陷入局部最优解,所以最优化算法有一个非常重要的点就是要避免算法陷入局部最优. 局部最优解梯度为零,意味着没有变化,一直维持着某一种状态,一个人陷入局部最优解就意味着没有

贪心算法之最优装载

贪心算法通过一系列的选择来得到问题的解.它所做的每一个选择都是当前状态下局部最好选择.从许多的贪心算法求解的问题可以看到可用贪心算法求解的问题一般具有两个重要的性质:贪心选择性质和最优子结构性质. 1.贪心选择性质 贪心选择性质是 指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到.与动态规划算法的不同之处是贪心算法只依赖在当前状态下做出最优选择,然后再去解做出这个选择后产生的相应的子问题.贪心算法依赖于以往做出的选择,但是绝不依赖未来做出的选择.所以贪心算法是自顶向下解决问题

【智能算法】粒子群寻优算法

1.理论基础 粒子群算法(particle swarm optimization,PSO)是计算智能领域中的一种生物启发式方法,属于群体智能优化算法的一种,常见的群体智能优化算法主要有如下几类: (1)蚁群算法(Ant Colony Optimization,简称ACO)[1992年提出]: (2)粒子群优化算法(Particle Swarm Optimization,简称PSO)[1995年提出](简单易于实现,也是目前应用最为广泛的群体智能优化算法): (3)菌群优化算法(Bacterial

算法(三)粒子群算法之局部粒子

在全局版的标准粒子群算法中,每个粒子的速度的更新是根据两个因素来变化的,这两个因素是:1. 粒子自己历史最优值pi.2.  粒子群体的全局最优值pg.如果改变粒子速度更新公式,让每个粒子的速度的更新根据以下两个因素更新,A. 粒子自己历史最优值pi.B. 粒子邻域内粒子的最优值pnk.其余保持跟全局版的标准粒子群算法一样,这个算法就变为局部版的粒子群算法. 一般一个粒子i 的邻域随着迭代次数的增加而逐渐增加,开始第一次迭代,它的邻域为0,随着迭代次数邻域线性变大,最后邻域扩展到整个粒子群,这时就

局部线性嵌入(LLE)原理总结

局部线性嵌入(Locally Linear Embedding,以下简称LLE)也是非常重要的降维方法.和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,它广泛的用于图像图像识别,高维数据可视化等领域.下面我们就对LLE的原理做一个总结. 1. 流形学习概述 LLE属于流形学习(Manifold Learning)的一种.因此我们首先看看什么是流形学习.流形学习是一大类基于流形的框架.数学意义上的流形比较抽象,不

基于局部感受野的极速学习机

说明 基于局部感受野的极速学习机 摘要内容 引言部分 回顾ELMCNN和HTM 极速学习机ELM ELM特征映射feature mapping ELM特征学习Learning 卷积神经网络CNN 卷积 池化 层级实时记忆HTM 基于局部感受野的极速学习机ELM-LRF A 全连接与局部连接Full and Local Connections B 基于局部感受野的ELM C 组合节点 局部感受野的实现 A ELM-LRF的特殊组合节点 B 随机输入权重 C 平方根池化squaresquare-ro

0-1 背包问题、背包问题、最优装载问题、哈夫曼编码,这几个问题的思想是什么?

0-1背包问题: 给定n种物品和一个背包.物品i的重量是Wi,其价值为Vi,背包的容量为C.应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 在选择装入背包的物品时,对每种物品i只有2种选择,即装入背包或不装入背包.不能将物品i装入背包多次,也不能只装入部分的物品i. 背包问题: 与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1≤i≤n. 解决方法:求每个物品的价值重量比,即价值/重量.然后添加价值重量比最大的物品,添加结束如果