二阶矩阵转置怎么求_矩阵求导术(下)

点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

fbc50e37758b09bf38a4331f05629833.gif

本文承接上篇 https://zhuanlan.zhihu.com/p/24709748,来讲矩阵对矩阵的求导术。使用小写字母x表示标量,粗体小写字母表示列向量,大写字母X表示矩阵。矩阵对矩阵的求导采用了向量化的思路,常应用于二阶方法求解优化问题。首先来琢磨一下定义。矩阵对矩阵的导数,需要什么样的定义?第一,矩阵对矩阵的导数应包含所有mnpq个偏导数,从而不损失信息;第二,导数与微分有简明的联系,因为在计算导数和应用中需要这个联系;第三,导数有简明的从整体出发的算法。我们先定义向量对向量的导数;再定义矩阵的(按列优先)向量化,并定义矩阵F对矩阵X的导数。导数与微分有联系。几点说明如下:
  1. 按此定义,标量对矩阵的导数是向量,与上篇的定义不兼容,不过二者容易相互转换。为避免混淆,用记号表示上篇定义的矩阵,则有。虽然本篇的技术可以用于标量对矩阵求导这种特殊情况,但使用上篇中的技术更方便。读者可以通过上篇中的算例试验两种方法的等价转换。
  2. 标量对矩阵的二阶导数,又称Hessian矩阵,定义为,是对称矩阵。对向量或矩阵求导都可以得到Hessian矩阵,但从矩阵 f出发更方便。
  3. ,求导时矩阵被向量化,弊端是这在一定程度破坏了矩阵的结构,会导致结果变得形式复杂;好处是多元微积分中关于梯度、Hessian矩阵的结论可以沿用过来,只需将矩阵向量化。例如优化问题中,牛顿法的更新,满足。
  4. 在资料中,矩阵对矩阵的导数还有其它定义,比如,它能兼容上篇中的标量对矩阵导数的定义,但微分与导数的联系(dF等于中每个子块分别与dX做内积)不够简明,不便于计算和应用。
然后来建立运算法则。仍然要利用导数与微分的联系,求微分的方法与上篇相同,而从微分得到导数需要一些向量化的技巧:
  1. 线性:。
  2. 矩阵乘法:,其中表示Kronecker积,与的Kronecker积是。此式证明见张贤达《矩阵分析与应用》第107-108页。
  3. 转置:,A是矩阵,其中是交换矩阵(commutation matrix)。
  4. 逐元素乘法:,其中是用A的元素(按列优先)排成的对角阵。
观察一下可以断言,若矩阵函数F是矩阵X经加减乘法、行列式、逆、逐元素函数等运算构成,则使用相应的运算法则对F求微分,再做向量化并使用技巧将其它项交换至左侧,即能得到导数。再谈一谈复合:假设已求得,而Y是X的函数,如何求呢?从导数与微分的联系入手,,可以推出链式法则。和标量对矩阵的导数相比,矩阵对矩阵的导数形式更加复杂,从不同角度出发常会得到形式不同的结果。有一些Kronecker积和交换矩阵相关的恒等式,可用来做等价变形:
  1. 。可以对求导来证明,一方面,直接求导得到;另一方面,引入,有, ,用链式法则得到。
  2. ,A是m×n矩阵,B是p×q矩阵。可以对做向量化来证明,一方面,;另一方面,。

接下来演示一些算例。

例1:,是矩阵,求。:先求微分:,再做向量化,使用矩阵乘法的技巧,注意在dX右侧添加单位阵:,对照导数与微分的联系得到。特例:如果退化为向量, ,则根据向量的导数与微分的关系 ,得到 。例2:,是矩阵,求和。:使用上篇中的技术可求得。为求,先求微分:,再做向量化,使用转置和矩阵乘法的技巧,对照导数与微分的联系,得到,注意它是对称矩阵。在X是对称矩阵时,可简化为。例3:,是,是,是矩阵,为逐元素函数,求。

:先求微分:,再做向量化,使用矩阵乘法的技巧:,再用逐元素乘法的技巧:,再用矩阵乘法的技巧:,对照导数与微分的联系得到。

例4【一元logistic回归】:。其中是取值0或1的标量,,是向量。:使用上篇中的技术可求得,其中为sigmoid函数。为求,先求微分:,其中为sigmoid函数的导数,对照导数与微分的联系,得到。推广:样本, , ,,求和。有两种方法,方法一:先对每个样本求导,然后相加;方法二:定义矩阵,向量,将l写成矩阵形式,进而可以求得。例5【多元logistic回归】:,求和。:上篇例3中已求得。为求,先求微分:定义,,这里需要化简去掉逐元素乘法,第一项中,第二项中,故有,其中,代入有,做向量化并使用矩阵乘法的技巧,得到。最后做个总结。我们发展了从整体出发的矩阵求导的技术,导数与微分的联系是计算的枢纽,标量对矩阵的导数与微分的联系是,先对f求微分,再使用迹技巧可求得导数,特别地,标量对向量的导数与微分的联系是;矩阵对矩阵的导数与微分的联系是,先对F求微分,再使用向量化的技巧可求得导数,特别地,向量对向量的导数与微分的联系是。参考资料:
  1. 张贤达. 矩阵分析与应用. 清华大学出版社有限公司, 2004.
  2. Fackler, Paul L. "Notes on matrix calculus." North Carolina State University(2005).
  3. Petersen, Kaare Brandt, and Michael Syskind Pedersen. "The matrix cookbook." Technical University of Denmark 7 (2008): 15.
  4. HU, Pili. "Matrix Calculus: Derivation and Simple Application." (2012).
87cc00b5f884aaca721ed22861813af7.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言中x的n次方怎么表示_线性代数的本质及其在人工智能中的应用

线性代数是 AI 专家必须掌握的知识,这已不再是个秘密。如果不掌握应用数学这个领域,你永远就只能是「门外汉」。当然,学习线性代数道阻且长。数学,尤其是线性代数常与枯燥、复杂和毫无意义的事物联系起来。不过你还可以另辟蹊径。…

django 实现电子支付功能

思路:调用第三方支付 API 接口实现支付功能。本来想用支付宝来实现第三方网站的支付功能的,但是在实际操作中发现支付宝没有 Python 接口,网上虽然有他人二次封装的的 Python 接口,但是对我这个小白白来说上手还是有点难度&#x…

android中怎么保存checkbox中的checked属性_第二十四天HTML中的form表单

form表单用于收集用户信息,如:登录、注册等场景;所有要提交的数据都必须放在form标签中action:提交地址、动作,与input标签中typy标签的submit属性相关联。 ,提交地址是action的地址method:提交方法&#x…

Python中曲率与弯曲的转换_1000R曲率更具沉浸感!三星T55曲面显示器评测

在曲面屏的设计上,三星一直在突破极限,比如在2017年推出的49英寸超宽带鱼屏C49HG90,引来众人围观,非常震撼。而在曲率方面,我们常见的有1800R和1500R,但是三星并不满足,于日前推出了一款曲率达到…

opencv resize_opencv-python库基础操作(一)

点赞再看,养成习惯!点赞再看,养成习惯!点赞再看,养成习惯!opencv-python库基础操作0.安装opencv-pythonpip install opencv-python进行下载并安装不过在python中导入opencv库的时候需要"import cv2&qu…

百旺智能编码_【百旺】票字版开票软件操作指南已为您备好,请查阅!

为确保小规模纳税人继续享受税收优惠政策,请广大用户及时对开票软件进行升级~按照国家税务总局要求,从增值税发票税控开票软件五月补丁开始,将停止对增值税发票税控开票软件(税控盘版)“税”字版(以下简称“税”字版)的软件升级更新服务&…

mysql binlog 备份_做好mysql运维,必须熟练掌握备份和恢复,实战一次不行多来几次...

原文:https://www.toutiao.com/i6855460778359816715/平台:头条作者:程序员不就是0和1一、 备份恢复策略进行备份或恢复操作时需要考虑一些因素:1、确定要备份的表的存储引擎是事务型还是非事务型,两种不同的存储引擎备…

在过程中要正式批准可交付成果_干货!软考高项项目管理知识体系5大过程组47个过程...

现在应该很多小伙伴都在紧张的复习软考中,为了让大家更加高效的复习,今天给大家分享软考高级信息系统项目管理师的考试重点,项目管理知识体系的5大过程组47个过程。考高项的朋友都知道,47个过程是非常重要的,必须要理解…

