首页 > 其他分享 >矩阵计算(导数)

矩阵计算(导数)

时间:2023-08-02 23:33:08浏览次数:47  
标签:拉伸 begin partial 计算 导数 end 矩阵 bmatrix frac

1 标量的导数

image

2 亚导数

比如说\(y=|x|\)这个函数在x=0的时候时不可导的。当x>0,其到导数为1,x<0,其导数为-1,所以在x=0的这个地方的亚导数就是可以是[-1,1]中的一个数
image

梯度

这里主要搞得清楚他的形状
image

  • ∂y/∂x
    当y是标量,x是向量的时候:
    image
    它的结果是个横着的

矩阵求导

向量化的优点

1.简洁
比如说:
\( \begin{split}\begin{cases} y_1=W_1*X_{11}+W_2*X_{12}+...+W_n*X{1n}\\ y_2=W_1*X_{21}+W_2*X_{22}+...+W_n*X{1n}\\ .....\\ y_n=W_1*X_{n1}+W_2*X_{n2}+...+W_n*X{nn}\\ \end{cases}\end{split}\)
这个函数可以简化成

\[Y=X*W \]

\[\begin{bmatrix} y_1\\ y_2\\ ...\\ y_n\\ \end{bmatrix} =\begin{bmatrix} X_{11},X_{12}...,X_{1n}\\ X_{21},X_{22}...,X_{2n}\\ ...\\ X_{n1},X_{n2}...,X_{nn}\\ \end{bmatrix} *\begin{bmatrix} W_1\\ W_2\\ ...\\ W_n\\ \end{bmatrix} \]

2.加速计算机的计算
image
image

对于同样一个矩阵相乘的操作,我们可以我们可以看出用矩阵的话是1.5ms,但是如果用for循环的话是474ms。

标量函数和向量函数

标量函数

其实标量函数就是最后运算之后输出为标量的函数,例如:

  • \(f(x)=x^2,其中x->x^2\)
  • \(f(x)=x_1^2+x_2^2\),其中\(\begin{bmatrix} X_1\\ X_2\\ \end{bmatrix}=>X_1^2+X_2^2\)

这两个最终的运算结果都是一个标量。

向量函数

就是最后运算结果为一个向量,例如:
① \(f(x)=\begin{bmatrix} f_1(x)=X\\ f_2(x)=X^2\\ \end{bmatrix}, x->\begin{bmatrix} X\\ X^2\\ \end{bmatrix}\)

② \(f(x)=\begin{bmatrix} f_1(x)=X,f_2(x)=X^2\\ f_3(x)=X^3,f_4(x)=X^4\\ \end{bmatrix}, 其中:x->\begin{bmatrix} X,X^2\\ X^3,X^4\\ \end{bmatrix}\)

③ \(f(x)=\begin{bmatrix} f_1(x)=X_1+X_2,f_2(x)=X_1^2+X_2^2\\ f_3(x)=X_1^3+X_2^3,f_4(x)=X_1^4+X_2^4\\ \end{bmatrix} , \begin{bmatrix} X_1\\ X_2\\ \end{bmatrix} ->\begin{bmatrix} X_1+X_2,X_1^2+X_2^2\\ X_1^3+X_2^3,X_1^4+X_2^4\\ \end{bmatrix}\)

矩阵求导

\(\frac{dA}{dB}\):矩阵求导的本质就是矩阵A中的每一个元素对矩阵B中的每个元素求导。
然后从求导后的元素个数角度:
因为他是矩阵A中的每个元素对矩阵B中的每个元素,所以是这样的形状。

A B \(\frac{dA}{dB}\)
$$1\times1$$ $$1\times 1$$ $$1\times 1$$
$$1\times p$$ $$1\times n$$ $$p\times n$$
$$q\times p$$ $$m\times n$$ $$p\times q\times m\times n$$

求导方法

\(YX\)拉伸,其中\(Y\)横向拉伸,\(X\)纵向拉伸。

\[\begin{split} \begin{cases}标量不变,向量拉伸\\ 前面横向拉伸,后面纵向拉伸\end{cases}\end{split} \]

这里的前面,后面指的是\(YX\)或者是\(XY\),这里本文用的是\(YX\)。

例一:f(x)标量,x向量

\(\frac{df(x)}{dx}\),其中f(x)就是Y,f(x)为标量函数,x为向量。也就是\(f(x)=f(x_1,x_2,x_3...x_n),x=[x_1,x_2,x_2...n]^T\)
我们按照上面的规则,f(x)是标量不变,拉伸,X纵向拉伸。

