机器学习第一课:微积分原理的多元扩展_您的 hessian 矩阵不是对称矩阵-程序员宅基地

技术标签: 机器学习  大数据  

中学开始,我们学过一元自变量的求导。但实际应用上往往需要多自变量求导。多元参数的思考方式也是化“未知为已知”的思想,我们可以将所有多元参数向量化。例如将多元的参数 x1,x2,... 变成一个向量变元 x=x1,x2,... 。这样从形式上又回到了我们熟悉的一元问题。后面提到多元函数参数时基本都用向量转化方法。

一、从一元参数的函数求导到多元参数的函数求导

多元参数常常用向量表示,所以这里的表层含义就是相当于对向量求导。
1.1 f(x) 对向量x的一阶导数(这里x是向量)

f(x):g(x)=f(x)=f(x)x=f(x)x1f(x)x2::

1.2 f(x) 对向量x的二阶导数(这里x是向量)
f′′(x):H(x)=2f(x)=2f(x)x212f(x)x2x1:2f(x)x1x2......

这个矩阵就是Hessian矩阵(工程上它一般是个对称矩阵,下面我们按照对称矩阵处理),下面两个常用二级公式
若向量a与向量x无关,则
aTxx=a

若矩阵A与向量x无关,则
xTAxx=2Ax

二、从一元参数的泰勒展开求导到多元参数的泰勒展开

一元函数的泰勒展开:

f(xk+δ)=f(xk)+f(xk)δ+12f′′(xk)δ2++1k!f(k)(xk)δk+

那么多元参数(向量)的泰勒展开呢?
向量的泰勒展开:
f(xk+δ)f(xk)+gT(xk)δ+12δTH(xk)δ

g函数,H函数来自上面一中的式子。因为没有完全展开所以是约等于。

三、极值问题

一元参数的极值问题在高中被虐过很多次了吧。。。非边界连续点的极值问题有一套固定的套路,求导=0,将解得的点代入二阶导判断正负
负:极大值;
正:极小值;
0:鞍点,不能判断。

多元参数的函数呢?
同样首先算导数g(x)=0,求得点,然后将解代入Hessian矩阵判断是否是正定矩阵。
正定:极小值
负定:极大值
不定:不能判断。

四、梯度下降法与拟牛顿法

我们如果真的这么求,面临的问题会特别多。鞍点,无解等问题纷纷出现,兼职搞死宝宝了。工业上为了解决这种情况常用约束优化迭代法。就是我们常说的梯度下降法与拟牛顿法。由于这部分十分重要,我将用新文章加以整理。

说明

一、Hessian矩阵可能不是对称矩阵

上面挖了一个坑,这里有一个Hessian矩阵

2f(x)x212f(x)x2x1::2f(x)x1x2......

按直觉考虑,这应该是个对角矩阵。但直觉这个东西一般靠不住。我们国内通行高数教材上有个“偏导顺序可换的充分不必要条件”

如果函数z=f(x,y)在区域内连续,则下面公式的两个二阶混合偏导数相等才成立:

2f(x,y)xy=2f(x,y)yx

这就很尴尬了,Hassion矩阵看来不一定是对称矩阵。如果要强调Hassion矩阵是不是对称矩阵还要判断是否连续。我们多余判断这一步有没有意义呢?

二、对称矩阵

性质:这里对称矩阵的特征值都是实数。

向量求二阶导举例时,发现结果就三种可能:正定矩阵,负定矩阵,不定矩阵。
我们是不是忘了什么东西?对,复数。Hassion矩阵如果变成反对阵矩阵就直接悲剧了。

[1111]λ1=1+i,λ2=1i

这下知道工业中为什么喜欢连续了吧。原来这一章的坑是连续的判断或不连续函数的连续化。

三、鞍点问题

这个东西的确难死,我之前在刷考研数学题时,都很少见过这样的。
我的方法就是设 G(x)=f(x)
然后复杂反推。这实际上相当于求三阶导了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dajiabudongdao/article/details/52397343

智能推荐

camera tuning名词缩写_高通hjr是什么意思-程序员宅基地

文章浏览阅读564次,点赞2次,收藏10次。CC, color conversion,色彩转换CC, color correction,色彩矫正CE, chroma enhancement,色度增强SNR,signal-to-noise ratio,信噪比SNR, skin noise reduce,肤色降噪STD, standard deviation,标准差OIS, optical image stabilization 光学稳像 PDAF,phase detection auto focus,相位对焦CPP: camera po_高通hjr是什么意思

深度学习哪家强?吴恩达、Udacity和Fast.ai_ai 深度学习-程序员宅基地

