最优化理论学习笔记_1(精确线性搜索)
来源:互联网 发布:cdr软件怎么购买 编辑:程序博客网 时间:2024/06/08 00:58
由于机器学习领域充斥着各种各样的优化问题,早就想系统的学习优化理论了,借着这学期选择了最优化理论的课程,就认真的学习一下吧!
最优化理论通常研究如下问题,引用wiki的定义:
通俗的理解,就是求解在各种约束下函数的最值问题。
线性搜索
在利用迭代的方法解决无约束优化问题
时,其中第k步迭代的公式是:
而所谓的线性搜索的方法,就是指的是在迭代方向已知的情况下,求解合适的步长的问题。关于的确定精确与否又分为精确线性搜索和非精确线性搜索的方法。
精确线性搜索
顾名思义,精确线性搜索即解决如下的优化问题:
考虑到实际中函数的最小值得求法往往要根据具体情况来定,通常情况下我们用一些算法来解决求极小的问题。
1.黄金分割算法(0.618法):
由于0.618法是基于单峰函数求极值的情况,所以我们在介绍黄金分割算法之前,需要介绍一下单峰函数的概念,并且给出一种算法,能够求出一般的一元函数的定义域上的某个区间,使得该函数在该区间上是单峰的。
单峰函数:
进退法(求解单峰区间):
求得了单峰区间之后,就可以用0.618法求函数的极小点了。具体如下
黄金分割算法
代码实现如下(matlab):
function y= Gold_Ratio(a,b,f,eps)%a,b are end points of a close interval [a,b];%f is a single unimodal funtion in [a,b]%function Gold_Ratio is an algorthim to output the only exremal point of f in [a,b]t=0.5*(sqrt(5)-1);alpha_r=a+t*(b-a);%right setion pointalpha_l=a+(1-t)*(b-a);%left setion pointk=0;while b-a>eps if f(alpha_l)<f(alpha_r)%if funtion value at left section point is b=alpha_r;%less than that of the right ,then the extremal point a=a;%must lie in the interval [a,alpha_r] alpha_r=alpha_l; alpha_l=a+(1-t)*(b-a); k=k+1; else b=b;%similar to the situation above a=alpha_l; alpha_l=alpha_r; alpha_r=a+t*(b-a); k=k+1; end fprintf('[a,b]is [%8.5f,%8.5f] after %d rounds iteration \n',a,b,k);endy=0.5*(a+b);end
2.插值方法
(未完)
- 最优化理论学习笔记_1(精确线性搜索)
- 最优化理论学习笔记_2(非精确线性搜索)
- 漫步最优化三十——非精确线搜索
- 算法设计和复杂性理论学习笔记_1(基本概念)
- 机器学习笔记_ 数值最优化_1:最优化条件
- 算法_11:线性优化_1: 线性规划
- 最优化理论学习———问题汇总
- 最优化学习笔记(二)一维搜索
- 自动机理论学习笔记
- 操作系统理论学习笔记
- HDFS的理论学习笔记
- 最优化问题-线性优化(LP)
- 数据结构与算法学习笔记02_1(线性表)
- 机器学习笔记_回归_1:线性回归
- 机器学习算法笔记1_1:线性回归
- 精确搜索
- Stanford cs231n笔记(二)线性分类器损失函数与最优化
- 斯坦福大学深度学习公开课cs231n学习笔记(2)线性分类器及最优化
- Android读取手机内存简例
- C++ AMP: 基于代码的C++ AMP简介
- JAVA的类加载器,详细解释
- Documentation_driver-model_device.txt
- PyQt4 精彩实例分析* 实例6 实现QQ抽屉效果
- 最优化理论学习笔记_1(精确线性搜索)
- 并发编程的相关API和面临的挑战(1)
- iOS: 创建universal app
- SQL学习----关键词搜索
- Android获取手机Mac地址
- 开发cocos2d-x 游戏 实战篇(1)之 loading 界面编写
- codeforce344C
- 并发编程的相关API和面临的挑战(2)
- You are *required* to use the date.timezone setting or the date_default_timezone_set() function.