当前位置: 首页 > 编程日记 > 正文

优化思路千万种,基于下界函数的最优化效率如何?

640?wx_fmt=jpeg


作者丨stephenDC

来源 | 大数据与人工智能(ID:ai-big-data)


导读:生活中我们处处面临最优化的问题,比如,怎么样一个月减掉的体重最高?怎么样学习效率最高?怎么样可以最大化实现个人价值?

 

显然,每一个目标都受很多因素的影响,我们称之为目标函数的最优化。


优化的思路有很多种,比如基于梯度的梯度下降,基于二阶梯度的牛顿法,基于近似的二阶梯度的拟牛顿法,基于下界函数的最优化,贪婪算法,坐标下降法,将约束条件转移到目标函数的拉格朗日乘子法等等。


本文我们讨论一下基于下界函数的最优化,且将讨论的范围限定为无约束条件的凸优化。


基于下界函数的优化


在有些情况下,我们知道目标函数的表达形式,但因为目标函数形式复杂不方便对变量直接求导。这个时候可以尝试找到目标函数的一个下界函数,通过对下界函数的优化,来逐步的优化目标函数。

       640?wx_fmt=png

       640?wx_fmt=png

       640?wx_fmt=png             640?wx_fmt=png       

上面的描述性推导很是抽象,下面我们来看两个具体的例子,EM算法和改进的迭代尺度法。限于篇幅,我们重点推导EM算法,改进的迭代尺度法只是提及一下。


EM算法

       640?wx_fmt=png

       640?wx_fmt=png

       640?wx_fmt=png             640?wx_fmt=png

       640?wx_fmt=png       

       640?wx_fmt=png              640?wx_fmt=png

       640?wx_fmt=png     

改进迭代算法


概率模型中最大熵模型的训练,最早用的是通用迭代法GIS(Generalized Iterative Scaling)。GIS的原理很简单,大致包括以下步骤:


  • 假定初始模型(第0次迭代)为等概率的均匀分布。

  • 用第k次迭代的模型来估算每种信息特征在训练数据中的分布,如果超过了实际的,就把相应的模型参数变小;反之,将参数变大。

  • 重复步骤2,直到收敛。


GIS算法,本质上就是一种EM算法,原理简单步骤清晰,但问题是收敛太慢了。Della Pietra兄弟在1996年对GIS进行了改进,提出了IIS(Improved Iterative Scaling)算法。IIS利用log函数的性质,以及指数函数的凸性,对目标函数进行了两次缩放,来求解下界函数。详情可参阅李航的《统计学习方法》一书。

 

小结


本文讨论了一下基于下界函数的最优化这样一种优化思路,希望对大家有所帮助。同时也一如既往地欢迎批评指正,以及大神拍砖。


(*本文为 AI科技大本营转载文章,转载请联系原作者


精彩推荐



640?wx_fmt=jpeg


推荐阅读

  • 百度与华为重磅合作!李彦宏:技术是百度的信仰

  • 入门必备 | 一文读懂神经架构搜索

  • 爬虫到底违法吗?这位爬虫工程师给出了答案

  • 印度人才出口:一半美国科技企业CEO是印度裔 | 数据分析中印青年

  • 为什么说“大公司的技术顽疾根本挽救不了”

  • 25 年 IT 老兵零基础写小说,作品堪比《三体》| 人物志

  • 中小企业搭建混合云,服务器如何选?

  • 从0到1 | 文本挖掘的传统与深度学习算法

  • 一览微软在机器阅读理解、推荐系统、人机对话等最新研究进展 | ACL 2019

  • 1.2w星!火爆GitHub的Python学习100天刷爆朋友圈!


640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

相关文章:

Quintum 语音网关设置方法

Quintum 网关基本配置 Quintum 网关基本配置 登陆方式:方法一:串口登陆(1).用配套的串口线连接网关的CONSOLE口和电脑的串口。 (2).开启电脑的的超级终端,路径如下&#…

Activex test contact failed to create control 未指定的错误 控件无法加载的原因

转自:http://blog.csdn.net/phker/archive/2009/12/25/5073402.aspx 本文指的是vc项目的activex 出现这个问题, 我总结了总共有以下几点,可能还有其他原因: 1.中文问题:如果你的项目类型是多字节的,而不是unicode编码的,你可能要注意这个问题了,我就发生了这个问题…

人工智能技术在内容行业的应用:AI对中长尾内容平台还是奢侈品

整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)导读:随着人工智能技术的发展,媒体行业本身在不断地发生变化,从传统媒体到新媒体,改变的不仅是信息载体,更是一种新的逻辑,无论是内容…

QQ爬虫-爬取QQ空间

背景:在一篇个人博客看到了相关的爬虫的知识,个人比较有兴趣,就花了点时间研究了一下,主要通过好友空间的互动(相互访问量,点赞,评论,以及其他互动),以及好友之间聊天的活跃度&#…

perl编程手册

2019独角兽企业重金招聘Python工程师标准>>> perl编程手册: -------------------------------手册-------------------------------- perl手册.chm http://vdisk.weibo.com/s/moN-p -------------------------------视频-------------------------------- 俺的…

VC使用ActiveX控件常见问题

转自:http://lingchuangsong.blog.163.com/blog/static/126932322008631104133309/ 一方面,它表示将你联系到Microsoft、Internet和业界的新技术的小型快速的可重用组件。它与开发语言无关,任何支持 ActiveX控件的软件开发平台(如…

你绝没用过的一款高级空间可视化工具

作者 | Shan He转载自高级农民工(ID: Mocun6)说起 Python 中的可视化,我们一般用的最多的是 Matplotlib,绘制一般的图效果都很好。有时候也会用风格比较好看的 Pyecharts 库,尤其是在展示空间地图上的数据时。不过它的…

揭秘vue——vue-cli3全面配置

★ vue-cli3 全面配置 ★ Nuxt.js 全面配置 创建项目 配置环境变量 通过在package.json里的scripts配置项中添加--mode xxx来选择不同环境 在项目根目录中新建.env, .env.production, .env.analyz等文件 只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端…

周礼栋:现在是计算机系统和网络研究“最好的时代”

编者按:随时随地使用各种系统和工具,对现代人来说早已是司空见惯的事,但这一切完美工作的技术和服务并不是凭空出现的。正是因为微软亚洲研究院副院长周礼栋博士和他带领的团队这样从事系统和网络研究工作的研发人员在幕后不断的努力和创新&a…

ChaLearn Gesture Challenge_2:examples体验

前言: 在上一篇博文ChaLearn Gesture Challenge_1:CGD数据库简单介绍中已经简单介绍过CGD2011数据库,了解到该数据库可以作为公开的数据库来测试在深度信息和RGB信息上的手势识别。当然了,也可以通过参加这个挑战赛来对比自己的手…

vs2008 外部调用ActiveX控件接口方法

转自:http://topic.csdn.net/u/20090605/16/018e26e9-06e2-4e0d-8099-bc8eb326afde.html sndaxdrs: 初学activeX ,我写的一个 activeX控件测试程序。 分别调用两个 自定义方法, 分别出现 “找不到成员”,和“非选择性的参数”的提…

设计模式之禅笔记

2019独角兽企业重金招聘Python工程师标准>>> 1.设计原则 1)单一职责原则 There should never be more than one reason for a class to change (就一个类而言,应该只有一个引起它变化的原因) 用于控制类的粒度大小,防止类过于复杂…

vs2008部署问题

转自:http://tangxingqt.blog.163.com/blog/static/2771087220098214755269/ 参考资料 1、VS2005解决"应用程序配置不正确,程序无法启动"问题 2、VS2005安装文件 "由于应用程序配置不正确,应用程序未能启动" 3、Micro…

expdp数据泵导出操作

数据泵需要在本地执行,不可以远程登录操作。 数据泵需要建立目录directory --sys下 create directory su as d:\xs 目录的数据字典是dba_directories SYSncbeta>select owner,directory_name,directory_path from dba_directories; 要求导出scott用户下的emp表…

slf4j 日志监控

问题描述 监控系统 新系统起步,旨在监控原有系统的各种问题。主要的一部分,就是监视原有系统的日志。 日志,是Java企业级应用开发必不可少的一部分,市场上有诸多日志框架。我们选用slf4j。 日志有以下级别: TRACE, DEB…

阿里90后科学家研发,达摩院开源新一代AI算法模型

