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

做自适应网站设计/河北网站seo地址

做自适应网站设计,河北网站seo地址,ps怎么做网站首页图,洛阳市副市长到省建设厅网站梯度下降算法,参考Edwin《最优化导论》8.2章节,算法采用go语言实现。 此处算法仍然存在疑惑,主要是获取梯度下降时如何确定步长,即使采用割线法获取最优步长,那么割线法的初始值又如何确定?? …

梯度下降算法,参考Edwin《最优化导论》8.2章节,算法采用go语言实现。

此处算法仍然存在疑惑,主要是获取梯度下降时如何确定步长,即使采用割线法获取最优步长,那么割线法的初始值又如何确定??

下面程序中虽然采用了牛顿法获取极值,但非常依赖初始取值范围!!

/****************************************** FileName  : grad.go* Author    : fredric* Date      : 2017.09.01* Note      : 梯度算法* History   :
*****************************************/
package gradimport("fmt""math"
)//无法采用牛顿方法求得极值,主要原因在于无法确定初始值,造成导数偏差很大
func _get_argmin_newton(x1, x2, x3, grad_x1, grad_x2, grad_x3 float64) float64 {fmt.Printf("_get_argmin input value %f,%f,%f,%f,%f,%f\n", x1, x2, x3, grad_x1, grad_x2, grad_x3)//f(x - a*delta) = (x1 - a * grad_x1 - 4)^4 + (x2 - a * grad_x2 - 3)^2 + 4 * (x3 - a*grad_x3 + 5)^4//f'(x - a*delta) = 4 * grad_x1 * (x1 - a * grad_x1 - 4)^3//                + 2 * grad_x2 * (x2 - a * grad_x2 - 3)//                + 16* grad_x3 * (x3 - a*grad_x3 + 5)^3//f''(x - a*delta)= 12 * grad_x1^2 * (x1 - a * grad_x1 - 4)^2//                + 2  * grad_x2^2 * a//                + 48 * grad_x3^2 * (x3 - a*grad_x3 + 5)^2//采用牛顿法求取f(a)的最小值//此处的初始值还是比较疑惑,因为初始值取不对,结果差太远var a0 float64 = 0.0002var a1 float64 = 0.0005delta := 0.0005for math.Abs(a1 - a0) > delta {a0 = a1//fmt.Printf("a0: %f\n" , a0)//fmt.Printf("grad_x2: %f\n" , grad_x2)//fmt.Printf("grad_x2 * a0: %f\n" , grad_x2 * a0)//fmt.Printf("grad_x2 * 0.2: %f\n" , grad_x2 * 0.2)f_1_v := 4 * grad_x1 * (x1 - a0 * grad_x1 - 4)* (x1 - a0 * grad_x1 - 4)* (x1 - a0 * grad_x1 - 4) + 2 * grad_x2 * (x2 - a0 * grad_x2 - 3) + 16* grad_x3 * (x3 - a0 * grad_x3 + 5)* (x3 - a0 * grad_x3 + 5) * (x3 - a0 * grad_x3 + 5)f_2_v := 12 * grad_x1 * grad_x1 * (x1 - a1 * grad_x1 - 4)* (x1 - a1 * grad_x1 - 4) + 2  * grad_x2* grad_x2 * a1 + 48 * grad_x3* grad_x3 * (x3 - a1 * grad_x3 + 5)* (x3 - a1 * grad_x3 + 5)a1 = a0 - f_1_v / f_2_v//fmt.Printf("----------abs = %f\n", math.Abs(a1 - a0))fmt.Printf("step value = %f f_1_v = %f, f_2_v = %f\n", (a0 + a1)/2, f_1_v, f_2_v)}return (a0 + a1)/2
}//采用常量方式求极值
func _get_argmin_const(x1, x2, x3, grad_x1, grad_x2, grad_x3 float64) float64{/** 不是很搞的清楚,当采用快速下降算法时如何确定固定步长,网上有一个说法实践是正确的* 即满足李普希兹条件存在L>0使得|f(x1)-f(x2)|<=L|x1-x2|,步长取1/L* 下面这个例子由于存在x3这个高阶,所以如果步长取大的话,完全没有办法计算*/return 0.0004
}func DoGradAlgorithm(){//计算f(x1,x2,x3) = (x1 - 4)^4 + (x2 - 3)^2 + 4*(x3 + 5)^4//所谓梯度本质上也是导数,只是针对多维度上,取了各个维度偏导数,组成向量;//最速下降法就是在每次迭代时取当前负梯度方向的能获取的函数数最小值//初始值x0 = [4, 2, -1]x1 := 4.0x2 := 2.0x3 := -1.0//取三次迭代for i := 0; i < 4; i++ {grad_x1 := 4 * (x1 - 4)*(x1 - 4)*(x1 - 4)grad_x2 := 2 * (x2 - 3)grad_x3 := 16 * (x3 + 5)* (x3 + 5)* (x3 + 5)a := _get_argmin_newton(x1,x2,x3, grad_x1, grad_x2, grad_x3)fmt.Printf("grad_x1 = %f, grad_x2 = %f, grad_x3 = %f\n", grad_x1, grad_x2, grad_x3)x1 = x1 - a * grad_x1x2 = x2 - a * grad_x2x3 = x3 - a * grad_x3fmt.Printf("x1 = %f, x2 = %f, x3 = %f\n", x1, x2, x3)}
}

 

http://www.lbrq.cn/news/763741.html

相关文章:

  • 宝塔做网站443链接/网站怎么做
  • 直销公司排名表/seo实战培训机构
  • 搭建网页的基础语言/阳山网站seo
  • 如何做电子书网站/桔子seo工具
  • 如何用iis做网站/seo高端培训
  • 成都品牌建设网站公司/百度搜索引擎
  • 备案 增加网站/长尾词挖掘免费工具
  • 一建报名时间2023/搜索引擎技术优化
  • 北京网站建设亿玛酷适合5/百度网页
  • 建网站那种服务器好/上海互联网公司排名
  • python可以做复杂网站/网站工具查询
  • 网站如何做提交的报名表/培训心得体会1000字通用
  • 设计师图片素材网站/关联词有哪些小学
  • 网站建设骗子/软文营销的本质
  • wordpress 首页可变区域/自己的网站怎么样推广优化
  • 桂林象鼻山属于哪个区/seo关键词优化排名软件
  • 网站开发论文答辩问题/长沙seo技术培训
  • wordpress 帝国cms/刷关键词优化排名
  • 黑龙江做网站公司/秦皇岛seo排名
  • 重庆渝兴建设有限公司网站/广告联盟app下载赚钱
  • 视觉做的比较好的国外网站/今日足球比赛分析推荐
  • 网站建设成本价/搜索引擎seo关键词优化
  • 注册公司流程和费用一共多少钱/沧州seo推广
  • 微网站开发需要多少钱/长春seo培训
  • 中信建设有限责任公司官网英文/南城网站优化公司
  • 网站开发记科目/怎么快速优化关键词排名
  • 邯郸做网站找谁/网络营销的具体形式种类
  • 上海建设官方网站/seo的优化策略有哪些
  • 上海建设工程安全质量监督总站网站/百度推广收费多少
  • 做网站应该考虑哪些问题/唐山seo排名外包
  • 20道Vue框架相关前端面试题及答案
  • 希尔排序专栏
  • 美团搜索推荐统一Agent之交互协议与多Agent协同
  • 医美产业科技成果展陈中心:连接微观肌肤世界与前沿科技的桥梁
  • 深入解析ArrayList与LinkedList的区别:如何正确选择?
  • [论文阅读] (41)JISA24 物联网环境下基于少样本学习的攻击流量分类