android 组件化_Android 组件化路由框架设计(仿Arouter)

前言在组件化开发中一个必须要面对的问题就是组件间页面跳转,实现的方法有很多,简单的可以通过反射获取,但是比较耗费性能,也可以通过隐式跳转,但是随着页面的增多,过滤条件会随之增多,后期维护…

1668智能下数教程视频_你需要的教程合集更新

最近又收集了一波网络安全资源,在文章最底部。花了将近一天时间整理,只求各位小哥哥能点个在看,分享给身边的朋友。网络安全 --职业发展(渗透的最底部)2019网络安全初识与职业发展https://pan.baidu.com/s/1CAzO8IWxzBj-bOZlJ2eFVg 提取码&am…

关于java中nextline读取空白行的问题

最近在做java作业, 发现了一个问题, 就是nextline其实会接收缓冲区的\r, 使得在程序运行时nextline像是跳过了一样, 其实不然, 它只是读取了上一个enter时的\r, 如我的如下功能代码 public void run() {Scanner scan new Scanner(System.in);int ord, book_order;int flag 0;…

推荐系统——协同过滤

协同过滤 协同过滤算法一般是通过用户之前的喜好或者相似的用户的喜好来推荐商品 基于领域的协同过滤算法一般有两种算法: 基于用户的协同过滤算法(UserCF):基于与用户相似用户的喜好进行推荐基于物品的协同过滤算法(ItemCF):基于用户喜好的物品寻找相似的物品进…

电感检测_几种常用的电流检测方式

RT1720 是一款最高输入电压可达 80V、输出电压可达 60V 的热插拔控制器,它的作用是防止系统受到过高电压和负电压的攻击,同时还能防范过电流可能导致的问题,它的一种应用电路大致如下图所示:为了检测负载电流的大小,RS…

推荐系统——矩阵分解FM

矩阵分解 隐语义模型与矩阵分解 之所以我们提出隐语义模型与矩阵分解,原因就是[[协同过滤]]存在泛化能力弱的问题 而对于隐语义模型而言,我们可以利用隐向量来代表隐藏信息 此外,也可以在一定程度上弥补[[协同过滤]]处理稀疏矩阵能力不足的…

千位分隔符的完整攻略

千位分隔符[1]是很常见的需求,但是输入文本千变万化,如何才能准确添加千分符呢? 纯整数情况 纯整数大概是所有情况里最简单的一种,我们只要正确匹配出千分位就好了。 观察上面的数字,我们可以得出千分位的特征是到字符…

限制按钮点击_Android | 使用 AspectJ 限制按钮快速点击

前言在Android开发中,限制按钮快速点击(按钮防抖)是一个常见的需求;在这篇文章里,我将介绍一种使用AspectJ的方法,基于注解处理器 & 运行时注解反射的原理。如果能帮上忙,请务必点赞加关注&…

svn不知道这样的主机 怎么解决_家里装修不知道怎么配置净水器,这几招教你轻松解决...

为了保障家庭饮水健康,很多业主都会选择在家中安装一台厨下净水器。但是,如若仅靠它来满足全家人日常洗漱,沐浴和饮用,这势必会极大地影响到全家人的生活品质。这个时候,实阳机电良心建议,全屋净水系统&…

redis系列:通过文章点赞排名案例学习sortedset命令

前言 这一篇文章将讲述Redis中的sortedset类型命令,同样也是通过demo来讲述,其他部分这里就不在赘述了。 项目Github地址:https://github.com/rainbowda/learnWay/tree/master/learnRedis/case-sortedset 案例 demo功能是文章点赞排名等等&am…

xml生成2维码_MyBatis(2)之MyBatis-Generator最佳实践

自定义注释自定义注解指定xml文件模式上一篇文章详细阐述了xml配置文件的各种标签及其含义。其实从标签开始,每一个标签都对应一个实体类。context.class对应标签,而每一个子标签都对应一个属性;如图:标签与实体类的对应关系。有了…

nginx 配置详解_Nginx 配置详解

序言Nginx是lgor Sysoev为俄罗斯访问量第二的http://rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持Fast…