如何快速求解hessian矩阵,hessian矩阵是不定矩阵

  如何快速求解hessian矩阵,hessian矩阵是不定矩阵

  机器学习课上提到了这个矩阵,这个矩阵从哪里来,有什么用呢?让我们先来看看定义:

  htdls矩阵(黑森矩阵)也被翻译为海森矩阵、海森矩阵、海森矩阵等,是基于多元函数的二阶偏导数的方阵,用于描述函数的局部曲率htdls矩阵是19世纪由德国数学家路德维希奥托黑塞提出并命名的htdls矩阵常用于sydxh法求解优化问题。

  一般来说,sydxh方法主要应用于两个方面: 1、求方程根;2、优化。

  在机器学习中,可以考虑用它来计算n值少的数据,在图像处理中可以提取图像的特征,在金融中用于量化分析。

  图像处理可以看到这个连接:

  blog.csdn.net/Jia 3358号邮编20003/文章/详情/16874237

  量化分析可以看到这一点:

  33558 oo kiddy.iteye.com/blog/2204127

  尝试使用张量流和htdls矩阵求解以下方程:

  代码如下所示。

  33558 www.Sina.com/viewplaincopy # python 3。5 .3 gg dsw # http://edu.csdn.net/course/detail/2592 # importtensorflon dtype=TF。float 32)def compute _ hessian(fn,vars)3360 mat=[]for v1 invas 3360 temp

  1个温度。追加(TF。渐变(TF。gradients(f,v2)[0],v1)[0])temp=[cons(0)ift==noneelsetfortingemp]# tensorflowtreturnsnownewhenthereisnogradient,sowreclacenonewith 0 temp=TF。堆栈(温度)垫。追加(临时)mat=TF。stack(mat)returnmat x=TF .变量(NP。随机的。random _ sample(),dtype=tf.float32) y=tf .变量(NP。随机的。random _ sample(),dtype=tf.float32) f=tf.pow(x,cons(2))cons(2)* x * y cons(3)* TF。pow(y,cons(2))cons(4)* x cons(5)* y cons(6)# arg 1:ourdefinedfunction,arg 2:listoftfvariableassociatedwith function hessian=compute _ hessian(f,[x,y]) sess=tf .session()sess。运行(TF。global _ variables _ initializer())打印(sess。跑(黑森))输出结果如下:

  再来举多一个例子的源码,它就是用来计算量化分析,这个代码很值钱啊,如下:

  [python]查看纯文本# python 3。5 .edu GGD路http://号。csdn。net/course/detail/2592 # importnumpyasnp导入scipy。stats导入scipy。优化asopt #构造打包麻布矩阵def Rosen _ Hess(x):x=NP。as数组(x)H=NP。diag(-400 * x[:-1],1)-np.diag(400*x[:-1],-1)对角线=NP。zeros _ like(x)对角线[0]=1200 * x[0]* * 2-400 * x[1]2对角线[-1]=200对角线[1:-1]=202 1200 * x[1:-1]* * 1]输出结果如下:=====================重启:D:/AI/sample/TF _ 1.43。py==================

  优化成功终止。

  当前函数值:0.000000

  迭代次数:20

  功能评估:22

  梯度评估:41

  黑森评估:20

  通过牛顿共轭梯度算法(黑森)最小化罗森布罗克函数的结果:

  乐趣:1.476641102778 e-19

  江淮:数组([ -3.62847530e-11,2.68148992e-09,1.16637362e-08,

  4.81693414e-08,-2.76999090e-08])

  消息:"优化成功终止。"

  非正规教育:22

  nhev: 20

  尼特:20

  新英格兰队:41人

  状态:0

  成功:真的

  x: array([ 1 . 1. 1. 1. 1.])

  可见粗麻布矩阵可以使用在很多地方了吧。

  1.C标准模板库从入门到精通

  http://edu.csdn.net/course/detail/3324 2 .跟老菜鸟学C

  http://edu.csdn.net/course/detail/2901 .跟老菜鸟学python http://edu.csdn.net/course/detail/2592 4 .在VC2015里学会使用tinyxml库http://edu.csdn.net/course/detail/2590 5号。在Windows操作系统操作系统下版本控制的版本管理与实战http://edu.csdn.net/course/detail/2579 .Visual Studio 2015开发C程序的基本使用http://edu.csdn.net/course/detail/2570 .在VC2015里使用工具协议http://edu.csdn.net/course/detail/2582 .在VC2015里学会使用关系型数据库数据库

  http://edu.csdn.net/course/detail/2672

  可以看更多的网站:

  http://blog.csdn.net/ubunfans/article/details/41520047

  http://blog.csdn.net/baimafujinji/article/details/51167852

  http://jacoxu.com/jacobian矩阵和粗麻布矩阵/

  http://www.cnblogs.com/logosxxw/p/4651413.html

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: