基于下界函数的最优化
点击上方“大数据与人工智能”,“星标或置顶公众号”
第一时间获取好内容
作者丨stephenDC
这是作者的第12篇文章
导语
生活中我们处处面临最优化的问题,比如,怎么样一个月减掉的体重最高?怎么样学习效率最高?怎么样可以最大化实现个人价值?
显然,每一个目标都受很多因素的影响,我们称之为目标函数的最优化。
优化的思路有很多种,比如基于梯度的梯度下降,基于二阶梯度的牛顿法,基于近似的二阶梯度的拟牛顿法,基于下界函数的最优化,贪婪算法,坐标下降法,将约束条件转移到目标函数的拉格朗日乘子法等等。
本文我们讨论一下基于下界函数的最优化,且将讨论的范围限定为无约束条件的凸优化。
基于下界函数的优化
在有些情况下,我们知道目标函数的表达形式,但因为目标函数形式复杂不方便对变量直接求导。这个时候可以尝试找到目标函数的一个下界函数,通过对下界函数的优化,来逐步的优化目标函数。
上面的描述性推导很是抽象,下面我们来看两个具体的例子,EM算法和改进的迭代尺度法。限于篇幅,我们重点推导EM算法,改进的迭代尺度法只是提及一下。
EM算法
改进迭代算法
概率模型中最大熵模型的训练,最早用的是通用迭代法GIS(Generalized Iterative Scaling)。GIS的原理很简单,大致包括以下步骤:
假定初始模型(第0次迭代)为等概率的均匀分布。
用第k次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;反之,将参数变大。
重复步骤2,直到收敛。
GIS算法,本质上就是一种EM算法,原理简单步骤清晰,但问题是收敛太慢了。Della Pietra兄弟在1996年对GIS进行了改进,提出了IIS(Improved Iterative Scaling)算法。IIS利用log函数的性质,以及指数函数的凸性,对目标函数进行了两次缩放,来求解下界函数。详情可参阅李航的《统计学习方法》一书。
小结
本文讨论了一下基于下界函数的最优化这样一种优化思路,希望对大家有所帮助。同时也一如既往地欢迎批评指正,以及大神拍砖。
-end-
基于下界函数的最优化相关推荐
- 优化思路千万种,基于下界函数的最优化效率如何?
作者丨stephenDC 来源 | 大数据与人工智能(ID:ai-big-data) 导读:生活中我们处处面临最优化的问题,比如,怎么样一个月减掉的体重最高?怎么样学习效率最高?怎么样可以最大化实现个 ...
- 基于fmincon函数的最优化计算
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) 求解问题的标准型为 min F(X) s.t AX <= b(线性不等式约束) AeqX = beq( ...
- R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、基于自定义函数构建xgboost文本分类模型
R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.基于自定义函数构建xgboost文本分类模型 目录
- R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值、自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N、中位数median、四分位数的间距iqr)
R语言编写自定义函数基于ggsumarystats函数计算每个分组的统计值.自定义可视化分组分面条形图,并在X轴标签下方添加分组对应的统计值(样本数N.中位数median.四分位数的间距iqr) 目录
- R语言gganimate包创建可视化gif动图、可视化动图:ggplot2可视化静态散点图、gganimate包创建动态散点分面图(facet_wrap)动画基于transition_time函数
R语言gganimate包创建可视化gif动图.可视化动图:ggplot2可视化静态散点图.gganimate包创建动态散点分面图(facet_wrap)动画基于transition_time函数 目 ...
- R语言gganimate包创建可视化gif动图、可视化动图:、gganimate包创建动态线型图动画基于transition_time函数、使用geom_point函数显示动画移动的数据点
R语言gganimate包创建可视化gif动图.可视化动图:.gganimate包创建动态线型图动画基于transition_time函数.使用geom_point函数显示动画移动的数据点 目录
- R语言gganimate包创建可视化gif动图、可视化动图:创建动态散点图动画基于transition_time函数、使用shadow_wake函数配置动画的渐变效果(gradual falloff)
R语言gganimate包创建可视化gif动图.可视化动图:创建动态散点图动画基于transition_time函数.使用shadow_wake函数配置动画的渐变效果(gradual falloff) ...
- R语言gganimate包创建可视化gif动图:gganimate包创建动态线型图动画基于transition_time函数、使用geom_point函数显示动画移动的数据点、并保留线图中的全部数据点
R语言gganimate包创建可视化gif动图:gganimate包创建动态线型图动画基于transition_time函数.使用geom_point函数显示动画移动的数据点.并保留线图中的全部数据点 ...
- R语言gganimate包创建可视化gif动图:ggplot2可视化静态条形图(bar plot)、gganimate包创建动态条形图(bar plot)动画、基于transition_time函数
R语言gganimate包创建可视化gif动图:ggplot2可视化静态条形图(bar plot).gganimate包创建动态条形图(bar plot)动画.基于transition_time函数 ...
最新文章
- OSChina 技术周刊第九期 —— 每周技术精选,值得一看!
- Linux共享内存编程实例
- Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务
- SQL Server2005重装Performance Monitor Counter 的问题解决
- USTC English Club Note20171012(4)
- 安卓5.0以上设备最简单激活XPOSED框架的步骤
- python实现蜘蛛功能批量下载手机壁纸
- Linux 比较不同命令
- 设计模式-UML关系基础
- 餐饮后台UI模板有这个就够了!
- python统计各分数段人数并可根据选择绘制不同的图形_python习题整理
- tyvj p1016 装箱问题( 简单DP 01背包)
- 国外卫星地图mapbox的基本操作
- Navicat Premium 12安装包下载
- 【高颜值的盲打练习网站】彻底摆脱二指禅,刻意练习一星期后打字速度可提升20wpm!!!
- dw整个网站html文件怎么放一起,Dreamweaver模板如何批量做网页
- 测试听力口语软件,上、英语系学姐最全整理的34个英语学习App 针对听力、口语、阅读...
- 注册Apple ID
- 正在使用赶牛! 赶牛,中国股民的微博客
- 分布式系统开发实战:分布式存储,分布式存储常用技术