矩阵求导(标量对矢量求导)
文章目录
- 前言
- 一、标量对向量求导
- 二、例子
- 1.y=wT∗xy = w^T*xy=wT∗x
- 2.y=xT∗wy = x^T * wy=xT∗w
- 2.y=xT∗An∗n∗xy = x^T * A_{n*n} * xy=xT∗An∗n∗x
- 总结
前言
矩阵求导的学习记录
一、标量对向量求导
标量对向量求导,实际上是标量对向量中的每个元素求偏导,然后再组成一个和向量形状相同的向量。也就是:
∂y∂x⃗=(∂y∂x1,∂y∂x2…∂y∂xn)T\frac{\partial y}{\partial \vec{x}} = (\frac{\partial y}{\partial x_1},\frac{\partial y}{\partial x_2}\dots \frac{\partial y}{\partial x_n})^T∂x∂y=(∂x1∂y,∂x2∂y…∂xn∂y)T
式中yyy是一个标量,x=(x1,x2…xn)Tx = (x_1,x_2\dots x_n)^Tx=(x1,x2…xn)T为一个n维向量;
二、例子
1.y=wT∗xy = w^T*xy=wT∗x
这是在信号处理中比较常见的一种加权求和形式。
实际上我们将其乘积结果展开可以得到:
y=w1x1+w2x2+…wnxny = w_1x_1 + w_2x_2 + \dots w_nx_ny=w1x1+w2x2+…wnxn
那么根据我们以上理论
∂y∂x⃗=(∂w1x1+w2x2+…wnxn∂x1,∂w1x1+w2x2+…wnxn∂x2…∂w1x1+w2x2+…wnxn∂xn)T\frac{\partial y}{\partial \vec{x}} = (\frac{\partial w_1x_1 + w_2x_2 + \dots w_nx_n}{\partial x_1},\frac{\partial w_1x_1 + w_2x_2 + \dots w_nx_n}{\partial x_2}\dots \frac{\partial w_1x_1 + w_2x_2 + \dots w_nx_n}{\partial x_n})^T∂x∂y=(∂x1∂w1x1+w2x2+…wnxn,∂x2∂w1x1+w2x2+…wnxn…∂xn∂w1x1+w2x2+…wnxn)T
显然
∂y∂x⃗=(w1,w2,…,wn)T=w⃗\frac{\partial y}{\partial \vec{x}} = (w_1,w_2,\dots,w_n)^T=\vec{w}∂x∂y=(w1,w2,…,wn)T=w
这样我们得到了第一种形式的导数求法。
2.y=xT∗wy = x^T * wy=xT∗w
同理y=w1x1+w2x2+…wnxny = w_1x_1 + w_2x_2 + \dots w_nx_ny=w1x1+w2x2+…wnxn
实际上这个与上一种情况结果一样
∂y∂x⃗=(w1,w2,…,wn)T=w⃗\frac{\partial y}{\partial \vec{x}} = (w_1,w_2,\dots,w_n)^T=\vec{w}∂x∂y=(w1,w2,…,wn)T=w
2.y=xT∗An∗n∗xy = x^T * A_{n*n} * xy=xT∗An∗n∗x
这种二次型情况也比较常见,我们将二次型展开写可以得到
y=a11x12+a12x1x2+⋯+a1nx1xn+a21x2x1+a22x22+⋯+a1nx1xn+⋮an1xnx1+an2xnx2+⋯+annxn2\begin{aligned} y=&a_{11}x_1^2+a_{12}x_1x_2+\dots+a_{1n}x_1x_n + \\ & a_{21}x_2x_1+a_{22}x_2^2+\dots+a_{1n}x_1x_n +\\ & \vdots \\ & a_{n1}x_nx_1 + a_{n2}x_nx_2 + \dots + a_{nn}x_n^2 \end{aligned} y=a11x12+a12x1x2+⋯+a1nx1xn+a21x2x1+a22x22+⋯+a1nx1xn+⋮an1xnx1+an2xnx2+⋯+annxn2
∂y∂x1=(2a11x1+(a12+a21)x2+⋯+(a1n+an1)xn)\frac{\partial y}{\partial x_1} = (2a_{11}x_1 +(a_{12}+a_{21})x_2+\dots+(a_{1n}+a_{n1})x_n)∂x1∂y=(2a11x1+(a12+a21)x2+⋯+(a1n+an1)xn)∂y∂x2=((a12+a21)x1+2a22x2+⋯+(a2n+an2)xn)\frac{\partial y}{\partial x_2} = ((a_{12}+a_{21})x_1 +2a_{22}x_2+\dots+(a_{2n}+a_{n2})x_n)∂x2∂y=((a12+a21)x1+2a22x2+⋯+(a2n+an2)xn)∂y∂xn=((a1n+an1)x1+(a2n+an2)x2+⋯+ann2xn)\frac{\partial y}{\partial x_n} = ((a_{1n}+a_{n1})x_1 +(a_{2n}+a_{n2})x_2+\dots+a_{nn}^2x_n)∂xn∂y=((a1n+an1)x1+(a2n+an2)x2+⋯+ann2xn)
所以
∂y∂x⃗=(2a11a12+a21…a1n+an1a12+a212a22…a2n+an2⋮⋮⋮⋮a1n+an1a2n+an22ann)x⃗\frac{\partial y}{\partial \vec{x}} = \begin{pmatrix} 2a_{11} & a_{12} + a_{21} & \dots &a_{1n}+a_{n1}\\ a_{12}+a_{21}&2 a_{22} & \dots & a_{2n}+a_{n2}\\ \vdots& \vdots& \vdots & \vdots \\ a_{1n}+a_{n1}& a_{2n}+a_{n2} & & 2a_{nn} \end{pmatrix}\vec{x}∂x∂y=⎝⎜⎜⎜⎛2a11a12+a21⋮a1n+an1a12+a212a22⋮a2n+an2……⋮a1n+an1a2n+an2⋮2ann⎠⎟⎟⎟⎞x
实际上
(2a11a12+a21…a1n+an1a12+a21a22…a2n+an2⋮⋮⋮⋮a1n+an1a2n+an22ann)=(a11+a11a12+a21…a1n+an1a12+a21a22+a22…a2n+an2⋮⋮⋮⋮a1n+an1a2n+an2ann+ann)=AT+A\begin{pmatrix} 2a_{11} & a_{12} + a_{21} & \dots &a_{1n}+a_{n1}\\ a_{12}+a_{21}& a_{22} & \dots & a_{2n}+a_{n2}\\ \vdots& \vdots& \vdots & \vdots \\ a_{1n}+a_{n1}& a_{2n}+a_{n2} & & 2a_{nn} \end{pmatrix}=\begin{pmatrix} a_{11}+a_{11} & a_{12} + a_{21} & \dots &a_{1n}+a_{n1}\\ a_{12}+a_{21}& a_{22}+a_{22} & \dots & a_{2n}+a_{n2}\\ \vdots& \vdots& \vdots & \vdots \\ a_{1n}+a_{n1}& a_{2n}+a_{n2} & & a_{nn}+a_{nn} \end{pmatrix}=A^T + A⎝⎜⎜⎜⎛2a11a12+a21⋮a1n+an1a12+a21a22⋮a2n+an2……⋮a1n+an1a2n+an2⋮2ann⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛a11+a11a12+a21⋮a1n+an1a12+a21a22+a22⋮a2n+an2……⋮a1n+an1a2n+an2⋮ann+ann⎠⎟⎟⎟⎞=AT+A
故可以得到∂y∂x⃗=(AT+A)x⃗\frac{\partial y}{\partial \vec{x}} = (A^T+A)\vec{x}∂x∂y=(AT+A)x
我们来看前一篇文章中的一个求导。
L(w)=wTR~w+λ[wTa(θd)−1]L(w) = w^T\tilde{R}w+\lambda[w^Ta(\theta_d)-1]L(w)=wTR~w+λ[wTa(θd)−1]
式中LLL为一个标量,w=(w1,w2,…,wn)Tw=(w_1,w_2,\dots,w_n)^Tw=(w1,w2,…,wn)T,RRR为一个实对称矩阵。
要求∂L(w)∂w\frac{\partial L(w)}{\partial w}∂w∂L(w)
分成两部分
∂(wTRw)∂w=(RT+R)w=2Rw\frac{\partial (w^TRw)}{\partial w}=(R^T+R)w=2Rw∂w∂(wTRw)=(RT+R)w=2Rw
∂(wTa(θd)−1)∂w=a(θd)\frac{\partial (w^Ta(\theta_d)-1)}{\partial w}=a(\theta_d)∂w∂(wTa(θd)−1)=a(θd)
故最终结果
∂L(w)∂w=2R~w+λa(θd)\frac{\partial L(w)}{\partial w}=2\tilde{R}w+\lambda a(\theta_d)∂w∂L(w)=2R~w+λa(θd)
总结
主要介绍了常见的几种标量对向量求导,实际上在数字信号处理中和深度学习中,对向量求导很常见。后面有时间继续写。
矩阵求导(标量对矢量求导)相关推荐
- matlab错误使用meshline47,matlab里mesh出错Z 必须为矩阵,不能是标量或矢量怎么解决...
matlab 求和的出错 symsum是符号运算,要先用syms定义符号变量用法详见docsymsum 已知等长向量X,Y,Z,如何利用mesh或surf函数在MATLAB中绘制三维曲面图? [x,y ...
- 线性代数之 矩阵求导(3)标量、向量求导的快速记忆
线性代数之 矩阵求导(3)标量.向量求导的快速记忆 前言 基本约定 引例 标量对标量求导 标量对向量求导 向量对向量求导 包含两个变量的求导 总结 扩展 前言 上一次记录了矩阵求导的基本法则和公式,并 ...
- 标量、矢量、矩阵的求导归纳
本文对标量.矢量.矩阵的求导概念和公式做简单归纳梳理,目的是帮助理解和记忆,不涉及具体推导过程.
- 矩阵/向量/标量间相互求导
矩阵.向量都可以表示成张量的形式,向量是矩阵的特殊形式,按实际应用可分为标量对向量求导,标量对矩阵求导.向量对向量求导.矩阵对标量求导.矩阵对向量求导.矩阵对矩阵求导等,在深度学习的反向传播(BP)中 ...
- 矢量求导的微分法则: 链式法则
矢量求导的微分法则: 链式法则 介绍 核心原理 矢量求导 矩阵求导 链式法则 介绍 这篇博文推导了矢量情形下, 标量函数对矢量进行求导的微分法则,从定义出发推导了链式法则的形式. 核心原理 核心原理: ...
- 矩阵求导(一)-- 求导的定义和布局约定
本系列主要参考张贤达的<矩阵分析与应用>第三章 矩阵微分和下面的博客内容进行学习,并整理成学习笔记.学习路线参考SinclairWang的文章--矩阵求导入门学习路线,按下面推荐顺序学习, ...
- 矢量求导之位移与速度及加速度
矢量求导之位移与速度及加速度
- matlab对多项式求导,matlab中多项式求导
1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 4.对比用多项式函数的 polyder 函数及符号函数中的 diff 函数,求导 x2+2x ...
- matlab对多元函数求导,MATLAB多元函数导数求极值或最优值Word版
<MATLAB多元函数导数求极值或最优值Word版>由会员分享,可在线阅读,更多相关<MATLAB多元函数导数求极值或最优值Word版(9页珍藏版)>请在人人文库网上搜索. 1 ...
最新文章
- simulink中s-function使用
- BJUI验证后弹窗不显示
- SpringData Jpa、Hibernate、Jpa 三者之间的关系
- secureCRT 小技巧
- [渝粤教育] 中国地质大学 工业卫生技术 复习题 (2)
- !function(){}()
- 要成为一个 Java 架构师得学习哪些知识以及方法?
- 云桌面部署_东胜区检察院检察工作网统一业务系统2.0云桌面终端全面部署完成...
- c中的结构体嵌套问题_C中的结构
- C#语法基础(一)----键盘读入整数foreach语句
- matlab作函数图像,matlab绘制函数图像
- FPGA实现360°SG90舵机
- 返利网是如何做到订单跟踪的?
- 公路自行车入门级推荐java_开学季:9款值得买公路车推荐
- IntelliJ IDEA常用设置及快捷键以及自定义
- C#-调试记Log文件
- Java各个版本区别
- check your GPU Compute Capability| 2021 英伟达 GPU 的计算能力排名
- 100万美金VS100美金FBI本可以在iPhone 5c解锁案中省下一大笔钱
- HDU 3132 Taunt Exposure Estimation(数学)