文章浏览阅读1.3w次,点赞4次,收藏26次。原文:http://blog.csdn.net/wemedia/details.html?id=43211深度学习哪家强?吴恩达、Udacity和Fast.ai的课程我们替你分析好了原2017.08.20AI科技大本营翻译 | AI科技大本营(rgznai100)参与 | reason_W 引言_ai 深度学习

Matlab小波包分解后如何求各频带信号的能量值?_小波包能量的matlab代码-程序员宅基地

文章浏览阅读5.8k次。异步赠书:Kotlin领衔10本好书 SDCC 2017之区块链技术实战线上峰会 程序员9月书讯 每周荐书:Java Web、Python极客编程(评论送书) window.quickReplyflag = true; var isBole = false; var fasrc="htt_小波包能量的matlab代码

基于openstack安装部署私有云详细图文教程_openstack云平台搭建 最新-程序员宅基地

文章浏览阅读563次,点赞3次,收藏9次。基于openstack安装部署私有云详细图文教程 本文中作者通过自身基于OpenStack搭建私有云平台的实战经验,对OpenStack实施私有云落地的需求进行梳理,综合产生个人的观点和评价并和读者分享。本文主要分享的是云计算、openstack的使用、私有云平台建设、云服务器云硬盘的构建和使用。从基本概念入手到私有云建设,信息量非常大。对于openstack的安装部署都是从..._openstack云平台搭建 最新

vue实现每隔几秒请求一次接口,实现数据更新_vue中每两秒调用一次接口-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏37次。项目中我们经常需要实现轮询-每隔几秒请求一次接口实现数据更新1:一般都会使用setInterval,但要注意单纯使用它会导致页面卡死方法1:new Vue({ el: '#app', data: {}, created: function() { var that = this; // setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加 \ window.setInterval(() =_vue中每两秒调用一次接口

高斯数据库错误参考代码GAUSS-51100——GAUSS-51236_[gauss-50236] : the 192.168.40.130 does not exist -程序员宅基地

文章浏览阅读7.5k次,点赞3次,收藏12次。GAUSS-51100:"Failed to verify SSH trust on these nodes: %s."SQLSTATE: 无错误原因:在各节点上核实SSH互信失败。解决办法:检查确保各节点互信必须创建。GAUSS-51101:"SSH exception: \n%s."SQLSTATE: 无错误原因:远程连接异常。解决办法:检查确保网络连接必须正常;检查确保远程机器的IP及登录用户和密码必须正确。GAUSS-51102:"Failed to exch_[gauss-50236] : the 192.168.40.130 does not exist or the permission on the u

随便推点

PyTorch保存网络结构以及参数【 torch.save()、torch.load() 】-程序员宅基地

文章浏览阅读2.8w次,点赞49次,收藏230次。 对于pytorch保存网络参数,大家一般可以看到有 .pkl文件 以及 .pth文件,对于这两者有什么区别,以及如何保存网络参数等,本文就好好讲述一下。 一、保存方式 首先我们知道不论是保存模型还是参数都需要用到torch.save()。_pytorch保存网络结构

【报错集锦】yolov8报错ModuleNotFoundError: No module named ‘ultralytics‘_modulenotfounderror: no module named 'ultralytics-程序员宅基地

文章浏览阅读1.2w次,点赞12次,收藏21次。yolov8遇到报错_modulenotfounderror: no module named 'ultralytics

【LeetCode刷题笔记(8-3)】【Python】【接雨水】【双指针】【困难】-程序员宅基地

文章浏览阅读961次,点赞20次,收藏24次。LeetCode刷题笔记;算法题:接雨水;核心思想是利用双指针在O(1)空间复杂度下解决【接雨水】问题。【双指针】【python】【困难】

YOLO8实战:yolov8实现行人跟踪计数_yolov8人流量计算-程序员宅基地

文章浏览阅读3.3k次,点赞12次,收藏56次。行人跟踪统计是智能监控系统中的重要功能,可以广泛应用于人流控制、安全监控等领域。传统的行人跟踪算法往往受到光照、遮挡等因素的干扰,难以实现准确跟踪。随着深度学习技术的发展,目标检测模型逐渐成为行人跟踪的主流方案。本文介绍使用YOLOv8目标检测模型实现行人跟踪统计的方法。_yolov8人流量计算

Idea导入的项目不能运行_idea 跑不起来是什么原因-程序员宅基地

文章浏览阅读5w次,点赞69次,收藏277次。Idea导入的项目不能运行Idea导入的项目不能运行Idea导入的项目不能运行其实这个错误是因为没有设置output的路径,只要修改两个地方的设置就可以了:在Modules设置里勾选”Inherit project compile path”2. 设置Project中的”Project compiler output” 选择”Project的路径”+”\out”,比如说我的就是 如..._idea 跑不起来是什么原因

计算机网络——数据链路层_为什么链路层不采用csma/ca-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。计算机网络——数据链路层_为什么链路层不采用csma/ca