\[\frac{df(x)}{dx}=\begin{bmatrix} \frac{\partial f(x)}{\partial x_1}\\ \frac{\partial f(x)}{\partial x_2}\\ \frac{\partial f(x)}{\partial x_3}\\ ....\\ \frac{\partial f(x)}{\partial x_n}\\ \end{bmatrix}\]

这个实际上就是将多元函数的偏导写在一个列向量中。

例二:f(x)向量,x标量

\(\frac{df(x)}{dx}\),f(x)为向量函数,x为向量。也就是\(f(x)=\begin{bmatrix} f_1(x)\\ f_2(x)\\ ...\\ f_n(x)\\ \end{bmatrix}\),然后这个f(x)横向拉伸,x不变。
最终结果就是:
\(\frac{df(x)}{dx}=\begin{bmatrix} \frac{\partial f_1(x)}{\partial x},\frac{\partial f_2(x)}{\partial x}...\frac{\partial f_n(x)}{\partial x}\\ \end{bmatrix}\)

例三:f(x)为向量函数,x为向量函数

\(f(x)=\begin{bmatrix} f_1(x)\\ f_2(x)\\ ...\\ f_n(x)\\ \end{bmatrix},x=\begin{bmatrix} x_1\\ x_2\\ ...\\ x_n\\ \end{bmatrix}\)
然后我们按照我们的规则,前面的横向拉伸,后面的纵向拉伸,然后本质就是A中的每个元素对矩阵B中的每一个求导。

\[\frac{df(x)}{dx}=\begin{bmatrix} \frac{\partial f_1(x)}{\partial x_1},\frac{\partial f_2(x)}{\partial x_1}....\frac{\partial f_n(x)}{\partial x_1}\\ \frac{\partial f_1(x)}{\partial x_2},\frac{\partial f_2(x)}{\partial x_2}....\frac{\partial f_n(x)}{\partial x_2}\\ \frac{\partial f_1(x)}{\partial x_3},\frac{\partial f_2(x)}{\partial x_3}....\frac{\partial f_n(x)}{\partial x_3}\\ ....\\ \frac{\partial f_1(x)}{\partial x_n},\frac{\partial f_2(x)}{\partial x_n}....\frac{\partial f_n(x)}{\partial x_n}\\ \end{bmatrix}\]

我们看完上面这个对矩阵求导后的形状应该就了解了,上面的图也应该就知道了。

常见矩阵求导公式的推导

例一:\(f(x)=A^T*X\),求\(\frac{df(x)}{dx}\)
其中:
\(A=\begin{bmatrix} a_1\\ a_2\\ ...\\ a_n\\ \end{bmatrix},x=\begin{bmatrix} x_1\\ x_2\\ ...\\ x_n\\ \end{bmatrix}\)
我们可以看出f(x)是标量,x是向量。
解:\(f(x)=A^T*X=\sum^n_1{a_i*x_i}\)
所以要把x纵向展开
\(\frac{df(x)}{dx}=\begin{bmatrix} \frac{\partial f(x)}{\partial x_1}\\ \frac{\partial f(x)}{\partial x_2}\\ \frac{\partial f(x)}{\partial x_3}\\ ...\\ \frac{\partial f(x)}{\partial x_n}\\ \end{bmatrix}=\begin{bmatrix} a_1\\ a_2\\ a_3\\ ...\\ a_n\\ \end{bmatrix}=A\)
ps:这里\(\frac{\partial f(x)}{\partial x_1}=a_1\)是因为\(f(x)=\sum^n_1{a_i*x_i}\),对于除了\(a_1*x_1\)在外的其他项,对\(x_1\)求偏导都是0。
也可以这样看,\(\frac{d(A^T*X)}{dx}=\frac{d(X^T*A)}{dx}=A\)

例二:\(f(x)=X^T*A*X\)
这个可以自己证明一下,最终结果为\((A+A^T)X\).

两种布局

  • 两种布局:

\[\begin{split} \begin{cases}分母布局-->YX拉伸术\\ 分子布局-->XY拉伸术\\ \end{cases}\end{split} \]

  • 向量求导时的拉伸方向:

都是前面的横向拉伸,后面的纵向拉伸

  • YX拉伸术-->分母布局
    Y横向拉伸(f(x)横向拉伸)
    X纵向拉伸

  • XY拉伸术-->分子布局
    X横向拉伸
    Y纵向拉伸(f(x)横向拉伸)

