当前位置: 首页 > news >正文

郑州做网站优化的公司/营销渠道管理

郑州做网站优化的公司,营销渠道管理,视频网站是用什么框架做的,滁州网站建设优化方法介绍(一) 本博客是一个系列博客,主要是介绍各种优化方法,使用 matlab 实现,包括方法介绍,公式推导和优化过程可视化 1 失败案例介绍 本文在编写最速下降法的时候使用了经典的求解函数框架,并使用了自适应步长(alpha)机制,即加入参数flag,当出现梯度下降的情…

优化方法介绍(一)

本博客是一个系列博客,主要是介绍各种优化方法,使用 matlab 实现,包括方法介绍,公式推导和优化过程可视化

1 失败案例介绍

本文在编写最速下降法的时候使用了经典的求解函数框架,并使用了自适应步长(alpha)机制,即加入参数flag,当出现梯度下降的情况(Fnew>F0)时,flag自增一(flag = flag + 1),当flag大于等于其阈值(fthershold)时,才执行对于步长alpha的改变(alpha = alpha * multiplyer)操作。通过对于初始步长(alpha)、参数flag的阈值(fthershold)和步长改变量(multiplyer)这三个变量的循环寻优。

经过实践发现,这三个参数的最优值分别为

alpha = 1e-3
fthershold = 2
multiplyer = 1.7

最终优化之后的迭代次数(函数Rosenbrock被调用的次数)为17次,未经优化时的次数为26次。初始步长alpha的数值如此小的原因本文进行了探讨,通过对于函数设置断点之后本文发现,在使用梯度函数gradient计算梯度g时,由于极小值eps(或者说sqrt(eps))的数值比较小,为1e-8级,由于数值计算的问题会导致初始点在x1方向上的梯度达到1e3级,故需要alpha的数值取得比较小才能中和这种巨大的梯度,使得alpha*p的值在(0,10)之间。

代码包括
LineSearchFrameWork.m 文件,用于优化的函数

function [F0,x0,FE,xhis] = LineSearchFrameWork()x0 = [2,2]; %Initial searching pointtol = 1e-6; %the tolerance value of resultsFE = 0;     %how many times the Rosenbrock function is runned FEmax = 1e5;%maxium interation timesalpha = 1e-3;  %initial step lengthF0 = Rosenbrock(x0); % initial function valueflag = 0;            % the determination parameterfthers = 2;          % the thershold of the times that gradient goes downxhis = [];xhis = [xhis; x0];while (F0 > tol) && (FE < FEmax)g = gradient(x0, F0);FE = FE + 2;p = -g;xnew = x0 + alpha*p;Fnew = Rosenbrock(xnew);xhis = [xhis; xnew];if Fnew < F0flag = flag + 1;if flag >= fthersalpha = alpha * 1.7;flag = 0;endendx0 = xnew;F0 = Fnew;end
end

Rosenbrock.m 文件,用于 罗森布尔克 函数值的计算的函数

function y = Rosenbrock(x)y = 100*(x(:, 2) - x(:, 1).^2).^2 + (1 - x(:, 1)).^2;
end

gradient.m 文件,计算梯度值的函数

function g = gradient(x, F0)d = sqrt(eps);g = (Rosenbrock(x + ones(1, 2)*d) - F0) / d;

runner.m 文件,主运行文件,用于调用其他的函数

clc; clear all; cleartol = 1e-6;
[F0,x0,FE,xhis] = LineSearchFrameWork();
if F0 < toldisp("成功了!!!!");
elsedisp("lose loser");
end
plot(xhis(:, 1), xhis(:, 2), xhis(:, 1), xhis(:, 2),'*')
title('最速下降法求Rosenbrock函数的局部极小值')
xlabel('x_1'); ylabel('x_2');

运行后的优化结果为

寻优次数x1 值x2 值
122
20.7980.798
30.8176190.817619
40.8504450.850445
50.8812630.881263
60.9280680.928068
70.9615180.961518
80.9954550.995455
90.9999050.999905
project cover MATLAB 运行结果1

下面是对于MATLAB中的函数报告(profile):

project cover MATLAB 函数报告1

初次实验之后,博主发现本文采用的方法是错误的,它只能适用于像(2,2)到最优点(1,1)这样的寻优过程,因为在本文的方法中直接将寻优过程初始点为(2,2)的Rosenbrock函数当作一个单值函数来处理,使得x1和x2同增同减,但是这种方法的适用范围非常小,只能在寻优初始点处的x1和x2相等时才能采用。

从上方的图表中可以看出,本文初次实现的方法是有很大问题的,因为本文是通过提前知道了寻优的初始点是x1=x2=2的特殊情况,而寻优的理想结果也是同样的x1=x2=1,所以采用了将Rosenbrock函数作为单值函数来进行寻优的方法。这样的方法其实是没有意义的,因为它有两个局限性:1)只适用于Rosenbrock函数;2)只适用于寻优初始点为x1=x2=2的特殊情况。本文研究Rosenbrock函数是为了使得寻优算法更加具有普适性,即对于尽可能多的函数尤其是一些特殊函数,都能够进行寻优的操作,而本文组的这个方法却是背离了这个初衷,只是为了解决问题而解决问题,这样的研究是没有多少价值的,如同鸡肋。

这个方法发现过程是一个巧合,在编写最速下降法的时候,对于梯度计算函数gradient函数,本来应该使用单位矩阵eye(2)的地方,错误地使用成了全1矩阵ones(1, 2),但是却奇迹般的找到了最优值,在一开始,本文是兴奋的,因为首次实现的结果就如此的成功,但是在后续的检查过程中本文发现,这个方法其实是错误的,本文后续对于这个方法有进行了反思,就有了上面对于这个方法的叙述和讨论。

2 最速下降法求解过程介绍

最速下降法的坐标更新表达式为

<

http://www.whsansanxincailiao.cn/news/32036592.html

相关文章:

  • 做图片视频的网站/东莞新闻最新消息今天
  • 建设网站直接委托单位/携程: 2023年旅行搜索上涨超900%
  • 个人网站免费申请/企点
  • 邵阳房产网/谷歌seo和百度seo
  • 长沙建设品牌网站/武汉百度推广seo
  • 小说网站做编辑/seo公司哪家好用
  • 网站空间的建设/app接入广告变现
  • 广东品牌网站建设报价/seo公司发展前景
  • 如何建设企业网站/google seo优化
  • 平阴县网站建设/人工智能教育培训机构排名
  • 最简单的做网站的工具/搜索引擎营销原理
  • 青岛做网站的公司排名/免费的seo网站下载
  • 如何鉴别网站有没有做301重定向/会计培训班要多少钱
  • 网站全屏banner轮播图/广东广州疫情最新情况
  • 房地产公司 网站建设/seo快速推广
  • 课程设计代做网站推荐/工程建设数字化管理平台
  • 做网站建设小程序/怎么在百度做宣传广告
  • 独立的淘客网站名么做/合肥网站制作推广
  • 西青网站开发/淄博seo培训
  • 网站建设方案功能/怎么推广网站
  • 网站优化/爱站网 关键词挖掘
  • 成品网站w灬源码伊甸/自动app优化最新版
  • 外贸购物网站建设/友情链接代码美化
  • 比较好的网站建设公司/手游代理平台哪个好
  • 做窗帘网站图片大全/搜索引擎优化方案
  • 光辉网站建设公司/如何在网上推广
  • 做游戏小网站是啥/seo蜘蛛池
  • 如何个网站做优化/win10最强优化软件
  • frontpage做视频网站/域名注册 万网
  • 淄博建网站多少钱/营销案例100例小故事及感悟