精华内容
下载资源
问答
  • 局部最优问题

    2019-07-20 11:55:06
    百科解释:局部最优,是指对于一个问题的解在一定范围或区域内最优,或者说解决问题或达成目标的手段在一定范围或限制内最优。 我们先举一个简单的例子 假如我们用梯度下降找上图中的最小值,实际解应该是d点,但...

    什么是局部最优

    百科解释:局部最优,是指对于一个问题的解在一定范围或区域内最优,或者说解决问题或达成目标的手段在一定范围或限制内最优。


    我们先举一个简单的例子

    在这里插入图片描述
    假如我们用梯度下降找上图中的最小值,实际解应该是d点,但由于图像波动幅度很大,在程序运行结束以后,我没呢求得的值是a,b,c中的一个,虽然a,b,c是也是图像的峰值,但并不是我们想要的最小值,这就是局部最优。


    相关链接
    https://www.cnblogs.com/bonelee/p/7007702.html
    http://www.wengweitao.com/ti-du-xia-jiang-fa.html
    https://blog.csdn.net/bing_bing_bing_/article/details/95327020

    展开全文
  • 编写复合形法求解有约束的单局部最优问题;完成预处理,绘制待求解函数的图形绘制;记录并分析求解过程;可以自行调整迭代求解精度;有助于在理解复合形法理论的基础上,加深理解与实际应用能力。
  • 深度学习中局部最优问题

    千次阅读 2019-02-01 22:49:33
    局部最优问题(The problem of local optima) 初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。 如上图,平面的高度就是损失函数。在图中似乎...

    局部最优的问题(The problem of local optima)

    初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度学习中的优化问题。

    如上图,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。但是,问题的关键在于,低维特征(图示两维)让我们对局部最优产生误解。

    事实上,如果你要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,实际上成本函数的零梯度点,通常是鞍点。

    一个具有高维度空间的函数,如果梯度为0,那么在每个方向,它可能是凸函数,也可能是凹函数。如果你在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样,但发生的机率也许很小(2**(-20000)),也许是,你更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲,因此在高维度空间,你更可能碰到鞍点。

    对于鞍点来讲,平稳段会减缓学习,平稳段是一块区域,其中导数长时间接近于0,如果你在此处,梯度会从曲面从从上向下下降,因为梯度等于或接近0,曲面很平坦,你得花上很长时间慢慢抵达平稳段的这个点,我们可以沿着这段长坡走,直到这里,然后走出平稳段。

    本文的要点是:

    1. 你不太可能困在极差的局部最优中,条件是你在训练较大的神经网络,存在大量参数,并且成本函数被定义在较高的维度空间。
    2. 平稳段是一个问题,这样使得学习十分缓慢,这也是像Momentum或是RMSpropAdam这样的算法,能够加速学习算法的地方。在这些情况下,更成熟的优化算法,如Adam算法,能够加快速度,让你尽早往下走出平稳段。
    展开全文
  • 基于复合形法的有约束单局部最优问题求解前言一、复合形法简介二、单局部最优问题简介1.概念2.本文实例三、Matlab复合形法程序编写与分析1. 总览一下改善排版2. 初始复合形生成函数initalpoint四、求解结果后处理与...


    前言


    **本文内容分为三个方面:**

    1. 复合形法以及单局部最优问题的概念简介
    2. 针对方程实例编写复合形法程序,求解该实例
    3. 对求解结果进行后处理与分析

    一、复合形法简介

    1965年Box将求解无约束优化问题的单形替换法用到求解约束优化问题中,形成了求解约束优化问题的复合形法。复合形法也是先构造复合形,然后根据复合形顶点的特征进行反射、延伸、压缩等运算,最终找到满足条件的最优解。与求解无约束问题的单形替换法不同的是,约束问题有一组约束方程,使变量的取值范围受到了限制,因此复合形法需要检验顶点是否在可行区域内。复合形法的数学模型如下图所示。
    复合形法数学模型
    复合形法的主要步骤包括:产生初始可行点、产生初始复合形、判断xi是否可行、比较函数值的大小并计算复合形形心、反射计算、延伸计算、收敛计算、重新计算复合形等八个步骤。计算步骤的程序框图如下图所示(图片是用手机扫描的啦,将就看下~)
    在这里插入图片描述
    复合形法具体的理论,概念在这里咱们就不详细介绍辽,网上和各种教材的解释有很多,本文主要针对具体的单局部最优问题亲手编写一个复合形法的matlab程序进行求解,ok!下面我们开始介绍单局部最优问题以及具体的实例!

    二、单局部最优问题简介

    1.概念

    简而言之,有约束的单局部最优问题,就是指在约束条件下,目标方程仅具有一个最优解,不存在局部最优问题,只要编写的优化算法是正确的,方程将收敛到唯一的最优解,不会出现局部收敛,是的!

    2.本文实例

    本文采用的单局部最有问题如下:(又是在教材上拍下来的)
    在这里插入图片描述
    该单局部最优问题为二维优化问题,存在一个线性约束和一个非线性约束。在matlab中绘制该约束问题的三维图像以及等高线图象如下图所示(不要问我怎么画图:-))
    单局部最优三维图像
    单局部最优等高线图

    三、Matlab复合形法程序编写与分析

    1. 总览一下改善排版

    OK!接下来我们根据问题具体分析复合形法的程序!
    我们先来总览一下我写的几个M文件,如图所示
    在这里插入图片描述

    复合形法主要包含两个函数,复合形迭代函数Fuhexing()以及初始复合形生成函数initalpoint()。其中初始复合形生成函数,根据要求的上下限,初始点以及复合形的顶点数,生成满足等式约束与不等式约束的初始复合形;复合形迭代函数,根据生成的初始复合形,按照复合形迭代算法,依次进行复合性的迭代更新。复合形迭代函数根据输入的目标函数、等式约束、不等式约束、上下限、初始值以及复合形顶点数和误差要求,分三层循环进行迭代,最终生成满足精度要求的复合形,通过函数输出最优值及其函数值、迭代次数,函数中将输出plot_x1,plot_x2,两个向量跟踪记录在迭代过程中自变量的变化,用于后期图像的绘制与分析。
    minf.m,Eq.m以及Ineq.m这两个函数分别是目标函数以及等式与不等式约束的定义,textbook3_main.m函数是求解的主函数,定义了复合形法中的几个初始变量的值以及求解精度等。
    最后一个函数通过调用主函数,获得求解过程中我们感兴趣的变量并进行了后处理(迭代次数,迭代精度,迭代时间以及自变量的变化等)

    2. 初始复合形生成函数initalpoint

    主要完成生成复合形初始顶点,根据约束条件求解,循环判断初始复合型是否满足约束条件,返回随机生成的满足条件的复合形。

    // 初始复合形生成函数
    Xk(:,1)=x0;
        i=1;
        while(i<k)
            i=i+1;
            for j=1:length(x0)
                Xk(j,i)= a(j)+rand().*(b(j)-a(j));%生成复合形顶点
            end       
            ydeng = Eq(Xk(:,i));                  %等式约束求解
            ybdeng = Ineq(Xk(:,i));               %不等式约束求解
            while(ydeng~=1||ybdeng~=1)            %约束条件成立性判断
                Xc=zeros(length(x0),1);
                for j=1:i-1
                    Xc=Xc+Xk(:,j);
                end
                Xc=(1/i)*Xc;
                if(Eq(Xc)~=1||Ineq(Xc)~=1)
                    i=i-1;
                    break;
                else
                    while(ydeng~=1||ybdeng~=1) 
                        Xk(:,i)=Xc+0.5*(Xk(:,i)-Xc);%成功生成顶点
                        ydeng = Eq(Xk(:,i));
                        ybdeng = Ineq(Xk(:,i));
                    end
                end      
            end
    

    3. 复合形迭代函数

    从初始复合形出发,根据变量的上下限,以及我们设置的迭代精度,分三层循环迭代运算,更新复合形参数,在满足迭代精度的条件下,设置迭代结束的标志位,并退出循环,返回迭代过程的优化结果,迭代次数,最优值,自变量的变化向量等参数。

    // 第一层循环
    while(LLL)
        num=num+1;
        for j=1:k
            Yvalue(j) = minf(Xk(:,j));
        end
        [SXPL,XBZ] = sort(Yvalue);
        plot_x1(num)=Xk(1,XBZ(1));
        plot_x2(num)=Xk(2,XBZ(1));
        plot_value(num)=minf( Xk(:,XBZ(1)) );
        sum1=0;
        for m=1:k
            sum1 = sum1+( minf(Xk(:,m))-minf( Xk(:,XBZ(1)) ) ).^2;
        end
        if ( (sum1/(k-1))^(1/2)<=e )          %复合形精度判断
            X=Xk(:,XBZ(1));
            Minvaule = minf( Xk(:,XBZ(1)) );
            LLL=0;
            break;            
        end
    
    //第二层循环
    while(1)
            sum2 = zeros(length(x0),1);
            for m=1:k
                sum2 = sum2+Xk(:,m);
            end
            sum2 = sum2-Xk(:,XBZ(length(XBZ)));
            Xc2 = sum2/(k-1);
            if (Eq(Xc2)~=1||Ineq(Xc2)~=1)
                a=Xk(:,XBZ(1));                 %更新上限
                b=Xc2;                          %更新下限
                Goinitalpoint=1;                %生成复合形顶点标志
               break; 
            end
    
    
    //最内层循环
    alph=1.3;
            while(1)
                Xr=Xc2+alph.*(Xc2-Xk(:,XBZ(length(XBZ))));
                if (Eq(Xr)~=1||Ineq(Xr)~=1)
                    alph=0.5*alph;
                    continue;
                else
                    if( minf(Xr)<minf( Xk(:,XBZ(length(XBZ))) ) )
                        Xk(:,XBZ(length(XBZ)))=Xr;
                        Gofuhexingdiedai=1;
                        break;
                    else
                        if(alph<=10^(-10))
                            Xk(:,XBZ(length(XBZ))) = Xk(:,XBZ(length(XBZ)-1)); 
                            break;
                        else
                            alph=0.5*alph;
                            continue;
                        end
                    end
                end
            end
    

    4. 设定好目标函数与约束条件

    编写好我们待求解的目标函数以及其约束条件,如下

    //目标函数
    function Y= minf(x)
    Y = (x(1)-2)^2+(x(2)-1)^2;
    end
    
    //等式约束
    function EN = Eq(X)
    EN=1;
    end
    

    因为我们求解的目标函数不存在等式约束,因此这里把等式约束直接设定为1

    //不等式约束
    function IN = Ineq(x)
    IN=0;
    if(((x(1)^2-x(2))<=0)&&((x(1)+x(2)-2)<=0))
       IN=1;
    end
    end
    

    以上就是目标函数啦,很简单,大家可以尝试更改为其他目标函数进行求解验证效果如何~

    四、求解结果后处理与分析

    在复合形法求解的过程中,我在程序运行过程中,采用一个全局的变量依次记录下了在迭代过程中,自变量以及目标函数值的变化等其他信息,所以这里我们可以直接编写程序以自己喜欢的方式输出这些变量,并分析求解的效果!这里给出我做的相关的后处理工作~
    自变量变化曲线
    收敛等高线
    函数值曲线
    相关计算结果
    根据主函数返回迭代过程中自变量以及函数值的变化向量,可以绘制出整个变化走势如下图所示。在给定初值下,函数以较快的收敛速度收敛到稳定值,在第20次迭代中开始趋于稳定,整个计算过程完成了50次迭代达到精度要求。
    当然,每次运行求解过程,由于初始复合形的不同,会有求解过程中的细微差异,但是最终求解结果是保证收敛的~

    五、总结

    总体而言,复合形算法的思路并不难,这篇文章的程序思路也是我查资料看教材总结编写的,程序完全可以顺利运行。
    但是我得承认对于刚接触复合形算法的的盆友,文章中在很多细节上的解释并不多,其实只要在理解复合形法的基础上,慢慢耐心阅读一遍程序,就会发现算法的思路是很简单的,需要注意的是程序中对矩阵,向量的一些运算处理,注意自变量与因变量的维度,细心地处理好矩阵和向量的运算问题,就能很快掌握复合形算法!
    所有的代码我已经上传了,而且代码中给出了必要的注释,直接运行fun_plot.m文件,就可以完成对该实例的求解与后处理。
    复合形法求解单局部最优matlab代码
    希望本篇文章能对大家理解复合形法,掌握单局部最优问题的求解有所帮助!
    之后我也会整理复合形法求解多局部最优问题的实例,以及拉格朗日乘子法,遗传算法的文章
    最最后,如果文章中有什么不足或错误,希望大家指正!
    peace&love

    展开全文
  • 局部最优问题 在神经网络中,我们通常遇到的情况是右图中的鞍点,而不是左图中的局部最优。 想象你坐在马鞍上,那么你坐下的那一个点就是导数为0的点, 有关平稳段的问题 平缓段让学习变得很慢(这是Momentum Adam ...

    学习率衰减

    考虑学习率不变的情况,梯度下降难以在最后达到收敛,如果采用学习率衰减方式呢?在刚开始能承受大步伐的梯度下降,随着梯度下降的进行,学习率衰减有利于最后收敛到一个趋近于最低点。
    在这里插入图片描述
    在1epoch内(1 pass through data):
    α=α01+decay_rateepoch_num\alpha=\frac{\alpha_0}{1+decay\_rate*epoch_\_num}
    其他学习率衰减的方法:
    α=0.95epoch_numα0\alpha=0.95^{epoch\_num}*\alpha_0

    α=kepoch_numα0\alpha=\frac{k}{\sqrt{epoch\_num}}*\alpha_0

    α=ktα0\alpha=\frac{k}{\sqrt{t}}*\alpha_0

    也有用离散值作为学习率的。

    局部最优问题

    在这里插入图片描述
    在神经网络中,我们通常遇到的情况是右图中的鞍点,而不是左图中的局部最优。
    想象你坐在马鞍上,那么你坐下的那一个点就是导数为0的点,
    在这里插入图片描述
    有关平稳段的问题
    在这里插入图片描述

    • 平缓段让学习变得很慢(这是Momentum Adam RMSprop优化算法可以加速这个过程,尽早走出平稳段)
    • 不太可能困在不好的局部最优(前提:有大量的参数,J也是在高维空间)
    展开全文
  • 在 k-means, 我们使用了基于形心(簇均值)来对数据进行划分, 也讨论了 k-means 的初始值选取之重要, 若选得不好, 很容易陷入局部最优解的问题. 实质上来说, 我们会陷入到局部最优解的本质原因是: 当初始值选定之后, ...
  • 今天来讲一下关于学习率衰减(learning rate decay)的问题。首先说一下为什么要衰减学习率,如下图所示: 假设我们使用mini-batch梯度下降法,之前我们已经讲过它的一些特点,比如路径曲折不直接、有噪音(路径曲折...
  • 局部最优与鞍点问题

    2020-06-26 12:05:53
    本文介绍如何正确看待局部最优以及深度学习中的优化问题。 如上图,平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。但是,问题的...
  • 2-9 局部最优问题

    2019-09-23 12:17:33
    局部最优问题(The problem of local optima) 人们总是担心优化算法会困在极差的局部最优, 不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。 这是曾经人们在想到局部最优时脑海里会出现的图...
  • 多局部极值的问题的全局最优问题还没有根本最优解决,做的也是多找一些可能是全局最优解的局部最优结,再从中选择最打的那个,认为是最优的...... 单这样的问题就很复杂了,实际中有会有更多的问题..... 我有几个
  • 局部最优问题(The problem of local optima) 在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。我向你展示一下现在我们怎么看待...
  • 算法 - 局部最优的避免

    千次阅读 2019-09-16 10:25:51
    文章目录局部最优的产生局部最优的避免 局部最优的产生 一般的启发式算法非常容易产生局部最优,或者说根本无法查证产生的最优解是否是全局的。这是因为对于大型系统或复杂的问题,一般的算法都着眼于从局部展开求解...
  • matlab局部最优和全局最优算法

    万次阅读 2016-03-03 14:06:10
    在实际的工作和生活过程中...优化问题一般分为局部最优和全局最优,局部最优,就是在函数值空间的一个有限区域内寻找最小值;而全局最优,是在函数值空间整个区域寻找最小值问题。 函数局部最小点是那种它的函数值
  • 局部最优问题 (The Problem of Local Optima) 在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,我们对局部最优的理解也发生了改变。我向你展示一下现在我们怎么...
  • 在讨论优化问题时我们先来讨论全局最优和局部最优 全局最优:问题所有的可能解中效果最好的解。 局部最优问题的部分可能解中效果最好的解。 一个针对的全局,一个针对的部分。 就像我们设初值一样,设置了以后...
  • 关于局部最优(Local Optima)

    千次阅读 2018-02-09 11:01:02
    ②真正困扰优化问题的并不是局部最优,而是在鞍点附近的停滞区问题。 如下图,鞍点并不是全局最优,但梯度下降会在鞍点附近花费很多时间,先降到鞍点,在鞍点附近受到扰动在降到其他地方。故采用动量,adam,...
  • 局部最优问题(The problem of local optima) ref:https://blog.csdn.net/qq_38742161/article/details/86739010 初学深度学习,总是担心优化算法会困在极差的局部最优。本文介绍如何正确看待局部最优以及深度...
  • 从递归看动态规划前情提要最优问题的本质目标函数最优组合的求解策略枚举递归斐波那契数列问题描述示例解题思路迭代递归深入理解递归堆栈与递归的状态存储递归与回溯树形结构与深度优先搜索暴力递归的问题性能问题...
  • 首先通过分析用户在论坛上的发言层次结构与内容建立用户 之间的回复关系图,然后提出一种基于局部最优的图聚类方法LOGCA对大容量的论坛网络图进行分类。实验 得到互联网论坛上几个有意义的用户社区,并且确定了社区...
  • 一、我们可能从来没有找到过“局部最优”,更别说全局最优了。 作者:五楼whearer 链接:https://www.zhihu.com/question/68109802/answer/262143638 深度神经网络“容易收敛到局部最优”,很可能是一种想象,实际...
  • 机房差不多就这样结束了,组合查询是...很巧的是,这两种方法对于上周日米老师讲的局部最优法和全局最优法的就是一种完美呈现。  话不多说,看代码:   局部最优 Private Sub cmdInquiry_Click() Dim txtSQL As Stri
  • 局部最优问题 在低纬度的情形下,我们可能会想象到一个Cost function 如左图所示,存在一些局部最小值点,在初始化参数的时候,如果初始值选取的不得当,会存在陷入局部最优点的可能性。 但是,如果我们建立一...
  • 1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c ...2.10 局部最优问题 The problem of local optima 在DL研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着DL理论

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,503
精华内容 1,401
关键字:

局部最优问题