标签:拉伸,begin,partial,计算,导数,end,矩阵,bmatrix,frac
From: https://www.cnblogs.com/lipu123/p/17599071.html

相关文章

  • 自然语言处理 Paddle NLP - 文本语义相似度计算(ERNIE-Gram)
    基于预训练模型ERNIE-Gram实现语义匹配1.背景介绍文本语义匹配任务,简单来说就是给定两段文本,让模型来判断两段文本是不是语义相似。在本案例中以权威的语义匹配数据集LCQMC为例,LCQMC数据集是基于百度知道相似问题推荐构造的通问句语义匹配数据集。训练集中的每两段文本都会被......
  • Wmic——WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制
    WMIC(WindowsManagementInstrumentationCommandLine) windows除了cmd,powershell以外另一个更为强大的命令执行shell:windows最令网管诟病的地方就是命令行没有unix和linux强大。但这种情况正在不断改观,windows命令行也越来越强大了。其中,微软耗费大量精力打造的wmi就是一例。 ......
  • 计算机核心期刊排行
    自动化、计算机部分1  计算机学报  北京  中国计算机学会等2  软件学报  北京  中国科学院软件研究所3  计算机研究与发展  北京  中国科学院计算技术研究所等4  自动化学报  北京  中国科学院等5  计算机科学  重庆 ......
  • 下一代边缘计算技术在哪里?
    云网一体,超大规模流量下边缘云的架构与技术揭秘伴随超高清视频时代的开启,热点赛事、晚会直播等特殊场景的巨大流量对业务的带宽储备、节点资源、流量调度和安全保障能力提出了新的挑战。火山引擎边缘云基于抖音世界杯、央视春晚直播、京东618等百亿级流量实践,构建了完整支撑超大规......
  • 计算机网络参考模型
    分层思想是什么及作用?将复杂的流程分解为几个功能相对单一的子过程使整个流程更加清晰,复杂问题简单化更容易发现问题并针对性的解决问题2.网络中数据的传输过程3.ISO,OSI,IOS的区别ISO:国际标准化组织OSI:开放系统互联参考模型IOS:互联网络操作系统4.OSI七层参考模型的功能5.OSI七层......
  • 可编程的流式计算框架:YoMo
    音视频领域的新技术应用非常多,但是在工业和IoT领域,新技术的应用却鲜有耳闻。本次LiveVideoStackCon2021上海站大会我们邀请到了熹乐科技YoMo框架负责人——洪小坚,为我们分享熹乐科技和YoMo会为工业和IoT带来哪些新鲜血液。文/洪小坚整理/LiveVideoStack大家好,今天分享的主题......
  • GIL锁;python垃圾回收机制;计算密集型用多进程,io密集型用多线程
    GIL锁;python垃圾回收机制;计算密集型用多进程,io密集型用多线程GIL锁及其作用1.GIL(GlobalInterpreterLock)又称全局解释器锁,本质就是一个互斥锁。2.它保证了cpython进程中的每个线程必须获得这把锁才能执行,不获得不能执行3.这样使得在同一进程内任何时刻仅有一个线程在执行。4......
  • 直击运维痛点,大数据计算引擎 EasyMR 的监控告警设计优化之路
    当企业的业务发展到一定的阶段时,在系统中引入监控告警系统来对系统/业务进行监控是必备的流程。没有监控或者没有一个好的监控,会导致开发人员无法快速判断系统是否健康;告警的实质则是“把人当服务用”,用告警通知人的方式去干预系统达到修正的目的。监控告警在企业保障系统的稳定性......
  • 【线性代数】求逆矩阵的方法
    1.用公式,将求逆转化为求伴随矩阵和行列式2.根据性质,可逆矩阵一定可以写成一系列初等矩阵乘积的形式3.根据可逆的定义,找到能使AB=E成立的矩阵B(不过这个方法一般适合用于一些简单的或者形式特殊的矩阵。4.通过分块矩阵求逆的性质,将大矩阵的求逆转换为小矩阵求逆。......
  • 计算机网络:MIME协议
    E-mail广泛使用的电子邮件协议是简单邮件传输协议(SMTP),这个协议使用客户端/服务器操作方式。只有在客户端成功地把邮件传送给服务器之后,才从本地删除报文。这样通过端到端的连接保证了邮件的可靠传输。SMTP邮件采用RFC822规定的格式,这种邮件只能是用英语书写的、采用ASCII编码的文......