如何快速求解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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。