首先,关于最优化问题。一直理解不到位,今天终于醍醐灌顶。最优化问题,其实降维之后,就是一元方程的求极值问题。例如,一个一元二次函数, ,求其极小值。显然,高等数学的方法为先求其一阶导数,一阶导为0的点,即是驻点。再求驻点处的二阶导数,假如二阶导数大于零,则该点极小值,假如二阶导小于零,则为极大值。若=0,则不是极值。将该一元方程推广到多元二次方程。其实就是到了数字信号处理或数字图像处理上了,或者是多输入的控制系统。例如现在的Ax=b问题。通过A矩阵对b进行表示,也就是将b投影到A的张成空间中。假如b本来就在A的张成空间中,那么我们希望x的元素尽可能为0,这样便于压缩或者便于提取特征。那么假如b不在A的张成空间中,那么我们希望找到b在A上的投影,这样Ax逼近b的效果最好,也就是希望 尽可能的小,该式是Ax和b之间的欧氏距离,也可以理解为Ax和b的误差的能量,这个是我们希望的最重要的一点。另外一点是,x的元素尽可能稀疏,零越多越好。这样有助于我们除去b中的冗余信息,或者说找到能代表b的最少列数的那些列。因此,最优化问题可以描述成,一方面让表示误差足够小,即 足够小,另一方面让x比较稀疏,即 尽量小。所以目标函数就可以写成:

然后求f(x)的全局最小值即可。但是, 是严重不连续的,不便于计算,因此,需要将 松弛化(relaxation),那么怎么松弛化? 可以松弛化为 ,k>0。而鉴于l2-norm便捷的计算性能,IRLS算法通过 这样的变换,将 ,k>0转化为l2-norm,详见我的另一篇博文《理论分析IRLS迭代加权最小二乘法(根据Gorodnitsky and Rao)》。这样就易于实现。而BCR算法同样引入了 这样的算子,引入 ,使最优化的条件变得更一般化,条件不再仅限制为 ,可以自己去造各种限制条件。特殊的,当 时,IRLS和BCR的形式就很相似,具体说明见《sparse and redundent representation》书中P119。

另外,黑塞矩阵是用于求多元函数的极值问题,分为两步,第一步,先求f(x)的驻点,也就是求梯度,梯度=0的点设为M。这里的梯度,是一元二次函数一阶导数向多元函数的推广,表示为: ,这里的x是向量。X的维数就是元数。第二步,求f(x)的黑塞矩阵H(x)。那么 其实就是下面的形式:

但是其具体含义还需要继续理解。

当在点M处,H是正定的,则fx在M点处取局部极小值;

当在点M处,H是负定的,则fx在M点处取局部极大值;

当在点M处,H是不定的,则fx在M点处不是极值。

关于最优化问题的个人理解以及黑塞矩阵的示例相关推荐

  1. behavior php,YII2框架中behavior行为的理解与使用方法示例

    本文实例讲述了YII2框架中behavior行为的理解与使用方法.分享给大家供大家参考,具体如下: YII2中的行为说白了就是对组件功能的扩展,在不改变继承关系的条件下. 行为附加到组件后,行为将注入 ...

  2. AVAsset、AVMutableComposition系列类的理解及视频裁剪示例

    裁剪视频是很久之前所做的项目中用到的,现在又看到了,整理一下. 与之相关的这些类有些抽象,所以我这里重点将它们具体化.用代码将视频合成其实与绘声绘影/vegas等软件将视频合成的过程类似,首先了解下这 ...

  3. python的递归为什么难理解,python - Python - 很难理解这个递归代码示例 - SO中文参考 - www.soinside.com...

    所以让我们按步骤分解. def is_even(x): if x == 0: return True else: return is_odd(x-1) def is_odd(x): return no ...

  4. 深入理解ForkJoin及使用示例

    一.什么是ForkJoin 大数据里面有map reduce ,Java从JDK1.7开始借鉴了这种分而治之的思想,提供ForkJoin框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务, ...

  5. 深入理解JVM(4)——如何优化Java GC「译」

    本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三篇<How to Tune Java Garbage C ...

  6. 【机器学习基础】Python数据预处理:彻底理解标准化和归一化

    数据预处理 数据中不同特征的量纲可能不一致,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,因此,需要对数据按照一定比例进行缩放,使之落在一个特定的区域,便于进行综合分析. 常用的方法有两 ...

  7. 让别人和自己看懂自己的程序代码?一文掌握Java单行多行、文档注释以及注解(Annotation)超详细的理解使用,IDEA注释注解快捷键和模板,提高程序代码更有可读性

    文章目录 单行和多行注释 文档注释(Java特有) Annotation(注解)的理解 常见的Annotation示例 IDEA注释注解快捷键及模板 自定义 Annotation JDK 中的元注解 ...

  8. 理解COM的线程套件(转)

    junguo 下载源代码 一篇技术文章,给我更多的却是感慨.和作者一样,愿与大家共勉. 简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件.那时候只知道COM这个名 ...

  9. 理解套间(涉及进程、线程、COM线程模型)(转载)

    简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件.那时候只知道COM这个名词,并不知道到底是怎么回事,只知道上网到处找别人的源码解决自己的问题:那段日子到现在回忆 ...

  10. 【哈工大SCIR笔记】机器阅读理解简述

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要25分钟 跟随小博主,每天进步一丢丢 来自:哈工大SCIR 作者:施琦.妥明翔.孙月晴.尹治博 机器阅读理解技术即机器自动从给定的文本中回答用户 ...

最新文章

  1. NYOJ(21),BFS,三个水杯
  2. 数据仓库建设从0到1-一文带你深入建设金融数仓体系
  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1109:开关灯
  4. JVM学习笔记之-执行引擎(Execution Engine)
  5. python expected an indented block什么意思
  6. ibatis mysql分页查询语句_简单实现ibatis的物理分页
  7. Jquery Datatable 数据填充报错:requested unknown parameter ‘XXX‘ for row xx, column xx 解决方法
  8. JS数据结构与算法——插入排序
  9. 2020年还需要阅读的10篇人工智能论文
  10. 常用计算机网络安全防范技术,计算机网络安全防范技术.doc
  11. 11dayC语言指针-指针变量
  12. IOS9 微信支付报 prepayid 获取失败 ErrorDomainSSL, -9802
  13. VulnHub的安全漏洞测试(1)
  14. centos7 挂载磁盘_Linux磁盘管理之LVM
  15. 查询vue版本时报错:“文件名、目录名或卷标语法不正确“
  16. 手机计算机星点符号是除吗,手机星号怎么打
  17. 微信开发者工具配置服务器信息,微信开发者中心如何配置
  18. office365 onedrive 教育版市场价位分析选购指南
  19. 汇编MOVSX指令详解
  20. 防火墙(360天堤)双因素身份认证解决方案

热门文章

  1. ACDSee 10中文版+注册码
  2. 安装esxi时候的No Network Adapters报错 解决办法
  3. 计算机快捷键屏幕保护是什么,电脑屏保快捷键.pptx
  4. dbutilsjar包下载_commons dbutils 下载-commons dbutils.jar下载 v1.6官方版--pc6下载站
  5. 惠普1020打印机查看已打印页数
  6. linux 卸载nvidia显卡驱动,Ubuntu 16.04 卸载Nvidia显卡驱动和cuda
  7. 解决visio2016与本地家庭和学生版office不兼容问题
  8. 英雄联盟闪退显示无法连接服务器,英雄联盟一直闪退显示重新连接什么原因?lol崩溃进不去游戏怎么办...
  9. EnableQ在线问卷调查引擎在学校教学评估中的作用
  10. html textbox控制内容,textbox只能输入数字