整理 | 一一出品 | AI科技大本营(ID:rgznai100)AI科技大本营7月5日消息,阿里达摩院宣布开源新一代人机对话模型ESIM。该算法模型提出两年多,已被200多篇论文引用,更曾在国际顶级对话系统评测大赛(DSTC7&…

在vs2008中配置OpenCV2.2

1、下载OpenCV2.2:http://www.opencv.org.cn/index.php/Download 2、下载后解压缩OpenCV-2.2.0-win.zip; 3、下载CMake:http://www.cmake.org/cmake/resources/software.html 4、安装CMake; 5、运行cmake-gui,在wh…

开发者,什么是你真正关心的问题?| AI ProCon 2019

2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…

C语言程序的结构

1.一个程序由一个或多个源程序文件组成。 a.预处理指令 b.全局声明 c.函数定义 2.函数是C程序的主要组成部分。 3.一个函数包括两个部分。 a.函数首部 int 函数类型 max 函数名 (int 函数参数类型 x, 函数参数名 int 函数参数类型 y…

flask 核心 之 应用上下文 及 请求上下文

Werkzeugs 是 Flask 的底层WSGI库。什么是WSGI? 一段简单的app: def dispath_request(self, request):return Response(Hello World!)def wsgi_app(self, environ, start_response):request Request(environ)response self.dispath_request(request)re…

vs2008中常见错误解决方法汇总

1、error C2859 vc90.idb is not the idb file that was used when this precompiled header was created。 解决方法:选中工程-->点击右键属性-->Configuration Properties-->C/C-->Output Files-->Program Database File Name中的$(IntDir)/vc90.p…

加速AI应用落地,英特尔AI 2.0的进阶之道

人工智能模型的复杂度不断增加,对内存的需求也越来越大。深度学习的进一步发展需要解决内存限制问题,而当前的解决方案无法利用所有可用计算,业内人士逐渐意识到需要专用芯片来支持深度学习训练和推理。英特尔则在人工智能方面提供优越的硬件…

MySQL基础之 恢复数据和数据库迁移

1、mysql命令或者source命令恢复数据 这两个命令在进行恢复数据的时候要检查是否创建数据库。如果数据库不存在,则恢复失败。 数据库迁移 1、相同版本的mysql数据库之间的迁移。 mysqldump -h host1 -uroot -ppwd --all-databases | mysql -h host2 -uroot -ppw…

.Net 文件流 System.IO之Stream

转自 :http://www.cnblogs.com/yukaizhao/archive/2011/07/28/stream.html Stream在msdn的定义:提供字节序列的一般性视图(provides a generic view of a sequence of bytes)。这个解释太抽象了,不容易理解&#xff1b…

Hinton等人最新研究:大幅提升模型准确率,标签平滑技术到底怎么用?

作者 | Rafael Mller , Simon Kornblith, Geoffrey Hinton译者 | Rachel责编 | Jane出品 | AI科技大本营(ID: rgznai100)【导读】损失函数对神经网络的训练有显著影响,也有很多学者人一直在探讨并寻找可以和损失函数一样使模型效果更好的函数…

WaitForSingleObject和WaitForMultipleObjects用法

转自:http://www.360doc.com/content/10/0512/09/1072296_27178529.shtml 等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。这些等待函数中最常用的是WaitForSingleObject: DWORD WaitForSingleObject(HANDLE hObject, DW…

【面试必问】支撑百万并发的IO多路复用技术你了解吗?

多路复用其实并不是什么新技术,它的作用是在一个通讯连接的基础上可以同时进行多个请求响应处理。对于网络通讯来其实不存在这一说法,因为网络层面只负责数据传输;由于上层应用协议的制订问题,导致了很多传统服务并不能支持多路复…

DllMain already defined in dllmain.obj错误

错误 uafxcw.lib(dllmodul.obj) : error LNK2005: DllMain already defined in dllmain.obj 修改: 去掉宏定义 _USRDLL 转载于:https://blog.51cto.com/co63oc/1122378

典型的数字水印软件

转自:http://blog.csdn.net/pastora/archive/2005/04/15/348413.aspx ---- 目前,数字水印软件既有商品化产品,也有供研究用的免费软件。 商品化软件 ----提供商品化数字水印软件的公司主要有以下一些: ----1.Digimar…

AI、5G、小程序、AIoT纷纷迎来高峰,下一步开发者们要怎么办?

2018 年,上千名开发者与上百名技术专家齐聚一堂,在 CSDN 2018 AI开发者大会上以“AI技术与应用”为核心,深度聚焦人工智能的技术创新与行业应用,真正做到了“只讲技术,拒绝空谈”。今年,在产业智能化的浪潮…